博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
chd校内选拔赛题目+题解
阅读量:6268 次
发布时间:2019-06-22

本文共 4958 字,大约阅读时间需要 16 分钟。

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

1 #include
2 #include
3 #include
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 }

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

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

1 #include
2 #include
3 #include
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 }

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

此字母串满足的条件:

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

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

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

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

1 #include
2 #include
3 #include
4 using namespace std; 5 int a[30]; 6 void solve(){ 7 int n; 8 scanf("%d",&n); 9 for(int i = 0; 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 }

 

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

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

1 #include
2 #include
3 #include
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

我想说这个题寒假也做过……

题意:对于每个人,他都想找到能和他组成最大力量的人匹配。

题解:所以从大到小排序后,我从最大值入手,找到后取出标记,再继续找下一个未被标记且最大的值,贪心思想。

1 #include
2 #include
3 #include
4 using namespace std; 5 const int maxn = 805; 6 int cnt[maxn][maxn]; 7 int flag[maxn],ans[maxn]; 8 struct node{ 9 int x,y,v;10 }arr[maxn*maxn];11 bool cmp(node A,node B){12 return A.v>B.v;13 }14 void solve(){15 int n;16 scanf("%d",&n);17 int k = 0;18 for(int i = 2; i<=n*2; i++){19 for(int j = 1; j

 

老柴一眼看出来这是道dfs题,可惜没时间做了。。。

题解:首先记录每个点的度数方便找到叶子节点。通过记录路上连续的猫的个数,判断是否走该点,然后继续遍历。

1 #include
2 #include
3 #include
4 #include
5 using namespace std; 6 typedef long long ll; 7 const int maxn = 1e5+5; 8 vector
path[maxn]; 9 int cat[maxn],leaf[maxn];10 int vis[maxn];11 int n,m,num = 0;12 void dfs(int u,int numcat){13 if(vis[u]) return;14 else vis[u] = 1;15 if(cat[u]) numcat++;16 else numcat = 0;17 if(numcat>m) return;//判断猫的数量是否超过m18 if(leaf[u] == 1&&u != 1) num++;//记录方案数19 for(int i = 0; i

 

找规律题目,这么多if else写的我醉醉的。。。

 

1 #include
2 #include
3 #include
4 #include
5 using namespace std; 6 void solve(){ 7 int n,i = 0,j = 0,k = 0; 8 scanf("%d",&n); 9 getchar();10 char c;11 for(int p = 0; p
= 1 && j == 0 && k == 0) puts("B");18 else if(i == 0 && j >= 1 && k == 0) puts("G");19 else if(i == 0 && j == 0 && k >= 1) puts("R");20 else if(i == 1 && j == 1 && k == 0) puts("R");21 else if(i == 1 && j == 0 && k == 1) puts("G");22 else if(i == 0 && j == 1 && k == 1) puts("B");23 else if(i > 1 && j == 1 && k == 0) puts("GR");24 else if(i > 1 && j == 0 && k == 1) puts("GR");25 else if(i == 1 && j > 1 && k == 0) puts("BR");26 else if(i == 1 && j == 0 && k > 1) puts("BG");27 else if(i == 0 && j > 1 && k == 1) puts("BR");28 else if(i == 0 && j == 1 && k > 1) puts("BG");29 else puts("BGR");30 }31 int main()32 {33 solve();34 return 0;35 }

 

 

 

我还想说这个题寒假也做过。。。

唯一分解定理。即 : n = p1^e1* p2^e2 * p3^e3* … * pr^er;其中p为质数。

注意数据范围,所有素数乘起来便没有平方。

1 #include
2 #include
3 #include
4 using namespace std; 5 typedef long long ll; 6 ll p[100]; 7 void solve(){ 8 ll n; 9 scanf("%I64d",&n);10 int ans = 0;11 for(ll i = 2; i*i<=n; i++){12 if(n%i == 0){13 p[ans++] = i;14 while(n%i == 0){15 n /= i;16 }17 }18 }19 if(n>1) p[ans++] = n;20 ll sum = 1;21 for(int i = 0; i

 

I 和 G两个题还没看,未完待续。。。

转载于:https://www.cnblogs.com/littlepear/p/5400804.html

你可能感兴趣的文章
C#中使用RabbitMQ收发队列消息
查看>>
Hadoop1.2.1 全然分布式集群搭建实操笔记
查看>>
第三百二十七节,web爬虫讲解2—urllib库爬虫—基础使用—超时设置—自动模拟http请求...
查看>>
MVC总结--MVC简单介绍以及和WebForm差别
查看>>
tiny4412 裸机程序 五、控制icache【转】
查看>>
VB.NET多线程入门
查看>>
国外物联网平台初探(二) ——微软Azure IoT
查看>>
findlibrary returned null产生的联想,Android ndk开发打包时我们应该怎样注意平台的兼容(x86,arm,arm-v7a)...
查看>>
Android事件分发机制源代码分析
查看>>
《设计模式》结构型模式
查看>>
[javase学习笔记]-8.3 statickeyword使用的注意细节
查看>>
Spring集成RabbitMQ-使用RabbitMQ更方便
查看>>
Nginx 设置域名转向配置
查看>>
.net core 实现简单爬虫—抓取博客园的博文列表
查看>>
FP-Tree算法的实现
查看>>
Android 用Handler和Message实现计时效果及其中一些疑问
查看>>
Dos命令删除添加新服务
查看>>
C#.NET常见问题(FAQ)-索引器indexer有什么用
查看>>
hadoop YARN配置参数剖析—MapReduce相关参数
查看>>
Java 正则表达式详细使用
查看>>