chd校内选拔赛题目+题解

题目链接   A. Currency System in Geraldion

有1时,所有大于等于1的数都可由1组成。没有1时,最小不幸的数就是1.

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 using namespace std;
 5 void solve(){
 6     int n,x;
 7     scanf("%d",&n);
 8     int flag = 0;
 9     for(int i = 1; i<=n; i++){
10         scanf("%d",&x);
11         if(x == 1) flag = 1;
12     }
13     if(flag) printf("-1\n");
14     else printf("1\n");
15 }
16 int main()
17 {
18     solve();
19     return 0;
20 }

题目链接:B .Gerald is into Art

神之队友,八个if条件秒A,orz...

最后给的两个矩形每个长和宽翻过来倒过去,有四种情况。再和给的第一个矩形匹配总共有八种情况。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 using namespace std;
 5 void solve(){
 6    int a1,b1,a2,b2,a3,b3;
 7    cin>>a1>>b1>>a2>>b2>>a3>>b3;
 8    int flag = 0;
 9    if(a2+a3<=a1 && max(b2,b3)<=b1) flag = 1;
10    if(a2+a3<=b1 && max(b2,b3)<=a1) flag = 1;
11    if(a2+b3<=a1 && max(b2,a3)<=b1) flag = 1;
12    if(a2+b3<=b1 && max(b2,a3)<=a1) flag = 1;
13    if(b2+a3<=a1 && max(a2,b3)<=b1) flag = 1;
14    if(b2+a3<=b1 && max(a2,b3)<=a1) flag = 1;
15    if(b2+b3<=a1 && max(a2,a3)<=b1) flag = 1;
16    if(b2+b3<=b1 && max(a2,a3)<=a1) flag = 1;
17    if(flag) printf("YES\n");
18    else printf("NO\n");
19 }
20 int main()
21 {
22     solve();
23     return 0;
24 }

题目链接: C.Making a String

题意:给定每一个字母出现的个数ai,组成一个最长的字母串.

此字母串满足的条件:

1.其中的每个字母出现的总次数不超过ai.

2.每个字母出现的次数必须是不同的。

题解:这个题直接贪心。 从最大值开始,拿第一组样例,2 5 5来说

排序后2 5 5,从最后5开始,找局部最优解。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 using namespace std;
 5 int a[30];
 6 void solve(){
 7    int n;
 8    scanf("%d",&n);
 9    for(int i = 0; i<n; i++) scanf("%d",&a[i]);
10    sort(a,a+n);
11    int maxn = 1e9+7;
12    long long sum = 0;
13    for(int i = n-1; i>=0; i--){
14     if(maxn == 0) break;
15     if(maxn>=a[i]){
16         sum += a[i];
17         maxn = a[i] - 1;
18     }
19     else{
20         sum += maxn;
21         maxn--;
22     }
23    }
24    printf("%I64d\n",sum);
25 }
26 int main()
27 {
28     solve();
29     return 0;
30 }

题目链接: D.Bear and Elections

记得寒假做过这道水题,我发现我一见到做过的题就懵了。。。

就把第一个人票数一直和后面最大的比较,如果此人最大的小于后面最大的,他就再得一票,后面最大的那个就减一票,ans+1,排序,直到后面没有比它还大的。数据较小,不会超时,至于司老大说的二分法我还没有领会。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 using namespace std;
 5 int a[105];
 6 void solve(){
 7    int n,ans = 0;
 8    scanf("%d",&n);
 9    for(int i = 0; i<n; i++) scanf("%d",&a[i]);
10    while(1){
11     sort(a+1,a+n);
12     if(a[n-1]<a[0]) break;
13     a[n-1]--;
14     a[0]++;
15     ans++;
16    }
17    printf("%d\n",ans);
18 }
19 int main()
20 {
21     solve();
22     return 0;
23 }
时间: 2024-11-09 08:42:29

chd校内选拔赛题目+题解的相关文章

第五届蓝桥杯全国软件设计大赛--2013年校内选拔赛Java题目

第五届蓝桥杯全国软件设计大赛 2013年校内选拔赛Java题目 一.考生注意: (1)[结果填空题]要求参赛选手根据题目描述直接填写结果.求解方式不限.不要求源代码. 把答案存入[考生文件夹]下对应题号的文件中即可. (2)[代码填空题]要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确.完整.所填写的代码不超过一条语句(即中间不能出现分号). 把填空的答案(仅填空处的答案,不包括题面已存在的代码)存入[考生文件夹]下对应题号的文件中中即可. (3)[编程题]要求选手设计

