第三届蓝桥杯全国选拔赛答案解析.doc_第1页
第三届蓝桥杯全国选拔赛答案解析.doc_第2页
第三届蓝桥杯全国选拔赛答案解析.doc_第3页
第三届蓝桥杯全国选拔赛答案解析.doc_第4页
第三届蓝桥杯全国选拔赛答案解析.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一题:微生物增殖#include int main() long int X=10, Y=90; for(int k=1; k=120; k+)/半分钟一个单位 if(k%2=1)Y -= X;/因为X出生半分钟后就要吃Y,尔后每1分钟要吃Y,所以永远都是奇数个半分钟的时候吃Y,又因为此时X不会增长(题目为了减小讨论的复杂度),所以直接减X数量即可。 if(k%4=0)Y *= 2;/每2分钟翻倍 if(k%6=0)X *= 2;/每3分钟翻倍,X和Y的翻倍是相互独立的,不需要另作讨论。 printf(%d, Y); return 0; 第二题:古堡算式#include int main() long int X=10, Y=90; for(int k=1; k=120; k+)/半分钟一个单位 if(k%2=1)Y -= X;/因为X出生半分钟后就要吃Y,尔后每1分钟要吃Y,所以永远都是奇数个半分钟的时候吃Y,又因为此时X不会增长(题目为了减小讨论的复杂度),所以直接减X数量即可。 if(k%4=0)Y *= 2;/每2分钟翻倍 if(k%6=0)X *= 2;/每3分钟翻倍,X和Y的翻倍是相互独立的,不需要另作讨论。 printf(%d, Y); return 0; 第三题:比酒量#include #define MAX 20 int n, m; /n个海盗,m轮后全体倒下,船长喝了t瓶酒 double drinkMAX, t; /记录船长每轮喝的酒量 void dfs(int x, int y) if(y = 0) double sum = 0.0; for(int i = 1; i = m; i+) sum += drinki; double dif = sum - t; if(dif 0.0) dif = -dif; if(dif 0; i-) printf(%d , (int)(1.0 / drinki); printf(n); return; if(x = 0) return; drinky = 1.0 / x; for(int i = 1; i = 1; n-) dfs(n, m); return 0; 第四题:奇怪的比赛#include #define MAX 20 int n, m; /n个海盗,m轮后全体倒下,船长喝了t瓶酒 double drinkMAX, t; /记录船长每轮喝的酒量 void dfs(int x, int y) if(y = 0) double sum = 0.0; for(int i = 1; i = m; i+) sum += drinki; double dif = sum - t; if(dif 0.0) dif = -dif; if(dif 0; i-) printf(%d , (int)(1.0 / drinki); printf(n); return; if(x = 0) return; drinky = 1.0 / x; for(int i = 1; i = 1; n-) dfs(n, m); return 0; 第五题:转方阵sizeof(int)*rank*rankrank*(i%rank) + rank-i/rank-1第六题:大数乘法n3/base+n2/base+n4%baser2/base第七题:放棋子NumRow!=3 | NumCol!=3f(x,r,c+1)xrc=1第八题:密码发生器#include #include #define MAX 1005 long num6; char tmpMAX; int main() int t; scanf(%d, &t); while(t) memset(num, 0, sizeof num); fgets(tmp, MAX, stdin); if(tmp0 = n | strlen(tmp) = 0) continue; for(int i = 0; tmpi != 0 & tmpi != n; i+) numi%6 += tmpi; for(int j = 0; j 6; j+) int t = numj % 9; printf(%d, t ? t : 9); putchar(n); -t; return 0; 第八题:密码发生器#include #include #define MAX 1005 long num6; char tmpMAX; int main() int t; scanf(%d, &t); while(t) memset(num, 0, sizeof num); fgets(tmp, MAX, stdin); if(tmp0 = n | strlen(tmp) = 0) continue; for(int i = 0; tmpi != 0 & tmpi != n; i+) numi%6 += tmpi; for(int j = 0; j 6; j+) int t = numj % 9; printf(%d, t ? t : 9); putchar(n); -t; return 0; 第九题:夺冠概率#include #include #include #define COUNT 100000 const int g = 0; double P44 = 0, 0.1, 0.3, 0.5, 0.9, 0, 0.7, 0.4, 0.7, 0.3, 0, 0.2, 0.5, 0.6, 0.8, 0 ; int main() srand(unsigned)time(NULL); double sum = 0.0; for(int k = 1; k = COUNT; k+) int x = g, y = g, z = g; while(x = g) x = rand() % 4; /while(y=g | y=x) y=rand()%4; /此处的生成y的方法和下面的方法有轻微差异 for(int ii = 0; ii 4 & (ii = g | ii = x); )+ii; /约有0.001的浮动,推荐用下面这个方法 y = ii; for(int i = 0; i 4 & (i = g | i = x | i = y); )+i; z = i; double r = 1 - (Pxg + Pgx * (Pyz * Pyg + Pzy * Pzg); sum += r; printf(%lfn, sum / COUNT); return 0; 第十题:#include #include int a10001; int b4 = 1, 3, 7, 8; int main() int i, n, j; memset(a, 0, sizeof a); /初始化判定数组为0 a0 = 1; /说明对方取完了最后一堆,那么自己胜利 for(i =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论