-
个人简介
```#include using namespace std; int s,a[100],maxn; string s1,s2,s3,s4; int main(){ freopen("vhist.in","r",stdin); freopen("vhist.out","w",stdout); getline(cin,s1); getline(cin,s2); getline(cin,s3); getline(cin,s4); s1=s1+s2+s3+s4; s=s1.size(); for(int i=0;i<=s-1;i++){ if(s1[i]!=' '){ a[s1[i]]++; } } for(int i='A';i<='Z';i++){ maxn=max(maxn,a[i]); } for(int i=maxn;i>=1;i--){ for(int j='A';j<='Z';j++){ if(a[j]>=i){ cout<<'*'; } else cout<<' '; cout<<' '; } cout<<endl; } cout<<"A B C D E F G H I J K L M N O P Q R S T U V W X Y Z"; }
#include<bits/stdc++.h> using namespace std; long long n,m; string a[10010][100],x1,x2,s1,s2; int main( ) { cin>>n; for(int i=1;i<=n;i++) { for(int j=1;j<=3;j++) { cin>>a[i][j]; } } cin>>m; for(int i=1;i<=m;i++) { cin>>s1>>s2; for(int j=1;j<=n;j++) { for(int k=1;k<=2;k++) { if(s1a[j][k]) x1=a[j][3]; } } for(int j=1;j<=n;j++) { for(int k=1;k<=2;k++) { if(s2a[j][k]) x2=a[j][3]; } } if(x2!=x1) cout<<"Y\n"; else cout<<"N\n"; } } #include <bits/stdc++.h> using namespace std; int s=2,n; int main() { freopen("zt.in","r",stdin); freopen("zt.out","w",stdout); cin>>n; for(int i=1;i<n;i++){ s++; s*=2; } cout<<s; } ``2005年南海区青少年信息学奥林匹克竞赛复赛试题
(小学甲组) **注意事项:** 本卷全部采用文件进行输入、输出。请严格使用题目所规定的文件名,输入、输出格式必须按要求设置,否则将不能得分。 程序中不得使用清屏命令或语句,也不得控制整个程序自动重复执行,以方便评测。 程序完成后,按指定的提交文件名编译成EXE文件,评卷时只以EXE文件为准。 所有解答的源程序和编译的EXE文件最后要集中保存到文件夹“E:\考号”中。 比赛时间180分钟,全卷总分200分。 | 题 号 | 第一题 | 第二题 | 第三题 | 第四题 | | ------------ | ---------- | ---------- | ------------ | ------------ | | 试题名称 | 猴子摘桃 | 赛车 | 机器人交警 | 分数计算器 | | 程序文件名 | ZT.EXE | SCHE.EXE | JQR.EXE | JSQ.EXE | | 输入文件名 | ZT.IN | SCHE.IN | JQR.IN | JSQ.IN | | 输出文件名 | ZT.OUT | SCHE.OUT | JQR.OUT | JSQ.OUT | | 分值 | 40 | 50 | 50 | 60 | **第一题** **猴子摘桃**** (zt.exe)** **问题描述:** 果园里种了很多桃树,当桃树开始结果的时候,猴子便会成群结队地前来摘桃。 猴子们第一天会摘掉桃子的一半还多一个,第二天再摘第一天剩下的一半还多一个,以后每天均摘掉上一天剩下的一半还多一个,到第N天时,树上就只剩下两个桃子了。请问果园里原来共多少个桃子? **输入格式:**(zt.in) 输入正整数N表示天数 。 **输出格式:**(zt.out) 输出果园里原来共有的桃子数。 **输入样例一:** 2 **输出样例一:** 6 **输入样例二:** 4 **输出样例二:** 30 **第二题** **赛车**** (sche.exe)** **问题描述:** 两位赛车手LEO和MARS按以下的约定来进行N(N为奇数)局比赛: ⑴在长度为L米的跑道上比赛; ⑵LEO从跑道起点起步,MARS从距离起点W米的地点同时起步,一齐向终点进发; ⑶若LEO能在到达终点前赶上MARS,则该局LEO获胜,否则MARS获胜; ⑷获胜局数多者为本次比赛的最终胜利者, 假设N、L、W均为不大于32767的整数,并分别用V1和V2表示LEO和MARS的赛车速度。让你当本次赛车的裁判,你能告诉大家最终的胜利者吗? **输入格式:**(sche.in) 第一行输入N、L、W的值; 第二行输入第一局比赛V1和V2的值;( V1、V2均是实数) 后面N-1行分别输入第二局至第N局比赛V1和V2的值。 **输出格式:**(sche.out) 第一行输出LEO获胜的局数; 第二行输出MARS获胜的局数; 第三行输出最终胜利者的姓名。 **输入输出样例:** | | 样例1 | 样例2 | 样例3 | | ---------- | ----------------- | ---------------------------- | --------------------------------------- | | 输入样例 | 1 1000 20012 10 | 3 1000 20012.5 1011 1211 9 | 5 1000 20012.5 1011 1211 913.5 1012 8 | | 输出样例 | 01MARS | 12MARS | 32LEO | **第三题** **机器人交警**** (jqr.exe)** **问题描述:** 某座城市一共有26个交通路口,分别用大写英文字母A、B、……、Z表示。交通管理部门研制了一批机器人交通警察,并按如下的规则派出这些机器人到交通路口协助指挥交通: ⑴每次派出两名机器人; ⑵当两名机器人的名字中存在一个相同的字母时,这两名机器人便到对应的交通路口上指挥交通;有多个字母相同时,两名机器人需要按字母的先后次序到这些路口上巡逻。 ⑶当两名机器人的名字中不存在相同的字母时,交警部门的派出指令无效(WuXiao)。 假设这些机器人的名字全由大写字母组成。请你编一个程序,来指挥这些机器人交警的工作。 **输入格式:**(jqr.in) 第一行输入第一个机器人的名字; 第二行输入第二个机器人的名字。 **输出格式:**(jqr.out) ⑴当不能派出机器人时,在第一行输出“WuXiao”; ⑵当两名机器人在路口上指挥交通时,在第一行输出“ZhiHui”,第二行输出路口编号; ⑶当两名机器人在路口上巡逻时,在第一行输出“XLuo”,第二行输出巡逻的路口数,第三行输出巡逻线路。 **输入输出样例:** | | 样例1 | 样例2 | 样例3 | 样例4 | | ---------- | ---------- | ------------ | ----------- | -------------- | | 输入样例 | LPTBYHK | KEYDDDCHEN | OPENCLOSE | EPSONSENPUM | | 输出样例 | WuXiao | ZhiHui E | XLuo 2E-O | XLuo4E-N-P-S | **第四题** **分数计算器**** (jsq.exe)** **问题描述:** Victor是一位很著名的科学家,在他的研究工作中经常要进行分数的运算。为了提高工作效率,Victor决定设计一个简易的分数计算器,该计算器能够进行分数的加、减、乘、除运算,并能将结果化为最简分数和带分数。 假设参加运算的分数都不是带分数,并将整数看作分母为1的分数。你能发挥聪明才智,帮助Victor设计出这个分数计算器吗? **(1)****分数乘法法则可归结为:** 分数乘以分数,用分子相乘的积作分子,分母相乘的积作分母。  **(2)****分数除法法则可归结为:** 甲数除以乙数(0除外),等于甲数乘以乙数的倒数。例如:  **输入格式:**(jsq.in) 第一行:输入第一个分数的分子和分母。 第二行:输入运算符。 第三行:输入第二个分数的分子和分母。 **输出格式:**(jsq.out) 以q/p的形式输出运算结果的最简分数;是假分数的还要化为带分数,先输出整数部分,再输出后面部分。 **输入输出样例:** | | 样例1 | 样例2 | 样例3 | 样例4 | | ---------- | --------- | ---------- | ---------- | --------- | | 运算类型 | 加 | 减 | 乘 | 除 | | 输入样例 | 2 3+1 4 | 3 1-2 5 | 4 5\*1 2 | 3 7/1 2 | | 输出样例 | 11/12 | 2 3/5 | 2/5 | 6/7 | **2004年南海区青少年信息学奥林匹克竞赛复赛试题** (小学甲组) **注意事项:** 1. 本卷全部采用键盘输入、屏幕输出。请严格按照题目所要求的格式进行输入、输出,否则严重影响得分。 2. 程序中不得使用清屏命令或语句,也不得控制整个程序自动重复执行,以方便评测。 3. 程序完成后,按指定的提交文件名编译成EXE文件,评卷时只以EXE文件为准。 4. 所有解答的源程序和编译的EXE文件最后要集中保存到文件夹“E:\\考号”中。 5. 比赛时间180分钟,全卷总分200分。 | 题 号 | 第一题 | 第二题 | 第三题 | 第四题 | | ------------ | ---------- | ------------ | ----------- | ------------ | | 试题名称 | 级数求和 | 国王与麦子 | 密室寻宝 | 班委会选举 | | 提交文件名 | jsqh.EXE | gwymz.EXE | mshxb.EXE | bwhxj.EXE | | 满 分 | 40 | 50 | 60 | **第一题** **级数求和** **问题描述:** 编一程序求最大整数n及下列不等式左边的值,使得: 1+(1+2)+(1+2+3)+…+(1+2+3+…+n)≤m(m为小于32768的正整数)。 **输入格式:** 从键盘输入正整数m 。 **输出格式:** 在屏幕同一行输出n的值及1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的值。(中间用空格隔开) **输入样例一:** 3 \*\*输出样例一: \*\* 1 1 **输入样例二:** 9 \*\*输出样例二: \*\* 2 4 **第二题** **国王与麦子** **问题描述:** 传说古代印度有个喜欢下棋的国王叫舍罕,而宰相达依尔是个聪明的大臣,发明了国际象棋。国王玩得爱不惜手,决定奖赏宰相。达依尔说:陛下,我别无他求,请你在这张棋盘的第一个格子里赏我一粒麦子;在第2个格子里赏我2粒麦子;在第3个格子里赏我4粒麦子;在第4个格子里赏我8粒麦子……依此类推直到64个格子,按这张棋盘上各格应赏的麦子全赏给我吧。 国王听了,觉得达依尔的要求并不高,说道:你能如愿以偿的。然而,国王却不知道这个数字是多么巨大啊! 你能帮助国王算算第n个格子的麦子数量吗?(提示:<1>本题可采用高精度运算来解题;<2>若在Pascal中只使用一个变量存放麦子数,则至少须将其说明为Longint型。) **输入格式:** 从键盘输入正整数n (n<65)。 **输出格式:** 在屏幕输出第n个格子的麦子数量,注意不能以科学记数法表示。 **输入样例一:** 5 \*\*输出样例一: \*\* 16 **输入样例二:** 40 \*\*输出样例二: \*\* 549755813888 **第三题** **密室寻宝** **问题描述:** 哈利波特不经意间进入了一座古墓,古墓入口有一道大门,内部有六个密室,每个密室中藏有一件兵器。已知需要两个密码才能从里面打开密室和大门,取出密室内的兵器后从大门撤出。 两个密码均是不大于63的整数,将其转化为八位二进制数后对应位进行“与”运算(运算的规则是:当两个位均为“1”时,结果为“1”,否则结果为“0”)。将“与”运算的结果从右往左数,当第n位为1时,表示可以打开第n个密室,取出其中的兵器;只有当取到至少两件兵器时,方可打开大门撤出。 现在哈利波特任意给你两个密码,请你帮他设计一个程序,算算可以从哪些密室取出兵器,并可否从大门撤出。 **输入格式:** 第一行输入第一个密码P , 第二行输入第二个密码Q 。 **输出格式:** 第一行:按从小到大的顺序输出可以打开密室的编号。若没有可以打开的密室,则输出“0”。 第二行:若可打开大门,则输出为“Open”,否则输出“Close”。 **输入样例一:** 2 5 \*\*输出样例一: \*\* 0 Close **输入样例二:** 7 13 \*\*输出样例二: \*\* 1 3 Open **第四题** **班委会选举** **问题描述:** 信息学夏令营开营了,OI⑸班要进行班委会选举,需要选出正班长、副班长、学习委员、文娱委员和纪律委员各一名。选举办法如下: ⑴先由全班同学推出8名候选人,其中女生至少2名; ⑵将候选人分别编号为1、2、3、4、5、6、7、8,由全班同学投票,票上只填写被选举人的编号,填写小于3人或大于5人以及填写编号不在1—8范围内的票视为无效票不予统计。 ⑶投票结束后通过统计票数确定各职务名单。原则上按得票数从高到低分别选为正班长(ZhengBZ)、副班长(FuBZ)、学习委员(XuexiWY)、文娱委员(WenyuWY)和纪律委员(JilvWY),票数相同者按编号优先,但若有女生得票在前五名,则文娱委员必须由得票最多的女生担任。 ⑷另外,选举规定:当有效票数不超过半数(表示为“A”)或不足5人得票(表示为“B”)时,宣布本次选举无效。 已知班干部候选名单如下: | 编号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | | ------ | ----- | ------ | ----- | ----- | ------ | ------ | ---- | ----- | | 姓名 | Li | Chen | Liu | Pan | Deng | Wang | Lu | Gao | | 性别 | nan | nv | nan | nv | 假定除了前述说明外,不会出现其它不合要求的选票。请你编一个程序,帮助OI⑸班选出班干部名单。 **输入格式:** 第一行输入OI⑸班人数 N (8 <= N <= 50 ), 第二行到第N+1行分别输入每位同学的选票数据。 **输出格式:** 按职务顺序输出班干部名单。若是选举无效,则输出无效原因代码及“Wu Xiao”,属“A”的还要输出有效票数,属“B”的要输出得票人数。 **输入样例一:** 10 123 1234 12345 48 23567 3678 1467 12368 2 1239 \*\*输出样例一: \*\* | Li | Chen | Wang | Liu | Pan | | ---- | ------ | ------ | ----- | ----- | **输入样例二:** 12 2387 269 458 2 56 72 8 9 3682 456273 15 483 \*\*输出样例二: \*\* ```none A:Wu Xiao A:Wu Xiao #include<bits/stdc++.h> using namespace std; char s; long long a,b; int main() { freopen("ssqh.in","r",stdin); freopen("ssqh.out","w",stdout); cin>>a>>s>>b; if(s=='+') cout<<a<<"+"<<b<<"="<<a+b; if(s=='-') cout<<a<<"-"<<b<<"="<<a-b; if(s=='*') cout<<a<<"*"<<b<<"="<<a*b; if(s=='\\'&&b!=0) cout<<a<<"\\"<<b<<"="<<a/b; if(s=='\\'&&b==0) cout<<"NO"; } #include<bits/stdc++.h> using namespace std; long long a[5],s=0,ss,k=0; int main() { freopen("slqj.in","r",stdin); freopen("slqj.out","w",stdout); cin>>a[1]>>a[2]>>a[3]>>a[4]; ss=a[2]-a[1]; s=a[1]+a[2]+a[3]; k=a[3]; for(int i=1;i<=3;i++) { if(a[i]<0)cout<<"("<<a[i]<<")"; else cout<<a[i]; cout<<"+"; } if(a[3]+ss!=a[4]) cout<<"...+"; if(a[4]<0)cout<<"("<<a[4]<<")"; else cout<<a[4]; cout<<"="; while(k!=a[4]) { k=k+ss; s=s+k; } cout<<s; }` ```#include<bits/stdc++.h> using namespace std; char difang[120][120],wofang[120][120]; int s,s1,s2,s3,s4,s5,b1,b2,b3,b4,b5; int main( ) { cout<<"0 1 2 3 4 5 6 7 8 9"<<endl; cout<<"1 * * * * * * * * *"<<endl; cout<<"2 * * * * * * * * *"<<endl; cout<<"3 * * * * * * * * *"<<endl; cout<<"4 * * * * * * * * *"<<endl; cout<<"5 * * * * * * * * *"<<endl; cout<<"6 * * * * * * * * *"<<endl; cout<<"7 * * * * * * * * *"<<endl; cout<<"8 * * * * * * * * *"<<endl; cout<<"9 * * * * * * * * *"<<endl; cout<<"随意选5个位置"; cin>>s1>>b1; cin>>s2>>b2; cin>>s3>>b3; cin>>s4>>b4; cin>>s5>>b5; for(int i=1;i<=9;i++) for(int j=1;j<=9;j++) wofang[i][j]='*'; wofang[s1][b1]='#'; wofang[s2][b2]='#'; wofang[s3][b3]='#'; wofang[s4][b4]='#'; wofang[s5][b5]='#'; cout<<"这是你的战舰位置"; for(int i=1;i<=9;i++){ for(int j=1;j<=9;j++) cout<<wofang[i][j]; cout<<endl; } cout<<"1:图1"; cout<<"2:图2"; cout<<"3:图3"; cout<<"4:图4"; cout<<"5:图5"; cout<<"6:图6"; cout<<"7:图7"; cout<<"8:图8"; cout<<"9:图9"; cin>>s; } #include<bits/stdc++.h> using namespace std; int n,x,y,s,k; inline int read(){ int s=0;char ch=getchar(),last='0'; while(ch<'0'||ch>'9') last=ch,ch=getchar(); while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar(); return last=='-'?-s:s; } inline void write(int x){ if(x<0) putchar('-'),x=-x; if(x>9) write(x/10); putchar(x%10+'0'); } int main() { }
第1题 交通灯(light)
【问题描述**】**
城市道路的交叉路口通常设置有绿灯、黄灯和红灯三种状态的交通灯,它们的作用是:当绿灯亮时,表示车辆可通行;当黄灯亮时,提醒正在交叉路口中行驶的车辆赶快离开;当红灯亮时,车辆要在停车线后停止行驶。
交通灯的状态经过红灯、黄灯和绿灯为一个周期,假设在每一周期中绿灯时间为30秒,红灯时间为20秒,路口车辆的疏通速度是0.6辆每秒。(黄灯时间一般很短这里忽略不计)
交警队长需要你帮忙计算出第n个周期后滞留下来的车辆数量,以便采取有效的措施改进交通状况。
输入格式:
输入文件共有n+2行;
第1行为要计算滞留车辆数的周期n(n<=20);
第2行为第1周期开始时由前一周期滞留下来的车辆数;
第3行至n+2行分别为第1至n周期的车辆到达数。每行有两个数,第1个为红灯时的车辆达到数,第2个为绿灯时的车辆达到数。
输出格式:
输出文件只有一个数:经过第n周期后,滞留下来的车辆数。
输入输出样例:
样例1 样例2 样例3 输入样例 123 5 258 126 9 226 89 10 输出样例 0 4 1 第2题 寻宝之旅(treasu)
【问题描述】
某个海岛上埋藏着多件宝物,每件宝物都有一个确切的位置,宝物的位置用一对数(x,y)来表示。其中x 表示该宝物离海洋中某个指定地点的水平距离,y 表示该宝物离海洋中某个指定地点的垂直距离。
已知宝物离海洋中某个指定地点的直线距离L可以由如下公式计算:
L=sqrt(x^2^+y^2^);
海洋探险队的任务是:找出名称包含某种特征字符串的所有宝物,并按直线距离由近到远的顺序把它们的位置记录下来,以方便将来取出宝物。假若你是海洋探险队的一员,你能编程序完成这一工作吗?
输入格式:
输入文件共有n+2行:第1行为要寻宝物的特征字符串,第2行为岛上的宝物数,第3行至第n+2行为每件宝物的位置数据和宝物名称。( 0<n≤100)
输出格式:
按距离由近到远输出所找到宝物的位置,每件宝物的位置数据占一行。若找不到宝物,则以全为“-1”输出。
输入输出样例:
输入 输出 样例1 ep21.5 2.8 goden2.4 5 word -1 -1 样例2 ner35 2.4 liner2.5 8.3 suerp1.5 2 winervis 1.5 25 2.4 第3题 博物馆的密码(key)
【问题描述**】**
某博物馆收藏着多件珍贵的文物。为了保证文物的安全,除非有特别的原因,否则博物馆要全天24小时开启监控设备进行实时监控。当确实需要临时关闭监控设备时,需要使用为特定操作人员设计的监控密码,这种密码要与操作人员的指纹信息结合,生成一个符合规定的数据,该操作人员才能关闭博物馆的监控设备。
馆长设想的监控密码是一个不超过9位的十进制正整数,且要有如下特征:它的各位数字之和等于该数的12进制表示的各位数字之和,还等于该数的16进制表示的各位数字之和。
例如,2991的各位数字之和为 2+9+9+1=21,因为2991=1×1728+8×144+9×12+3,它的12进制表示是189312 ,各位数字之和也是21。但是2991的16进制表示是BAF16,并且11+10+15=36,所以2991不是合法的监控密码。
又如,2992在全部三种表示法中(包括BB016)各位数字之和都是22,所以2992是合法的监控密码。
现在请你帮馆长判断一个数是否可以用作博物馆的监控密码。 输入格式: 输入文件只有一个长度不超过9位的十进制正整数。 输出格式: 第一行为输入的十进制数所对应的十六进制数各位数字之和,第二行为分“Right”(可用作监控密码)或“Wrong”(不可用作监控密码)。 **输入样例1: ** 3
输出样例1: 3 Right
输入**样例2: ** 112 输出样例2: 7 Wrong
输出**样例3: ** 2992 输入样例3: 22 Right
第4题 最佳运输方案(transp)
【问题描述】
桐桐有n件货物需要运送到目的地,它们的重量和价值分别记为: 重量:W1,W2,...,Wn 价值:V1,V2,...,Vn 已知某辆货车的最大载货量为X,并且当天只能运送一趟货物。这辆货车应该运送哪些货物,才能在不超载的前提下使运送的价值最大? 输入格式】 第一行是一个实数,表示货车的最大载货量x(1<x≤100)。 第二行是一个正整数,表示待运送的货物数n(n<1≤20)。 后面n行每行两个实数,分别表示第1至第n件货物的重量W和价值V。 【输出格式】 第一行为被运送货物的总价值(只输出整数部分); 第二行为按编号大小顺序输出所有被运送货物的编号(当一件都不能运送时,不输出)。 【输入样例1】 20 4 3.5 4 4 5 5 6.8 6.9 7 【输出样例1】 22 1 2 3 4
【输入样例2】 16 4 3 4 4 5 5 6
6 7 【输出样例2】 18 2 3 4
【输入样例3】 12 3 24 15 18 20
15 30
【输出样例3】 0第1题 交通灯(light)
【问题描述**】**
城市道路的交叉路口通常设置有绿灯、黄灯和红灯三种状态的交通灯,它们的作用是:当绿灯亮时,表示车辆可通行;当黄灯亮时,提醒正在交叉路口中行驶的车辆赶快离开;当红灯亮时,车辆要在停车线后停止行驶。
交通灯的状态经过红灯、黄灯和绿灯为一个周期,假设在每一周期中绿灯时间为30秒,红灯时间为20秒,路口车辆的疏通速度是0.6辆每秒。(黄灯时间一般很短这里忽略不计)
交警队长需要你帮忙计算出第n个周期后滞留下来的车辆数量,以便采取有效的措施改进交通状况。
输入格式:
输入文件共有n+2行;
第1行为要计算滞留车辆数的周期n(n<=20);
第2行为第1周期开始时由前一周期滞留下来的车辆数;
第3行至n+2行分别为第1至n周期的车辆到达数。每行有两个数,第1个为红灯时的车辆达到数,第2个为绿灯时的车辆达到数。
输出格式:
输出文件只有一个数:经过第n周期后,滞留下来的车辆数。
输入输出样例:
样例1 样例2 样例3 输入样例 123 5 258 126 9 226 89 10 输出样例 0 4 1 第2题 寻宝之旅(treasu)
【问题描述】
某个海岛上埋藏着多件宝物,每件宝物都有一个确切的位置,宝物的位置用一对数(x,y)来表示。其中x 表示该宝物离海洋中某个指定地点的水平距离,y 表示该宝物离海洋中某个指定地点的垂直距离。
已知宝物离海洋中某个指定地点的直线距离L可以由如下公式计算:
L=sqrt(x^2^+y^2^);
海洋探险队的任务是:找出名称包含某种特征字符串的所有宝物,并按直线距离由近到远的顺序把它们的位置记录下来,以方便将来取出宝物。假若你是海洋探险队的一员,你能编程序完成这一工作吗?
输入格式:
输入文件共有n+2行:第1行为要寻宝物的特征字符串,第2行为岛上的宝物数,第3行至第n+2行为每件宝物的位置数据和宝物名称。( 0<n≤100)
输出格式:
按距离由近到远输出所找到宝物的位置,每件宝物的位置数据占一行。若找不到宝物,则以全为“-1”输出。
输入输出样例:
输入 输出 样例1 ep21.5 2.8 goden2.4 5 word -1 -1 样例2 ner35 2.4 liner2.5 8.3 suerp1.5 2 winervis 1.5 25 2.4 第3题 博物馆的密码(key)
【问题描述**】**
某博物馆收藏着多件珍贵的文物。为了保证文物的安全,除非有特别的原因,否则博物馆要全天24小时开启监控设备进行实时监控。当确实需要临时关闭监控设备时,需要使用为特定操作人员设计的监控密码,这种密码要与操作人员的指纹信息结合,生成一个符合规定的数据,该操作人员才能关闭博物馆的监控设备。
馆长设想的监控密码是一个不超过9位的十进制正整数,且要有如下特征:它的各位数字之和等于该数的12进制表示的各位数字之和,还等于该数的16进制表示的各位数字之和。
例如,2991的各位数字之和为 2+9+9+1=21,因为2991=1×1728+8×144+9×12+3,它的12进制表示是189312 ,各位数字之和也是21。但是2991的16进制表示是BAF16,并且11+10+15=36,所以2991不是合法的监控密码。
又如,2992在全部三种表示法中(包括BB016)各位数字之和都是22,所以2992是合法的监控密码。
现在请你帮馆长判断一个数是否可以用作博物馆的监控密码。 输入格式: 输入文件只有一个长度不超过9位的十进制正整数。 输出格式: 第一行为输入的十进制数所对应的十六进制数各位数字之和,第二行为分“Right”(可用作监控密码)或“Wrong”(不可用作监控密码)。 **输入样例1: ** 3
输出样例1: 3 Right
输入**样例2: ** 112 输出样例2: 7 Wrong
输出**样例3: ** 2992 输入样例3: 22 Right
第4题 最佳运输方案(transp)
【问题描述】
桐桐有n件货物需要运送到目的地,它们的重量和价值分别记为: 重量:W1,W2,...,Wn 价值:V1,V2,...,Vn 已知某辆货车的最大载货量为X,并且当天只能运送一趟货物。这辆货车应该运送哪些货物,才能在不超载的前提下使运送的价值最大? 输入格式】 第一行是一个实数,表示货车的最大载货量x(1<x≤100)。 第二行是一个正整数,表示待运送的货物数n(n<1≤20)。 后面n行每行两个实数,分别表示第1至第n件货物的重量W和价值V。 【输出格式】 第一行为被运送货物的总价值(只输出整数部分); 第二行为按编号大小顺序输出所有被运送货物的编号(当一件都不能运送时,不输出)。 【输入样例1】 20 4 3.5 4 4 5 5 6.8 6.9 7 【输出样例1】 22 1 2 3 4
【输入样例2】 16 4 3 4 4 5 5 6
6 7 【输出样例2】 18 2 3 4
【输入样例3】 12 3 24 15 18 20
15 30
【输出样例3】 0 #include<bits/stdc++.h> using namespace std; long x,n,lx; long f[200],t,ans; struct b{ double w,v,x,s,z; }a[100]; bool cmp(b x,b y){ return x.s<y.s; } int main() { cin>>x>>n; for(int i=1;i<=n;i++){ cin>>a[i].w>>a[i].v; a[i].x=i; } while(f[0]==0){ t=n; while(f[t]==1) t--; f[t]=1; for(int i=1;i<=n;i++) { if(f[i]==1&&+a[lx].z+a[i].w<=x) a[lx].s+=a[i].v,a[lx].z+=a[i].w; } lx++; for(int i=t+1;i<=n;i++) f[i]=0; } sort(a,a+lx,cmp); cout<<a[0].s<<endl;
}#include <bits/stdc++.h> using namespace std; int ; int main() { freopen("tree.in","r",stdin); freopen("tree.out","w",stdout); cin>>n>>m; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++) cin>>a[i][j]; } for(int j=1;j<=n;j++) maxn[j]=a[1][j]; for(int i=1;i<=n;i++){ for(int j=2;j<=m;j++) maxn[j]=max(maxn[j-1],a[i][j]); for(int i=1;i<=m;i++) f[i]=maxn[i]+f[i-1];
} 2009年南海区小学竞赛试题
第1题 乐乐的图形(vhist)
【问题描述】 乐乐最近玩起了字符游戏 规则是这样的:读入四行字符串,其中的字母都是大写的,乐乐想打印一个 柱状图显示每个字母出现的频率。你能帮帮她吗? 输出格式 输出文件共四行:每行为一串字符,不超过72个字符。 输出格式 与输出样例保持严格的一致。 输入输出样例 样例输出 THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG THIS IS AN EXAMPLE TO TEST FOR YOUR HISTOGRAM PROGRAM HELLO 样例输出 说明 1、输出的相邻字符间有一个空格。 2、最后一行的26个大写字母必须依次输出。 3、大写字母A所在的第一列前没有空格。
第2题 乐乐的数字(allm)
【问题描述:】 乐乐做完数学作业,突发奇想定义了一种新的数:乐乐数。乐乐把n个数排成一行,一个数的“乐乐数”是指:在这个数的左边且比它小的数中最靠近它(即最靠右)的那个数。依次给出这n个数,请求出所有这n个数相对应的“乐乐数”。 输入格式: 数据的第一行是一个正整数n,表示一共有多少个数。 第二行有n个用空格隔开的正整数,它们从左至右给出了数列中的n个数。这些数保证小于2^31。 输出格式: 输出一行用空格隔开的n个数。 这些数对应于输入数据中的数的“乐乐数”。如果输入中某个数没有“乐乐数”(即它左边的数都不比它小),请输出0。
输入输出样例: 样例1:
7 3 1 2 7 6 7 4
输出样例1:
0 0 1 2 2 6 2
样例2
5 5 6 3 10 9 输出样例2:
0 5 0 3 3
数据规模 对于80%的数据,n≤10000; 对于100%的数据,n≤200000。
第3题 乐乐的棋盘(move)
【问题描述:】
乐乐有一个棋盘,共有m行n列,一只棋子从左上角开始,向右下角移动,每次只能向下或向右移动一次。然而这个棋盘中有一些障碍物,这些障碍物使得这个棋子不能进入这些格子,问这个棋子从左上角到达右下角共有多少种不同的移法?如果到达不了,则输出0。 输入格式: 第一行:两个整数m,n,0<m,n≤100。 后面有m行,每行有n个数(0或1),如果是1,则表示这个方格中有障碍物。 输出格式: 求得的方案数。 输入输出样例: 样例1: 4 5 0 0 1 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0
输出样例1:
3
输入样例 2:
3 3 1 0 1 1 1 0 0 0 0 输出样例2:
0
数据规模 对于80%的数据,0<m,n<20; 对于100%的数据,0<m,n≤100。
第四题 乐乐的方块(transform)
【问题描述:】 乐乐被小学数学课本中“空间与图形”的内容迷住了,她整天在琢磨着图形的各种变换:对称、旋转、翻转等等。这天,乐乐用“@”和“-”两种字符拼成了一块N x N(1≦N≦20)的方形图案A,现在她想将其转换成新的方形图案B。有以下几种转换方法: 方法1:转90度:图案按顺时针转90度。 方法2:转180度:图案按顺时针转180度。 方法3:转270度:图案按顺时针转270度。 方法4:反射:图案在水平方向翻转。 方法5:组合:图案在水平方向翻转,然后再按照1到3之间的一种再次转换。 方法6:不改变:原图案不改变。 方法7:无效转换:无法用以上方法得到新图案。 只能选择上述7种方法中的某一种来转换图案。例如有如下一个3*3的图案A: @-@
@-@ 要转换成图案B: @-@
@-@ 按照上述的方法,有方法2、方法4和方法6共三种方法可以实现这种转换。你只需要输出:2,表示采用序号最小的方法。 你能帮助乐乐写一个程序,来解决这个难题吗? 输入格式: 第1行:单独的一个整数N。 第2行到第N+1行:每行N个字符(不是“@”就是“-”);这是转换前的方块图案。 第N+2行到第2*N+1行:每行N个字符(不是“@”就是“-”);这是转换后的方块图案。 输出格式: 单独的一行包括1到7之间的一个数字,表明需要将转换前的方块变为转换后的方块的转换方法(序号最小者)。 输入输出样例: 输入样例 1:
3 @-@
@@- @-@ @-- --@ 输出样例 1:
1
输入样例 2:
4
@@@@ --@@
--@- ---@ -@@- -@@- 输出样例 :2
72009年南海区小学竞赛试题
第1题 乐乐的图形(vhist)
【问题描述】 乐乐最近玩起了字符游戏 规则是这样的:读入四行字符串,其中的字母都是大写的,乐乐想打印一个 柱状图显示每个字母出现的频率。你能帮帮她吗? 输出格式 输出文件共四行:每行为一串字符,不超过72个字符。 输出格式 与输出样例保持严格的一致。 输入输出样例 样例输出 THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG THIS IS AN EXAMPLE TO TEST FOR YOUR HISTOGRAM PROGRAM HELLO 样例输出 说明 1、输出的相邻字符间有一个空格。 2、最后一行的26个大写字母必须依次输出。 3、大写字母A所在的第一列前没有空格。
第2题 乐乐的数字(allm)
【问题描述:】 乐乐做完数学作业,突发奇想定义了一种新的数:乐乐数。乐乐把n个数排成一行,一个数的“乐乐数”是指:在这个数的左边且比它小的数中最靠近它(即最靠右)的那个数。依次给出这n个数,请求出所有这n个数相对应的“乐乐数”。 输入格式: 数据的第一行是一个正整数n,表示一共有多少个数。 第二行有n个用空格隔开的正整数,它们从左至右给出了数列中的n个数。这些数保证小于2^31。 输出格式: 输出一行用空格隔开的n个数。 这些数对应于输入数据中的数的“乐乐数”。如果输入中某个数没有“乐乐数”(即它左边的数都不比它小),请输出0。
输入输出样例: 样例1:
7 3 1 2 7 6 7 4
输出样例1:
0 0 1 2 2 6 2
样例2
5 5 6 3 10 9 输出样例2:
0 5 0 3 3
数据规模 对于80%的数据,n≤10000; 对于100%的数据,n≤200000。
第3题 乐乐的棋盘(move)
【问题描述:】
乐乐有一个棋盘,共有m行n列,一只棋子从左上角开始,向右下角移动,每次只能向下或向右移动一次。然而这个棋盘中有一些障碍物,这些障碍物使得这个棋子不能进入这些格子,问这个棋子从左上角到达右下角共有多少种不同的移法?如果到达不了,则输出0。 输入格式: 第一行:两个整数m,n,0<m,n≤100。 后面有m行,每行有n个数(0或1),如果是1,则表示这个方格中有障碍物。 输出格式: 求得的方案数。 输入输出样例: 样例1: 4 5 0 0 1 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0
输出样例1:
3
输入样例 2:
3 3 1 0 1 1 1 0 0 0 0 输出样例2:
0
数据规模 对于80%的数据,0<m,n<20; 对于100%的数据,0<m,n≤100。
第四题 乐乐的方块(transform)
【问题描述:】 乐乐被小学数学课本中“空间与图形”的内容迷住了,她整天在琢磨着图形的各种变换:对称、旋转、翻转等等。这天,乐乐用“@”和“-”两种字符拼成了一块N x N(1≦N≦20)的方形图案A,现在她想将其转换成新的方形图案B。有以下几种转换方法: 方法1:转90度:图案按顺时针转90度。 方法2:转180度:图案按顺时针转180度。 方法3:转270度:图案按顺时针转270度。 方法4:反射:图案在水平方向翻转。 方法5:组合:图案在水平方向翻转,然后再按照1到3之间的一种再次转换。 方法6:不改变:原图案不改变。 方法7:无效转换:无法用以上方法得到新图案。 只能选择上述7种方法中的某一种来转换图案。例如有如下一个3*3的图案A: @-@
@-@ 要转换成图案B: @-@
@-@ 按照上述的方法,有方法2、方法4和方法6共三种方法可以实现这种转换。你只需要输出:2,表示采用序号最小的方法。 你能帮助乐乐写一个程序,来解决这个难题吗? 输入格式: 第1行:单独的一个整数N。 第2行到第N+1行:每行N个字符(不是“@”就是“-”);这是转换前的方块图案。 第N+2行到第2*N+1行:每行N个字符(不是“@”就是“-”);这是转换后的方块图案。 输出格式: 单独的一行包括1到7之间的一个数字,表明需要将转换前的方块变为转换后的方块的转换方法(序号最小者)。 输入输出样例: 输入样例 1:
3 @-@
@@- @-@ @-- --@ 输出样例 1:
1
输入样例 2:
4
@@@@ --@@
--@- ---@ -@@- -@@- 输出样例 :2
7
-
通过的题目
-
最近活动
This person is lazy and didn't join any contests or homework. -
最近编写的题解
This person is lazy and didn't write any solutions.
题目标签
- 广搜
- 1