PTA|团体程序设计天梯赛-练习题目题解锦集(C/C++)(持续更新中……)

PTA|团体程序设计天梯赛-练习题目题解锦集(持续更新中) 实现语言:C/C++:      欢迎各位看官交流讨论.指导题解错误:或者分享更快的方法!! 题目链接:https://pintia.cn/problem-sets/994805046380707840/problems 目录 (点击对应题目即可进入相应题解--小声BB--) L1-001 Hello World (5 分) L1-002 打印沙漏 (20 分) L1-003 个位数统计 (15 分) L1-004 计算摄氏温度 (5

PAT 团体程序设计天梯赛 部分题目题解

L1-002 打印沙漏 L1-006 连续因子 L1-010 比较大小 L1-014 简单题 L1-018 大笨钟 L2-002 链表去重 L2-010 排座位 L3-002 堆栈 L3-006 迎风一刀斩 L1-002. 打印沙漏 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 ***** *** * *** ***** 所谓"沙漏形状",是指每行输出奇数个符号:各行符号中心对齐:相邻两行符号数差2:符号数先从大到小顺序递

2.3日期类题目题解

今天追的综艺更新了,没想到超长待机三个小时,再加上乱七八糟的事情耽误了很多的时间,没有时间更新今日份所有题目的总结了.恰好今天这套题很多都是一个类型的题目那就分开整理吧,今天更新计算日期类的题目,其他的等明天继续更. 关于计算日期类的题目,可以说都很简单了,而且一般都是小题.就算不会代码差不多电脑自带的日期啊.execl啊都能做,所以我之前都是用的vbs做的,挺方便的.但是听大佬说国赛没有execl什么的正好今天的题有几道关于日期的题目,趁这个机会整理出来.稍后更新一篇常用的方法吧. 第一题:高

Regionals 2013 Asia - Daejeon (部分题目题解)

题目链接:Regionals 2013 Asia - Daejeon 6500 Boxes 题意:将箱子(矩阵的1)全移动到矩阵的底部需要几步 思路:按列从下到上统计.(n,m)的矩阵,移动一个箱子(x,y),如果有c个箱子在底部,那么移动该箱子的步数是(n-x-c-1). AC代码: #include <stdio.h> #include <string.h> int mp[110][110]; int main() { int t; int i,j,n,m; scanf(&qu

cogs 自己出的题目 题解报告

第一题很简单嘛,就是裸的动态树分治嘛 对于每一层的重心维护子树路径的信息和子树到上一层重心的点的信息 空间复杂度O(nlogn) 对于每一层我们按dis排序,之后记录军队数量的前缀和 查询的时候我们只需要在这一层二分既可以啦 感觉还是非常的easy呢 时间复杂度O(nlog^2n+mlog^2n) PS:原本题目并不是这个样子 原本是想出成有k个人在攻打城池u,问u需要坚持多少时间才能使得到来的军队人数总数>=k 这样我们就可以在外层二分一个时间,问题就转化成了这道题了(多了个log) 原本是想

【日常学习】【条件最短路dij】POJ1062 昂贵的聘礼(2002年浙江省队选拔赛) 题解

耗时三节课 充分体现出粗心酿成大错这个道理 一开始一直不知道为什么数组越界 原来是minn和ninj写反了 后来又因为杜如函数出为题 反复调试 今后一定要注意 题目还是放上吧: 题目描述 Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低要求.酋长说:"嗯,如果你能够替我弄到大祭司的皮袄,我可以只要8000金币.如果你能够弄来他的水晶球,那么只要5

2019.7.24 校内测试 分析+题解

T1 地雷 题目很简单呢,就是求哪个数只出现了一次就可以了哦~ 我一开始的想法是桶排(这也是最单纯最简单的想法吧~),但是空间开 232 肯定会炸的,而且时间好像也会炸掉. 然后左边的 ych 大佬小声说了一句:“得换个算法.” 嗯,确实要换个算法,然后我就觉得新算法一定是不用开数组,直接输完数据就能出答案的那种! 然后不知道怎么就想到了 zhx 讲博弈论的时候输入的同时将 ……(一些稀奇古怪的东西) 异或起来就是答案,这不正好跟我理想的新算法很像嘛? 异或异或?咦,又想到了六月底那次考试有个叫

蓝桥杯校内选拔赛/POJ 数独(深搜)

Sudoku Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 14530   Accepted: 7178   Special Judge Description Sudoku is a very simple task. A square table with 9 rows and 9 columns is divided to 9 smaller squares 3x3 as shown on the Figure.