• 个人简介

    ```#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)​**​**分数乘法法则可归结为:**
    
    分数乘以分数,用分子相乘的积作分子,分母相乘的积作分母。
    
    ![](file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml5612\wps1.jpg)
    
    **​(2)​**​**分数除法法则可归结为:**
    
    甲数除以乙数(0除外),等于甲数乘以乙数的倒数。例如:
    
    ![](file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml5612\wps2.jpg)
    
    ​**输入格式:**​(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 样例输出 ![](file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml5616\wps1.jpg)说明 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 样例输出 ![](file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml5616\wps1.jpg)说明 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