poj刷题专题训练3
POJ Grids基本练习题 资料
POJ Grids基本练习题资料POJ——1004 Financial Management .............................................. - 3 -POJ——1664 放苹果 ........................................................................ - 5 -POJ——2675 计算书费...................................................................... - 7 -POJ——2676 整数的个数................................................................... - 9 -POJ——2679 整数的立方和.............................................................. - 11 -POJ——2680化验诊断 .................................................................... - 12 -POJ——2684 求阶乘的和................................................................. - 15 -POJ——2687数组逆序重放............................................................... - 16 -POJ——2688求字母的个数............................................................... - 17 -POJ——2689 大小写字母互换 ........................................................... - 18 -POJ——2694逆波兰表达式............................................................... - 19 -POJ——2696 计算表达式的值 ........................................................... - 20 -POJ——2699自整除数 .................................................................... - 22 -POJ——2701 与7无关的数 ............................................................. - 23 -POJ——2702密码翻译 .................................................................... - 24 -POJ——2703骑车与走路.................................................................. - 26 -POJ——2707求一元二次方程的根....................................................... - 27 -POJ——2714求平均年龄.................................................................. - 29 -POJ——2715 谁拿了最多的奖学金...................................................... - 30 -POJ——2718晶晶赴约会.................................................................. - 32 -POJ——2719陶陶摘苹果.................................................................. - 33 -POJ——2720 大象喝水.................................................................... - 34 -POJ——2722 学分绩点.................................................................... - 35 -POJ——2733判断闰年 .................................................................... - 37 -POJ——2734十进制到八进制............................................................ - 38 -POJ——2750 鸡兔同笼.................................................................... - 39 -POJ——2753菲波那契数列............................................................... - 40 -POJ——2758 菲波那契数列(2) ......................................................... - 41 -POJ——2764数根.......................................................................... - 42 -POJ——2767简单密码 .................................................................... - 44 -POJ——2780 Eva’s Problem ......................................................... - 47 -POJ——2786 Pell数列................................................................... - 48 -POJ——2796数字求和 .................................................................... - 49 -POJ——2807两倍.......................................................................... - 50 -POJ ——2808校门外的树................................................................. - 52 -POJ——2856 计算邮资.................................................................... - 54 -POJ——2870 求矩阵的加法.............................................................. - 56 -POJ——2871 整数奇偶排序.............................................................. - 58 -POJ——2882 Program I ............................................................... - 60 -POJ——2883 checking order ........................................................ - 62 -POJ——2886能被3除尽的数之和...................................................... - 64 -POJ——2887 能被3、5、7整除的数 ................................................. - 65 -POJ——2888字符串中的数字............................................................ - 67 -POJ——2926算数运算 .................................................................... - 69 -POJ——2927判断数字个数............................................................... - 70 -POJ——2930 加减乘除.................................................................... - 72 -POJ——2933停车场收费.................................................................. - 74 -POJ——2938 按顺序输出................................................................. - 76 -POJ——2943 小白鼠排队................................................................. - 77 -POJ——3142 球弹跳高度的计算......................................................... - 79 -POJ——3164 奇偶排序.................................................................... - 80 -POJ——3195最大公约数.................................................................. - 81 -POJ——3248 最大公约数................................................................. - 82 -POJ——3255 十进制到六进制 ........................................................... - 84 -POJ——3670 计算鞍点.................................................................... - 86 -POJ——3708 1的个数.................................................................... - 88 -POJ——3756多边形内角和............................................................... - 90 -POJ——1004 Financial Management思路:这道题就是计算一下12个月的平均工资。
POJ题目
2910 字符串提取数字
2913 字符串加密
2915 字符串按长度排序
2927 统计字符串中数字个数
2931 比较数字个数
2934 字符串插入
2935 有未知数的表达式
2944 单词替换
2973 skew数
2974 487-3279
2975 Caesar 密码
2682 循环移位
2808 校门外的树
动态规划 动态规划
2711 合唱队形
2726 采药
2747 数字方格
2814 拨钟问题
2942 吃糖果
2945 拦截导弹
2979 陪审团的人选
2995 登山
2999 最长公共子上升序列
其他
2991 足球赛
2702 密码翻译(每个字符串加1)
2710 字符转换
2721 忽略大小写比较字符串
2743 字符串判等
2744 子串
2806 公共子序列
2818 密码
2819 W的密码
2820 古代密码
2880 最长单词,循环
2884 统计单词个数
2888 字符串中的数字,排序
2800 垂直直方图
2801 填词
2811 熄灯问题
2812 恼人的青蛙
2813 画家问题
2816 红与黑
2870 矩阵加法
2871 奇偶排序、循环
2899 矩阵行交换
2929 扩号匹配
2937 异常细胞检测
2949 平板着色
排列
2996 选课
1000 第一次练习
poj上的几个经典题目
相等,有的不等,所以访问标记要重设 { Make(sb, false); } sb = e[sb].next; } if (sb == NIL) return false; sa = e[sa].next; } return true; } void solve() { now = -1; len = strlen(s); idx = 0; ra = ++now; // e[ra].left = e[rb].next = NIL; // e[ra].visit = false; build(e[ra].left, s); GetSum(ra); // len = strlen(t); idx = 0; rb = ++now; // e[rb].left = e[rb].next = NIL; // e[rb].visit = false; build(e[rb].left, t); GetSum(rb); if (Same(ra, rb)) { printf("same\n"); } else { printf("different\n"); } } int main() { int T; scanf("%d", &T);
p = e[p].next; } return e[n].num; } bool cmp(int a, int b) { return e[a].num > e[b].num; } void Make(int n, bool flag) { if (n == NIL) return; int p = e[n].left; while(p != NIL) { Make(p, flag); p = e[p].next; } e[n].visit = flag; } bool Same(int a, int b) { if (e[a].num != e[b].num) return false; if (a == NIL && b == NIL) return true; if (a == NIL || b == NIL) return false; int sa, sb; sa = e[a].left; while(sa != NIL) { sb = e[b].left; while(sb != NIL) { if(!e[sb].visit && Same(sa, sb)) { e[sb].visit = true; break; } else if(!e[sb].visit) //这个说明了有调用 Same(sa, sb) 但是他们底下有的子树
pink练习题
pink练习题一、基础知识类1. 请列举出五种常见的编程语言及其主要用途。
2. 简述面向对象编程中的三大特性。
3. 请解释什么是数据结构,并列举出三种常见的数据结构。
4. 描述操作系统的五大功能。
5. 请说明计算机网络中的OSI七层模型。
6. 简述数据库的基本概念,包括数据库、数据库管理系统和SQL语言。
7. 请解释什么是算法,并列举出三种常见的排序算法。
8. 描述软件工程的五大过程模型。
9. 请说明计算机硬件系统的主要组成部分。
10. 简述计算机软件的分类。
二、编程实践类1. 编写一个Python程序,实现输入一个整数,输出它的阶乘。
2. 编写一个C++程序,实现输入一个字符串,输出它的反转形式。
3. 编写一个Java程序,实现一个简单的计算器功能,包括加、减、乘、除。
4. 编写一个JavaScript程序,实现一个简单的网页时钟。
5. 编写一个HTML和CSS代码,实现一个简单的网页布局。
6. 编写一个SQL查询语句,查询学生表中年龄大于18岁的学生信息。
7. 编写一个PHP程序,实现用户登录功能。
8. 编写一个React组件,实现一个待办事项列表。
9. 编写一个Node.js程序,实现一个简单的HTTP服务器。
10. 编写一个TypeScript程序,实现一个简单的类和对象。
三、算法与数据结构类1. 请用伪代码描述冒泡排序算法的实现过程。
2. 请用Python实现快速排序算法。
3. 请用C++实现链表的基本操作,包括插入、删除和查找。
4. 请用Java实现二叉树的前序遍历、中序遍历和后序遍历。
5. 请用JavaScript实现堆排序算法。
6. 请用PHP实现图的邻接矩阵表示和深度优先搜索。
7. 请用C实现哈希表的基本操作,包括插入、删除和查找。
8. 请用Go实现红黑树的插入操作。
9. 请用Rust实现跳表的数据结构。
10. 请用Swift实现并查集的数据结构。
四、操作系统与计算机网络类1. 请解释进程和线程的区别。
java oop练习题
java oop练习题Java是一种广泛使用的编程语言,支持面向对象编程(Object-Oriented Programming,OOP)的开发方式。
通过OOP,我们可以更好地组织和管理代码,使程序更加模块化、可复用和易于维护。
为了提升对Java面向对象编程的理解和实践能力,以下是一些Java OOP练习题,帮助您更好地掌握Java面向对象的基本概念和应用。
1. 定义一个名为"Car"的类,具有以下属性:品牌(brand)、颜色(color)和价格(price)。
编写类的构造方法和获取属性值的方法。
2. 在Car类中添加一个方法:outputInfo(),该方法用于展示汽车的品牌、颜色和价格信息。
3. 定义另一个名为"Student"的类,具有以下属性:姓名(name)、年龄(age)和分数(score)。
编写类的构造方法和获取属性值的方法。
4. 在Student类中添加一个方法:outputInfo(),该方法用于展示学生的姓名、年龄和分数信息。
5. 创建一个Car实例,并使用相关方法设置和获取汽车的属性值,最后调用outputInfo()方法展示汽车的信息。
6. 创建一个Student实例,并使用相关方法设置和获取学生的属性值,最后调用outputInfo()方法展示学生的信息。
7. 定义一个名为"Circle"的类,具有以下属性:半径(radius)。
编写类的构造方法和获取属性值的方法。
8. 在Circle类中添加一个方法:计算圆的面积(area),并返回结果。
9. 创建一个Circle实例,并使用相关方法设置和获取圆的半径值,最后调用计算圆的面积的方法,并展示结果。
10. 定义一个名为"Rectangle"的类,具有以下属性:宽度(width)和高度(height)。
编写类的构造方法和获取属性值的方法。
11. 在Rectangle类中添加一个方法:计算矩形的面积(area),并返回结果。
西工大C语言学习知识POJ习题集规范标准答案
一.1.第一季10题全(注:第五题问题已经解决,确认AC!)#include <stdio.h>int main(){int a,b,sum;scanf("%d%d",&a,&b);sum=a+b;printf("%d\n",sum);return 0;}2.#include <stdio.h>#define PI 3.1415926int main(){double r,h,l,s,sq,vq,vz;scanf("%lf%lf",&r,&h);l=2*PI*r;s=PI*r*r;sq=4*PI*r*r;vq=4*PI*r*r*r/3;vz=s*h;printf("%.2lf\n%.2lf\n%.2lf\n%.2lf\n%.2lf\n", l,s,sq,vq,vz);return 0; }3.#include <stdio.h>int main(){int a,b,c;double d,e;scanf("%d%d%d",&a,&b,&c); d=a+b+c;e=d/3;printf("%lf\n%lf\n",d,e);return 0;}4.#include <stdio.h>int main(){int a,b,c;scanf("%d%d%d",&a,&b,&c); if(a<b)a=b;if(a<c)a=c;printf("%d\n",a);return 0;}5.#include<stdio.h>int main(){int i=0,j=0,k=1;char a[6];while((a[i]=getchar())!='\n') {i++;}for(;i>0;i--){if(a[j]==a[i-1]){ j++;continue;}else {k=0;break;}}if(k==1)printf("yes\n"); elseprintf("no\n"); }6.#include<stdio.h>int main(){double a,c;scanf("%lf",&a);switch((int)a/10){case0:c=a*0.1;break;case1:c=(a-10)*0.075+10*0.1;break;case2:case3:c=(a-20)*0.05+10*0.075+10*0.1;break;case4:case5:c=(a-40)*0.03+20*0.05+10*0.075+10*0.1;break;case6:case7:case8:case9:c=(a-60)*0.015+20*0.03+20*0.05+10*0.075+10*0. 1;break;default:c=(a-100)*0.01+40*0.015+20*0.03+20*0.05+10*0. 075+10*0.1;}printf("%lf\n",c);return0;}7.#include<stdio.h>int main(){double a,b,c;scanf("%lf",&a);c=(int)a;if(a>c)a=c+1;if(a>15)b=(a-15)*2.1+7+13*1.5;else{if(a>2)b=(a-2)*1.5+7;else b=7;}printf("%lf\n",b); return0;}8.#include <stdio.h>int main(){int a,b,c,e,f=30,g=31,n;scanf("%d-%d-%d",&a,&b,&c);if((a%400==0)||(a%100!=0&&a%4==0)) e=29;elsee=28;switch (b){case 1:n=c;break;case 2:n=g+c;break;case 3:n=g+e+c;break;case 4:n=g+e+g+c;break;case 5:n=g+e+g+f+c;break;case 6:n=g+e+g+f+g+c;break;case 7:n=g+e+g+f+g+f+c;break;case 8:n=g+e+g+f+g+f+g+c;break;case 9:n=g+e+g+f+g+f+g+g+c;break;case 10:n=g+e+g+f+g+f+g+g+f+c;break; case 11:n=g+e+g+f+g+f+g+g+f+g+c;break; default: n=g+e+g+f+g+f+g+g+f+g+f+c;}printf("%d\n",n);return 0;}9.#include <stdio.h> int main(){int x;scanf("%d",&x);if(x>=90&&x<=100) printf("A\n");else if (x>=80)printf("B\n");else if (x>=70)printf("C\n");else if (x>=60)printf("D\n");elseprintf("E\n");return 0;}10.#include<stdio.h>int main(){double x,y,s;scanf("%lf,%lf",&x,&y);s=(x+2)*(x+2)+(y-2)*(y-2); if(s>1){s=(x+2)*(x+2)+(y+2)*(y+2); if(s>1){s=(x-2)*(x-2)+(y+2)*(y+2);if(s>1){s=(x-2)*(x-2)+(y-2)*(y-2);if(s>1){printf("0\n");return1;} }}}printf("10\n");return0;}二。
西工大POJ100题(全新)
西工大POJ100题(全新)1计算A+B2圆及圆球等的相关计算3计算成绩4找最大数5找幸运数6奖金发放7出租车费8是该年的第几天9成绩转换10求建筑高度11区间内素数12计算π13两个整数之间所有的素数14最次方数15自然数立方的乐趣16五猴分桃17完全数18二分求根19你会存钱吗?20级数和21幸运数字722粒子裂变23特殊整数24最大乘积25解不等式26危险的组合27子序列的和29探索合数世纪30韩信点兵31亲和数32高低交换33循环移位35组合数36积分计算37数据加密38获取指定二进制位39__N40不会吧,又是A+B 41平均值函数42插入排序43一维数组赋值44右下角45右上角46山迪的麻烦47冒泡排序48恐怖水母49左上角50一维数组加法51字符串排序52字符串左中右53文章统计54找出数字55字符串比较56THE CLOCK57合并字符串58特殊要求的字符串59字符串逆序60COIN TEST61小型数据库62单词频次65检测位图长宽67子字符串替换68复数69字符串加密编码70重组字符串71大数除法72创建与遍历职工链表73大数加法74大数减法75链表节点删除76链表动态增长或缩小77大数乘法78精确乘幂80火车站81操场训练82__NE84阶乘合计85王的对抗86三点顺序87公园喷水器88勇闯天涯89不屈的小蜗90THE RATIO OF __ TO LOSERS91__RD92__TIC __SIONS93__94__AT97BEE98__M __HM99Hanoi 2100Specialized number1计算A+B#includestdio.hint main(){int a,b,sum;scanf(“%d %d",a,sum=a+b;printf("%d",sum); }2圆及圆球等的相关计算#includestdio.hint main(){float r,h,l,s,sq,vq,vz,pi=3.__-__3; scanf("%f %f",r,l=2*pi*r;s=pi*r*r;sq=4*pi*r*r;vq=4.0/3*pi*r*r*r;vz=pi*r*r*h;printf("%.2f\n%.2f\n%.2f\n%.2f\n%.2f\n",l,s,sq,vq,vz); return 0; }3计算成绩#include stdio.hint main(){float a,b,c,sum,ave;scanf("%f %f %f",a,b,sum=a+b+c;ave=sum/3.0;printf("%.6f\n%.6f",sum,ave);return 0;}4找最大数#includestdio.hint main(){int a,b,c,t;scanf("%d %d %d",a,b, if (ab) t=a,a=b;if(ac) t=a,a=c;printf("%d",a); return 0;}5找幸运数#include stdio.hint main(){int i,j,a;scanf("%d",i=0;j=a;while(j){i=10*i+(j%10);j=j/10;}if(i==a)printf("yes\n");else printf("no\n");return 0;}6奖金发放#includestdio.hint main (){float l;scanf("%f",if (l=10)l=l*0.1;else if(l=20)l=10*0.1+(l-10)*0.075;else if(l=40)l=10*0.1+10*0.075+(l-20)*0.05; elseif(l=60)l=10*0.1+10*0.075+20*0.05+(l-40)*0.03; elseif(l=100)l=10*0.1+10*0.075+20*0.05+20*0.03+(l-60)*0.015; elsel=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(l-100)*0.01; printf("%.6f",l);return 0;}7出租车费#includestdio.h#includemath.hint main(){float a,n,t;scanf("%f",if (a=2) n=7;else if (a=15) {t=a-floor(a);if(t==0)n=7+(floor(a)-2)*1.5;else n=7+(floor(a)-1)*1.5;}else {t=a-floor(a);if(t==0) n=7+13*1.5+(floor(a)-15)*2.1; else n=7+13*1.5+(floor(a)-14)*2.1;} printf("%.6f",n);return 0;}8是该年的第几天#includestdio.hint main(){int y,m,d,n,a;scanf("%d-%d-%d",y,m,if((y%4==0y%100!=0)||(y%400==0)) a=29; else a=28; switch(m){case 1:n=d;break;case 2:n=31+d;break;case 3:n=31+a+d;break;case 4:n=62+a+d;break;case 5:n=92+a+d;break;case 6:n=123+a+d;break;case 7:n=153+a+d;break;case 8:n=184+a+d;break;case 9:n=215+a+d;break;case 10:n=245+a+d;break;case 11:n=276+a+d;break;case 12:n=306+a+d;break;}printf("%d",n);return 0;}9成绩转换#includestdio.hint main()int n;scanf("%d",if(n60)printf("E\n");else if(n70)printf("D\n");else if(n80)printf("C\n");else if(n90)printf("B\n");else printf("A\n");return 0;}10求建筑高度#includestdio.hint main(){float x,y,a,b,c,d;scanf("%f,%f",x,a=(x-2)*(x-2)+(y-2)*(y-2);b=(x-2)*(x-2)+(y+2)*(y+2);c=(x+2)*(x+2)+(y-2)*(y-2);d=(x+2)*(x+2)+(y+2)*(y+2);if(a=1||b=1||c=1||d=1)printf("10"); else printf("0"); return 0;11区间内素数#includestdio.h#includemath.hint main(){int i,n=500,cnt=0,sum=0;while(n=800){for (i=2;i=n-1;i++)if (n%i==0)break;if (i==n)cnt=cnt+1,sum=sum+pow((-1),cnt)*n; n=n+1; }printf("%d %d",cnt,sum);return 0;}12计算π#includestdio.h#includemath.hint main(){int s=1;double pi=0,n=1,t=1;while (fabs(t)1e-6)pi=pi+t,n=n+2,s=-s,t=s/n; pi=pi*4;printf("%.6f",pi);return 0;}13两个整数之间所有的素数#includestdio.hint main(){int a,b,t,i;scanf("%d%d",a,if(ab)t=a,a=b,b=t;while (a=b){for (i=2;i=a-1;i++)if (a%i==0)break;if(i==a)printf("%d ",a);a++;}return 0;}14最次方数#includestdio.hint main(){int x,a,m=1,n=1;scanf("%d %d",x,while (m=a){n=n__;n=n%1000;m=m+1;}printf("%d",n);return 0;}15自然数立方的乐趣#includestdio.hint main(){int n,a,i,t;scanf("%d",a=n*(n-1)+1;t=n*n*n;printf("%d*%d*%d=%d=",n,n,n,t);for(i=1;ii++){printf("%d+",a);a=a+2;}printf("%d",a);return 0;}16五猴分桃#includestdio.hint divides(int n,int m){if (n/5==0||n%5!=1)return 0;if (m==1)return 1;return divides(n-n/5-1,m-1);}int main(){int n,a;for (n=1;;n++)if(divides(n,5)){printf("%d ",n);break;}a=(((((n-1)*4/5-1)*4/5-1)*4/5-1)*4/5-1)*4/5; printf("%d",a);return 0;}17完全数#includestdio.hint main(){int i,n,sum=0;for(n=2;n1000;n++){sum=0;for (i=1;i=n/2;i++){if(n%i==0)sum=sum+i;}if(sum==n){printf("%d=",n); for(i=1;ii++)if(n%i==0)printf("%d+",i);i=n/2;printf("%d\n",i);}}return 0;}18二分求根#includemath.h#includestdio.hdouble fun(double x) {return 2__-4__+3__-6;} double root(double a,double b,double e){double x1,x2,y1,x,y;x1=a;x2=b;do {x=(x1 + x2)/2;y=fun(x);y1=fun(x1);if((y0y10)||(y0y10))x1=x;elsex2=x;/*end if*/}while(fabs(y)return x;}int main(void){double m,n;scanf("%f %f",m,double x=root(m,n,1e-8);printf("%.2f\n",x);return 0;}19你会存钱吗?#includestdio.h#includemath.hint main(){int i8,i5,i3,i2,i1,n8,n5,n3,n2,n1;float max=0,term;for(i8=0;i8i8++) /*穷举所有可能的存款方式*/。
POJ+练习题分类
POJ+练习题分类POJ 练习题分类目录1.基本输入输出 (1)2.算术逻辑运算 (1)3.循环 (2)4.数组 (3)5.指针 (3)6.排序 (3)7.函数 (3)8.简单计算题 (3)9.进制转换 (4)10.字符串处理 (4)11.时间和日期处理 (5)12.模拟 (5)13.高精度计算 (6)14.枚举 (6)15.递归 (7)16.动态规划 (7)1. 1.基本输入输出1.1 第一个Java程序27282. 2.算术逻辑运算2.1 计算书费26752.2 化验诊断26802.3 最远距离26932.4 最大商26952.5 与7无关的数27012.6 骑车与走路27032.7 跳绳游戏27052.8 求一元二次方程的根2707 2.9 平衡饮食27082.10 细菌繁殖27122.11 求平均年龄27142.12 谁拿了最多奖学金2715 2.13 晶晶赴约会27182.14 陶陶摘苹果27192.15 大象喝水27202.16 学分绩点27222.17 生日相同27242.18 求12以内n的阶乘2729 2.19 鸡兔同笼27502.20 二叉树27562.21 数根27642.22 二叉树27882.23 计算图像方差27892.24 数字求和27962.25 点和正方形的关系2854 2.26 计算邮资28562.27 停车场收费29332.28 试剂配制29362.29 验证“歌德巴赫猜想”31433. 3.循环3.1 整数的个数26763.2 整数的立方和26793.3 求分数序列和26833.4 求阶乘的和26843.5 打印水仙花数26853.6 打印完数26863.7 迭代法解方程26973.8 自整除数26993.9 求出e的值27092732 3.11 菲波那契数列27533.12 牛顿迭代方法28683.13 计算费马数28693.14 能被3除尽的数之和2886 3.15 能被3,5,7整除的数2887 3.16 受限完全平方数2911 3.17 三个完全平方数2912 3.18 求和29403.19 满足条件的整数29413.20 球弹跳高度的计算31424. 4.数组4.1 肿瘤检测26774.2 数组逆序重放26874.3 打印极值点下标26914.4 肿瘤面积27134.5 求矩阵的加法28704.6 异常细胞检测29375. 5.指针5.1 求字符串长度26815.2 循环移动26826. 6.排序6.1 整数奇偶排序28716.2 按顺序输出29386.3 小白鼠排队29436.4 摘花生29507. 7.函数7.1 计算反序数28857.2 矩阵交换行28997.3 字符串排序29157.4 素数回文数的个数29288. 8.简单计算题8.1 装箱问题10178.2 棋盘上的距离16578.3 化验诊断26808.4 平均年龄27148.5 谁拿了最多的奖学金2715 8.6 鸡兔同笼27508.7 简单密码27678.8 数字求和27968.9 垂直直方图28008.10 填词28018.11 两倍28078.12 校门外的树28088.13 密码28189. 9.进制转换9.1 数制转换27109.2 十进制到八进制27349.3 八进制到十进制27359.4 八进制小数27659.5 2进制转化为16进制2798 9.6 确定进制29729.7 skew数297310. 10.字符串处理10.1 统计字符数267810.2 求字母的个数2688 10.3 大小写字母互换2689 10.4 首字母大写269010.5 计算表达式的值269610.6 字符替换270010.7 密码翻译270210.8 竞赛评分270410.9 统计字符数274210.10 字符串判等274310.11 子串274410.12 字符串数组排序问题2752 10.13 简单密码276710.14 最短前缀279710.15 浮点数格式279910.16 词典280410.17 W密码281910.18 古代密码282010.19 句中最长的单词2880 10.20 字符串中的数字2888 10.21 字符串加空格2909 10.22 提取数字291010.23 加密技术291310.24 算术运算292610.25 判断数字个数2927 10.26 扩号匹配292910.27 加减乘除293010.28 比较数字个数2931 10.29 字符串插入293410.30 有未知数的表达式2935 10.31 单词替换294410.32 487-3279 297410.33 Caesar密码297510.34 All in All 297610.35 日志排序299811. 11.时间和日期处理11.1 细菌繁殖271211.2 不吉利的日期2723 11.3 判断闰年273311.4 日历问题296411.5 玛雅历296511.6 时区间时间的转换296611.7 特殊日历计算296712. 12.模拟12.1 排列183312.2 宇航员183512.3 显示器274512.4 约瑟夫问题274612.5 数根276412.6 武林278512.7 垂直直方图280012.8 玩游戏294612.9 花生问题295012.10 循环数295213. 13.高精度计算13.1 麦森数270613.2 求20以内n的阶乘2730 13.3 求10000以内n的阶乘273113.4 大整数减法273613.5 大整数除法273713.6 浮点数加法273813.7 计算对数273913.8 八进制小数276513.9 孙子问题浮点数加法279313.10 计算2的N次方2809 13.11 大整数的因子2925 13.12 浮点数求高精度幂2951 13.13 大整数乘法298013.14 大整数加法298114. 14.枚举14.1 反正切函数的应用1183 14.2 称硬币269214.3 计算对数273914.4 数字方格274714.5 正方形280514.6 完美立方281014.7 熄灯问题281114.8 讨厌的青蛙281214.9 画家问题281314.10 拨钟问题281414.11 生理周期297715. 15.递归15.1 棋盘分割119115.2 棋盘问题132115.3 放苹果166415.4 逆波兰表达式2694 15.5 八皇后问题269815.6 合唱队形271115.7 采药272615.8 数字方格274715.9 全排列274815.10 分解因数274915.11 菲波那契数列2753 15.12 八皇后问题275415.13 二叉树275615.14 文件结构"图"2775 15.15 算24278715.16 迷宫279015.17 小游戏280215.18 碎纸机280315.19 城堡281515.20 红与黑281615.21 木棍问题281716. 16.动态规划16.1 滑雪108816.2 帮助Jimmy 1661 16.3 还是采药问题2727 16.4 采药273316.5 神奇的口袋2755 16.6 最长上升子序列2757 16.7 菲波那契数列(2) 2758 16.8 神奇的口袋(2) 2759 16.9 数字三角形2760 16.10 最大子矩阵2766 16.11 采药277316.12 木材加工2774 16.13 文件结构“图”2775 16.14 Pell 数列2786 16.15 矩形覆盖2791 16.16 集合加法2792 16.17 孙子问题2793 16.18 金银岛279516.19 最长公共子序列2806 16.20 矩形覆盖280916.21 陪审团的人选2979。
C-POJ习题
C 语言 POJ 习题答案
◆T0502 #include<stdio.h> int main() { int a,b; float c; scanf("%d%d",&a,&b); c=a+b/100.00; if(c<=1.20) printf("%d 月%d 日是摩羯座\n",a,b); else if(c<=2.20) printf("%d 月%d 日为宝瓶座\n",a,b); else if(c<=3.20) printf("%d 月%d 日为双鱼座\n",a,b); else if(c<=4.20) printf("%d 月%d 日为白羊座\n",a,b); else if(c<=5.20) printf("%d 月%d 日为金牛座\n",a,b); else if(c<=6.20) printf("%d 月%d 日为双子座\n",a,b); else if(c<=7.22) printf("%d 月%d 日为巨蟹座\n",a,b); else if(c<=8.22) printf("%d 月%d 日为狮子座\n",a,b); else if(c<=9.22) printf("%d 月%d 日为处女座\n",a,b); else if(c<=10.22) printf("%d 月%d 日为天秤座\n",a,b); else if(c<=11.22) printf("%d 月%d 日为天蝎座\n",a,b); else if(c<=12.22) printf("%d 月%d 日为人马座\n",a,b); else printf("%d 月%d 日为摩羯座\n",a,b); return 0; } ◆T0505 #include<stdio.h> #include<math.h> int main() { int h,m,a,b,c; scanf("%d:%d",&h,&m); a=30*h+m/2; b=6*m; c=abs(b-a); if (c>180) c=360-c; printf("c=%d\n",c); return 0; } ◆SXD02 #include<stdio.h> int main() { int i; for(i=100;i<=200;i++) {
西工大POJ100题(全新)(DOC)
1·计算A+B2·圆及圆球等的相关计算3·计算成绩4·找最大数5·找幸运数6·奖金发放7·出租车费8·是该年的第几天9·成绩转换10·求建筑高度11·区间内素数12·计算π13·两个整数之间所有的素数14·最次方数15·自然数立方的乐趣16·五猴分桃17·完全数18·二分求根19·你会存钱吗?20·级数和21·幸运数字722·粒子裂变23·特殊整数24·最大乘积25·解不等式26·危险的组合27·子序列的和29·探索合数世纪30·韩信点兵31·亲和数32·高低交换33·循环移位35·组合数36·积分计算37·数据加密38·获取指定二进制位39·ACKERMAN40·不会吧,又是A+B 41·平均值函数42·插入排序43·一维数组赋值44·右下角45·右上角46·山迪的麻烦47·冒泡排序48·恐怖水母49·左上角50·一维数组加法51·字符串排序52·字符串左中右53·文章统计54·找出数字55·字符串比较56·THE CLOCK 57·合并字符串58·特殊要求的字符串59·字符串逆序60·COIN TEST 61·小型数据库62·单词频次65·检测位图长宽67·子字符串替换68·复数69·字符串加密编码70·重组字符串71·大数除法72·创建与遍历职工链表73·大数加法74·大数减法75·链表节点删除76·链表动态增长或缩小77·大数乘法78·精确乘幂80·火车站81·操场训练82·HAILSTONE84·阶乘合计85·王的对抗86·三点顺序87·公园喷水器88·勇闯天涯89·不屈的小蜗90·THE RATIO OF GAINERS TO LOSERS 91·GRAVEYARD92·ARITHMETIC PROGRESSIONS 93·SCORING94·HOUSEBOAT97·BEE98·CHECKSUM ALGORITHM99·Hanoi 2100·Specialized number1·计算A+B#include<stdio.h>int main(){int a,b,sum;scanf("%d %d",&a,&b);sum=a+b;printf("%d",sum);}2·圆及圆球等的相关计算#include<stdio.h>int main(){float r,h,l,s,sq,vq,vz,pi=3.141592653;scanf("%f %f",&r,&h);l=2*pi*r;s=pi*r*r;sq=4*pi*r*r;vq=4.0/3*pi*r*r*r;vz=pi*r*r*h;printf("%.2f\n%.2f\n%.2f\n%.2f\n%.2f\n",l,s,sq,v q,vz);return 0;}3·计算成绩#include <stdio.h>int main(){float a,b,c,sum,ave;scanf("%f %f %f",&a,&b,&c);sum=a+b+c;ave=sum/3.0;printf("%.6f\n%.6f",sum,ave);return 0;}4·找最大数#include<stdio.h>int main(){int a,b,c,t;scanf("%d %d %d",&a,&b,&c);if (a<b) t=a,a=b;if(a<c) t=a,a=c;printf("%d",a);return 0;}5·找幸运数#include <stdio.h>int main(){int i,j,a;scanf("%d",&a);i=0;j=a;while(j){i=10*i+(j%10);j=j/10;}if(i==a)printf("yes\n");else printf("no\n");return 0;}6·奖金发放#include<stdio.h>int main (){float l;scanf("%f",&l);if (l<=10)l=l*0.1;else if(l<=20)l=10*0.1+(l-10)*0.075;else if(l<=40)l=10*0.1+10*0.075+(l-20)*0.05;elseif(l<=60)l=10*0.1+10*0.075+20*0.05+(l-40)*0.03;elseif(l<=100)l=10*0.1+10*0.075+20*0.05+20*0.03+(l-60)* 0.015;elsel=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(l-100)* 0.01;printf("%.6f",l);return 0;}7·出租车费#include<stdio.h>#include<math.h>int main(){float a,n,t;scanf("%f",&a);if (a<=2) n=7;else if (a<=15) {t=a-floor(a);if(t==0)n=7+(floor(a)-2)*1.5;else n=7+(floor(a)-1)*1.5;}else {t=a-floor(a);if(t==0) n=7+13*1.5+(floor(a)-15)*2.1;else n=7+13*1.5+(floor(a)-14)*2.1;} printf("%.6f",n);return 0;}8·是该年的第几天#include<stdio.h>int main(){int y,m,d,n,a;scanf("%d-%d-%d",&y,&m,&d);if((y%4==0&&y%100!=0)||(y%400==0)) a=29;else a=28;switch(m){case 1:n=d;break;case 2:n=31+d;break;case 3:n=31+a+d;break;case 4:n=62+a+d;break;case 5:n=92+a+d;break;case 6:n=123+a+d;break;case 7:n=153+a+d;break;case 8:n=184+a+d;break;case 9:n=215+a+d;break;case 10:n=245+a+d;break;case 11:n=276+a+d;break;case 12:n=306+a+d;break;}printf("%d",n);return 0;}9·成绩转换#include<stdio.h>int main(){int n;scanf("%d",&n);if(n<60)printf("E\n");else if(n<70)printf("D\n");else if(n<80)printf("C\n");else if(n<90)printf("B\n");else printf("A\n");return 0;}10·求建筑高度#include<stdio.h>int main(){float x,y,a,b,c,d;scanf("%f,%f",&x,&y);a=(x-2)*(x-2)+(y-2)*(y-2);b=(x-2)*(x-2)+(y+2)*(y+2);c=(x+2)*(x+2)+(y-2)*(y-2);d=(x+2)*(x+2)+(y+2)*(y+2);if(a<=1||b<=1||c<=1||d<=1)printf("10");else printf("0");return 0;}11·区间内素数#include<stdio.h>#include<math.h>int main(){int i,n=500,cnt=0,sum=0;while(n<=800){for (i=2;i<=n-1;i++)if (n%i==0)break;if (i==n)cnt=cnt+1,sum=sum+pow((-1),cnt)*n; n=n+1;}printf("%d %d",cnt,sum);return 0;}12·计算π#include<stdio.h>#include<math.h>int main(){int s=1;double pi=0,n=1,t=1;while (fabs(t)>1e-6)pi=pi+t,n=n+2,s=-s,t=s/n;pi=pi*4;printf("%.6f",pi);return 0;}13·两个整数之间所有的素数#include<stdio.h>int main(){int a,b,t,i;scanf("%d%d",&a,&b);if(a>b)t=a,a=b,b=t;while (a<=b){for (i=2;i<=a-1;i++)if (a%i==0)break;if(i==a)printf("%d ",a);a++;}return 0;}14·最次方数#include<stdio.h>int main(){int x,a,m=1,n=1;scanf("%d %d",&x,&a);while (m<=a){n=n*x;n=n%1000;m=m+1;}printf("%d",n);return 0;}15·自然数立方的乐趣#include<stdio.h>int main(){int n,a,i,t;scanf("%d",&n);a=n*(n-1)+1;t=n*n*n;printf("%d*%d*%d=%d=",n,n,n,t);for(i=1;i<n;i++){printf("%d+",a);a=a+2;}printf("%d",a);return 0;}16·五猴分桃#include<stdio.h>int divides(int n,int m){if (n/5==0||n%5!=1)return 0;if (m==1)return 1;return divides(n-n/5-1,m-1);}int main(){int n,a;for (n=1;;n++)if(divides(n,5)){printf("%d ",n);break;}a=(((((n-1)*4/5-1)*4/5-1)*4/5-1)*4/5-1)*4/5;printf("%d",a);return 0;}17·完全数#include<stdio.h>int main(){int i,n,sum=0;for(n=2;n<1000;n++){sum=0;for (i=1;i<=n/2;i++){if(n%i==0)sum=sum+i;}if(sum==n){printf("%d=",n);for(i=1;i<n/2;i++)if(n%i==0)printf("%d+",i);i=n/2;printf("%d\n",i);}}return 0;}18·二分求根#include<math.h>#include<stdio.h>double fun(double x) {return 2*x*x*x-4*x*x+3*x-6;} double root(double a,double b,double e){double x1,x2,y1,x,y;x1=a;x2=b;do {x=(x1 + x2)/2;y=fun(x);y1=fun(x1);if((y<0&&y1<0)||(y>0&&y1>0))x1=x;elsex2=x;/*end if*/}while(fabs(y) > e);return x;}int main(void){double m,n;scanf("%f %f",&m,&n);double x=root(m,n,1e-8);printf("%.2f\n",x);return 0;}19·你会存钱吗?#include<stdio.h>#include<math.h>int main(){int i8,i5,i3,i2,i1,n8,n5,n3,n2,n1;float max=0,term;for(i8=0;i8<3;i8++) /*穷举所有可能的存款方式*/for(i5=0;i5<=(20-8*i8)/5;i5++)for(i3=0;i3<=(20-8*i8-5*i5)/3;i3++)for(i2=0;i2<=(20-8*i8-5*i5-3*i3)/2;i2++){i1=20-8*i8-5*i5-3*i3-2*i2;term=2000.0*pow((double)(1+0.0063*12),(double)i1) *pow((double)(1+2*0.0063*12),(double)i2)*pow((double)(1+3*0.0069*12),(double)i3)*pow((double)(1+5*0.0075*12),(double)i5)*pow((double)(1+8*0.0084*12),(double)i8);/*计算到期时的本利合计*/if(term>max){max=term;n1=i1;n2=i2;n3=i3;n5=i5;n8=i8;}}printf("%d ",n8);printf("%d ",n5);printf("%d ",n3);printf("%d ",n2);printf("%d\n",n1);printf("%.2f",max);/*输出存款方式*/}20·级数和#include<stdio.h>#include<math.h>int main(){ int j,t,i,a,n;double s=0;scanf("%d",&n);j=-1; i=1; t=1;for (a=0;a<n;a++){t=t*2; j*=-1; i*=-1; s=s+j*t/((t+i)*(2*t+j)+0.0);}printf("%.6lf\n",s);return 0;}21·幸运数字7#include<stdio.h>int main(){int n,i;scanf("%d",&n);//n不大于30000if(n<7);else {for (i=7;i<=n;i++)if(i%7==0||i%10==7||i/1000%10==7||i/100%10==7||i/10 %10==7)printf("%d ",i);}return 0;}22·粒子裂变#include<stdio.h>int main(){int n[100],m[100],t,i;n[0]=1;m[0]=0;scanf("%d",&t);for(i=1;i<=t;i++){n[i]=m[i-1];m[i]=3*n[i-1]+2*m[i-1]; }printf("%d %d",n[t],m[t]); return 0;}23·特殊整数#include<stdio.h>#include <stdlib.h>#include<math.h>int main(){int m,n,g=0,s=0,i,j,x,x1,x2;scanf("%d %d",&m,&n);x1=(int)(pow(10.0,n)/10);x2=(int)(pow(10.0,n)-1);for(i=x1;i<=x2;i++){j=i;do{x=j%10;if(x==m){if(i%m!=0)g++,s=s+i;break;}else j=j/10;}while(j!=0);}printf("%d %d\n",g,s);return 0;}24·最大乘积#include<stdio.h>int main(){int A[18],i,j,n,x,y=0;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&A[i]);for(i=0;i<n;i++){x=1;for(j=i;j<n;j++){x=x*A[j];if(x>y) y=x;}}if(y>0)printf("%d",y);else printf("-1");return 0;}25·解不等式#include<stdio.h>int main(){int a,b;float n,s=0,sum=0;scanf("%d %d",&a,&b);for (n=1;sum<=a;n++){s=s+1/n;sum=sum+1/s;}printf("%.0f ",n=n-1); for (n;sum<=b;n++){s=s+1/n;sum=sum+1/s;}printf("%.0f",n=n-1); return 0;}26·危险的组合#include<stdio.h>#include<math.h>int main(){int n;int f(int);scanf("%d",&n);printf("%d",f(n));return 0;}int f(int n){int a;if(n==1||n==2)a=0;else if(n==3)a=1;else if(n==4)a=3;else a=f(n-1)*2+pow(2,n-4)-f(n-4);return a;}27·子序列的和#include<stdio.h>#include<math.h>int main(){int m,n,i; //n<m<1000000double a,sum=0;scanf("%d %d",&n,&m);for (i=n;i<=m;i++){a=pow(i,2.0);sum=sum+1/a;}printf("%.5lf",sum);return 0;}29·探索合数世纪#include<stdio.h>int main(){int n,i=500,s,x,count=0;long j,k;scanf("%d",&n);while(count<n){s=0;for(j=i*100-99;j<i*100;j+=2){x=0;for(k=3;k*k<=j;k+=2)if(j%k==0){x=1;break;}s+=x;}if(s==50)count++;i++;}printf("%d %d",j-101,j-2);return 0;}30·韩信点兵include<stdio.h>int main(){int a,b,c,n;//a<3,b<5,c<7scanf("%d %d %d",&a,&b,&c);for (n=10;n<=100;n++){if((n-a)%3==0&&(n-b)%5==0&&(n-c)%7==0)break;}if(n>100)printf("-1");else printf("%d ",n);return 0;}31·亲和数#include<stdio.h>int fun(int a){int b=0,i;for(i=1;i<=a/2;i++){if(a%i==0)b+=i;}return b;}int main(){int a,b;scanf("%d %d",&a,&b);if(fun(a)==b&&fun(b)==a)printf("YES");else printf("NO");return 0;}32·高低交换#include<stdio.h>inline int xchg(unsigned char n) {char left=n<<4;char right=n>>4;return left+right;}int main(){int n;scanf("%d",&n);n=xchg(n);printf("%d",n);return 0;33·循环移位#include<stdio.h>int move(int value,int n){if(n==0) return value;else if(n<0){n=-n;value=(value<<n)|(value>>(32-n));}else value=(value>>n)|(value<<(32-n));return value;}int main(){int value,n;scanf("%d %d",&value,&n);value=move(value,n);printf("%d",value);return 0;35·组合数#include<stdio.h>int C(int m,int n){int i,p=1;for (i=1;i<=n;i++)p*=(m+1-i)/(double)i;return p;}int main(){int m,n,t;scanf("%d %d",&m,&n);if(n>m) printf("wrong\n");else {t=C(m,n);printf("%d\n",t);}return 0;}36·积分计算#include<stdio.h>double f(double x){return 1.0/(1.0+x*x);}double jf(double a,double b) {double h,s=0;;int i;h=(b-a)/5000000;for(i=1;i<5000000;i++){s+=(f(a)+f(a+h))*0.5*h;a+=h;}return s;}int main(){double a,b,s;scanf("%lf%lf",&a,&b); s=jf(a,b);printf("%lf",s);return 0;}37·数据加密#include<stdio.h>int fun(int n){return (n+5)%10;}int main(){int a,b[4],i=0;scanf("%d",&a);while(a){b[i]=fun(a%10);a/=10;i++;}a=b[0]*1000+b[1]*100+b[2]*10+b[3]; printf("%d",a);return 0;}38·获取指定二进制位#include <stdio.h>int getbit(int n,int k){int count=0;while(1){count++;if(count==k)break;n/=2;}return n%2;}int main(){int n,k;scanf("%d %d",&n,&k);k=getbit(n,k);printf("%d",k);return 0;}39·ACKERMAN#include<stdio.h>int ack(int m,int n){if(m==0) return n+1;else if(n==0) return ack(m-1,1); else return ack(m-1,ack(m,n-1)); }int main(){int m,n;scanf("%d %d",&m,&n);m=ack(m,n);printf("%d",m);return 0;}40·不会吧,又是A+B#include<stdio.h>int main(){int a1,a2,a3,b1,b2,b3,a,b,c;scanf("%d %d %d %d %d %d",&a1,&a2,&a3,&b1,&b2,&b3); c=(a3+b3)%60;b=(a2+b2+(a3+b3)/60)%60;a=a1+b1+((a3+b3)/60+a2+b2)/60;printf("%d %d %d ",a,b,c);return 0;}41·平均值函数#include<stdio.h>double avg(int A[],int s,int e){int i;double t,sum;for(i=s;i<=e;i++)sum+=A[i];t=sum/(e-s+1);return t;}int main(){int n,s,e,i,A[100];double t;scanf("%d\n",&n);for(i=0;i<n;i++)scanf("%d ",&A[i]);scanf("%d %d",&s,&e);t=avg(A,s,e);printf("%f",t);return 0;}42·插入排序#include<stdio.h>void InsertionSort(int a[],int s,int m) {int t,i,j,k;for(i=0;i<m;i++){for(j=s+1;j<s+m-i;j++){t=a[j];k=j-1;while(t>a[k]){a[k+1]=a[k];k--;if(k==(s-1))break;}a[k+1]=t;}}}int main(){int n,a[100],i,s,m;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);scanf("%d %d",&s,&m);InsertionSort(a,s,m);for(i=0;i<n;i++)printf("%d ",a[i]);printf("\n");return 0;}43·一维数组赋值#include<stdio.h>int main(){int A[100],B[100],i,n;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&A[i]);for(i=0;i<n;i++){B[i]=A[i];if(i%2!=0)printf("%d ",B[i]);}return 0;}44·右下角#include<stdio.h>int main(){int n,a[10][10],i,j;scanf("%d",&n);for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%d",&a[i][j]);for(i=0;i<n;i++){for(j=0;j<n;j++){if(j<=n-i-2)printf(" "); else printf("%d ",a[i][j]);} printf("\n");}return 0;}45·右上角#include<stdio.h>int main(){int n,a[10][10],i,j;scanf("%d",&n);for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%d",&a[i][j]);for(i=0;i<n;i++){for(j=0;j<n;j++){if(j>=i)printf("%d ",a[i][j]); else printf(" ");}printf("\n");}return 0;}46·山迪的麻烦#include<stdio.h>int main(){int n,count=0,i,j,a[100],k;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=1;i<n;i++){k=a[i];for(j=i-1;j>=0&&k<a[j];j--){count++;a[j+1]=a[j];}a[j+1]=k;}printf("%d\n",count);return 0;}47·冒泡排序#include<stdio.h>void BubbleSort(int a[],int s,int m) {int t,i,j;for(i=0;i<m-1;i++){for(j=s;j<s+m-i-1;j++)if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}int main(){int n,a[100],i,s,m;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);scanf("%d %d",&s,&m);BubbleSort(a,s,m);for(i=0;i<n;i++)printf("%d ",a[i]);printf("\n");return 0;}48·恐怖水母#include<stdio.h>int main(){int n,m,i,j,a[100],b[100],t,sum=0; scanf("%d%d",&n,&m);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<m;i++)scanf("%d",&b[i]);for(i=0;i<n-1;i++){for(j=0;j<n-1-i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}for(i=0;i<m-1;i++){for(j=0;j<m-1-i;j++)if(b[j]>b[j+1]){t=b[j];b[j]=b[j+1];b[j+1]=t;}}for(i=0,j=0;i<n&&j<m;j++){if(a[i]<=a[j]){sum+=b[j];i++;}}printf("%d\n",sum);return 0;}49·左上角#include<stdio.h>int main(){int n,a[10][10],i,j;scanf("%d",&n);for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%d",&a[i][j]); for(i=0;i<n;i++){for(j=0;j<n-i;j++)printf("%d ",a[i][j]);printf("\n");}return 0;}50·一维数组加法#include<stdio.h>int main(){int A[100],B[100],C[100],n,i;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&A[i]);for(i=0;i<n;i++)scanf("%d",&B[i]);for(i=0;i<n;i++){C[i]=A[i]+B[i];printf("%d ",C[i]);}return 0;}51·字符串排序#include<stdio.h>#include<string.h>int main(){char str[10][10];int i,j;char t[10];for(i=0;i<10;i++){scanf("%s",str[i]);}for(i=0;i<10;i++){for(j=0;j<10-i;j++){if(strcmp(str[j],str[j+1])>0) {strcpy(t,str[j]);strcpy(str[j],str[j+1]);strcpy(str[j+1],t);}}}for(i=0;i<10;i++)printf("%s ",str[i]);return 0;}52·字符串左中右#include<stdio.h>#include<string.h>void Left(char str[],int n,char dest[]) {int i;for(i=0;i<n;i++)dest[i]=str[i];}void Right(char str[],int n,char dest[]) {int i,m,j=0;m=strlen(str);for(i=m-n;i<=m;i++){。
POJ Grids基本练习题
} } printf("%d",m); return 0; } 二、按位转换整数到英文单词 请把输入整数的每位数字转换成英文。 如当输入 1024 时,输出:one, zero, two, four 输入 输入为一个整数 输出 按整数每一位输出其英文单词,单词间用逗号加空格分隔,单词由小写字母组成。 样例输入 20345 样例输出
第一行 总的课程数 n(n<10); 第二行 相应课程的学分(两个学分间用空格隔开);
第三行 对应课程的实际得分;
此处输入的所有数字均为整数。
输出
输出有一行,总评绩点,精确到小数点后 2 位小数。(printf("%.2f",GPA);) 样例输入
5
43423
91 88 72 69 56 样例输出
2.52
two, zero, three, four, five 注意:大家要考虑数据为"0"的情况,此时如果取对 0 取对数会出错 #include<stdio.h> #define N 200 int main(){
int n,k,j,s; int a[N]; scanf("%d",&n); j=0; s=0; while(n!=0){
6 8 10 99 100 201 提示 这 N 个数需要随机产生 #include<stdio.h> #define N 1000 int main() { int a[N]; int n,i,j,temp; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(j=0;j<n-1;j++) {
poj习题
1.Music Composer来源:hdu 4245意思是第二个表那个可以解密,如果没有就输出UNIQUE,例如如果输入:Ab minorD# majorG minor分别输出G# minorEb majorUNIQUE这个就比较简单了,学C++的考虑运用Map如下:#include<iostream>#include<map>#include<string>using namespace std;int main(){map<string,string>m;m["A#"]="Bb";m["C#"]="Db";m["D#"]="Eb";m["F#"]="Gb";m["G#"]="Ab";m["Bb"]="A#";m["Db"]="C#";m["Eb"]="D#";m["Gb"]="F#";m["Ab"]="G#";string a,b;int i=1;while(cin>>a>>b){a=m[a];if(a=="")cout<<"UNIQUE"<<endl;else cout<<a<<" "<<b<<endl;}return 0;}学C的就不能了,就一个个判断吧:#include <stdio.h>#include <string.h>int main(){char s[200];while(gets(s)){if(s[0]=='A'&&s[1]=='#'){s[0]='B';s[1]='b';printf("%s\n",s);} elseif(s[0]=='A'&&s[1]=='b'){s[0]='G';s[1]='#';printf("%s\n",s);}elseif(s[0]=='B'&&s[1]=='b'){s[0]='A';s[1]='#';printf("%s\n",s);}elseif(s[0]=='C'&&s[1]=='#'){s[0]='D';s[1]='b';printf("%s\n",s);}elseif(s[0]=='D'&&s[1]=='b'){s[0]='C';s[1]='#';printf("%s\n",s);}elseif(s[0]=='D'&&s[1]=='#'){s[0]='E';s[1]='b';printf("%s\n",s);}elseif(s[0]=='E'&&s[1]=='b'){s[0]='D';s[1]='#';printf("%s\n",s);}elseif(s[0]=='F'&&s[1]=='#'){s[0]='G';s[1]='b';printf("%s\n",s);}elseif(s[0]=='G'&&s[1]=='b'){s[0]='F';s[1]='#';printf("%s\n",s);}elseif(s[0]=='G'&&s[1]=='#'){s[0]='A';s[1]='b';printf("%s\n",s);}else printf("UNIQUE\n");}return 0;}2. The Clock输入一个小于等于12的罗马数字,输出对应的阿拉伯数字,很简单#include <stdio.h>int main(){char s[5];int i,sum=0;gets(s);for(i=0;s[i]!='\0';i++){switch(s[i]){case'I': sum+=1;break;case'V': sum=5-sum;break;case'X':sum=10-sum;break;}}printf("%d\n",sum);return 0;}3.Coin Test://Coin Test#include <stdio.h>int u,d;int gcd(int a,int b){if(a==0) return b;else return gcd(b%a,a);}int main(){int n;char a[1000];gets(a);for(int i=0;a[i]!='\0';i++){if(a[i]=='S'){puts("WA");break;}if(a[i] == 'U') ++u;else ++d;}int g=gcd(u,u+d);//辗转相除求最大公约数if((double)u/(u+d)-0.5>0.003 ||(double)u/(u+d)-0.5<-0.003)puts("Fail");elseprintf("%d/%d\n",u/g,(u+d)/g);return 0;}第九季:1.The 3n + 1 problem来源:杭电10323n+1问题是一个简单有趣而又没有解决的数学问题。
完整版本的 poj 题目分类
完整版本的poj 题目分类DP:1011 NTA 简单题1013 Great Equipment 简单题1024 Calendar Game 简单题1027 Human Gene Functions 简单题1037 Gridland 简单题1052 Algernon s Noxious Emissions 简单题1409 Communication System 简单题,但是很容易看错~~~1425 Crossed Matchings 简单题1438 Asteroids! 简单题1459 String Distance and Transform Process 简单题1462 Team Them Up! 简单题1556 Heroes Of Might And Magic 简单题,不过背景蛮有意思的……1520 Duty Free Shop 简单题1524 Supermarket 简单题1301 The New Villa 简单题1303 Jury Compromise 其实不是很难,但是很容易错,555……1345 Best Deal 简单题,但是也很容易错……555……1360 Radar Installation 简单题1396 The Umbrella Problem: 2054 简单题1058 Currency Exchange 简单题1076 Gene Assembly 简单题1092 Arbitrage 简单题1093 Monkey and Banana 简单题1094 Matrix Chain Multiplication 简单题1536 Labyrinth 简单题1100 Mondriaan s Dream 简单题,DP可以过,不过据说有复杂的组合公式1103 Hike on a Graph 简单题1134 Strategic Game 简单题1147 Formatting Text 简单题1148 The Game 简单题1161 Gone Fishing 简单题1180 Self Numbers 简单题1192 It s not a Bug, It s a Feature! 简单题1196 Fast Food 简单题1107 FatMouse and Cheese 简单题,不过题目描述有些混乱1136 Multiple 简单题,BFS1276 Optimal Array Multiplication Sequence 简单题1255 The Path 简单题1250 Always On the Run 简单题1213 Lumber Cutting 简单题1206 Win the Bonus 简单题1479 Dweep 无聊题1587 UP 100 无聊题,DP应该可以……但是太烦了……没做……1066 Square Ice 无聊题,目前已知的O(nlogn)算法要用***L……您有没有简单点的O(nlogn)的算法?1245 Triangles 无聊题1022 Parallel Expectations 经典题,想了n久,最后发现可以DP,相当好的一道题1499 Increasing Sequences 经典题{}1039 Number Game 没有完美解决的题,感觉可以直接以所有剩下的数作为状态DP,但是缺乏证明……1227 Free Candies SRbGa的经典题,我看了oibh上的解题报告才做出来的……:( 1234 Chopsticks SRbGa的经典题……图论:1525 Air Raid 简单题,最小路径覆盖1500 Pre-Post-erous! 简单题1501 Knockout Tournament 简单题1508 Intervals 对您来说应该是简单题,但我想了n久……:(,差分限制系统1333 Galactic Import 简单题1304 Tin Cutter 简单题,但是似乎有空间复杂度为O(n)的算法1310 Robot 简单题1311 Network 简单题1344 A Mazing Problem 简单题1395 Door Man 简单题,欧拉回路1372 Networking 简单题1406 Jungle Roads 简单题1053 FDNY to the Rescue! 简单题1055 Oh, Those Achin Feet 不错的简单题1059 What s In a Name 简单题1064 Roads Scholar 简单题1082 Stockbroker Grapevine 简单题1085 Alien Security 简单题,我觉得我当时的算法好巧妙:)1097 Code the Tree 简单题1060 Sorting It All Out 简单题,但是规模要是大些的话……1105 FatMouse s Tour 简单题1119 SPF 简单题1127 Roman Forts 简单题1140 Courses 简单题1157 A Plug for UNIX 蛮不错的简单题1203 Swordfish 简单题1221 Risk 简单题,最短路1197 Sorting Slides 简单题,匹配1268 Is It A Tree? 不错的题,图论1273 It s Ir-Resist-Able! 简单题,图论1298 Domino Effect 简单题,最长路1260 King 简单题,差分限制系统……1291 MPI Maelstrom 不错的题,最长路1266 Gossiping 简单题1285 Shipping Routes 无聊题,最短路1313 Gears on a Board 无聊题1502 Plugged In 无聊题,匹配应该可以,但是太烦了,没做……1568 WishingBone s Room Plan 无聊题,最大最小匹配,不过容易看错题~~~~~~ 1077 Genetic Combinations 无聊题,匹配1364 Machine Schedule 背诵题……匹配……1137 Girls and Boys 背诵题,匹配……1023 University Entrace Examination 经典题,但是和1576重复1576 Marriage is Stable 经典题,感人的背景,经典的算法……1249 Pushing Boxes 经典题,某人的论文写过,求割点和块+BFS可以在O(面积)的时间内做出来,但是这题似乎已经比较老了1141 Closest Common Ancestors 没有完美解决,最简单的算法就能过,但要是规模大了……1084 Channel Allocation 尚未完美解决,我用搜索过的,不过是不是有更好的算法呢……?1231 Mysterious Mountain SRbGa的经典题……1232 Adventure of Super Mario SRbGa的经典题……数学:1007 Numerical Summation of a Series 简单题,还是蛮有意思的1045 HangOver 简单题1049 I Think I Need a Houseboat 简单题1028 Flip and Shift 简单题,可以DP/BFS/……,但是实际上有数学方法可以直接判断出来1026 Modular multiplication of polynomials 简单题,感觉有比较简单的好算法,但想不出来:(1307 Packets 简单题,不过也蛮经典的……1312 Prime Cuts 简单题1334 Basically Speaking 简单题1337 Pi 简单题1342 Word Index 简单题1349 Four Quarters 简单题1350 The Drunk Jailer 简单题1352 Number Base Conversion 简单题1353 Unimodal Palindromic Decompositions 规模不大,所以是简单题……1354 Extended Lights Out 简单题1362 Game Prediction 简单题1365 Mileage Bank 简单题1382 A Simple Task 简单题1383 Binary Numbers 简单题1403 Safecracker 简单题1408 The Fun Number System 简单题1486 Color the Tree 简单题1487 Playing Cards 简单题1489 2^x mod n = 1 简单题,应该有好算法,不过枚举就可以过……1503 One Person "The Price is Right" 简单题,POI Eggs的翻版1512 Water Treatment Plants 简单题,组合计数1526 Big Number 简单题,不过O(1)和O(n)还是有区别的:)1529 Enigmatic Travel 简单题,不过个人感觉题目描述很令人费解1530 Find The Multiple 简单题1537 Playing with a Calculator 简单题1577 GCD & LCM 简单题,分区联赛的题……1005 Jugs 简单题1543 Stripies 简单题1569 Partial Sums 简单题1062 Trees Made to Order 简单题1070 Bode Plot 简单题1073 Round and Round We Go 简单题,142857,我喜欢^_^1078 Palindrom Numbers 简单题1086 Octal Fractions 简单题1199 Point of Intersection 简单题1104 Leaps Tall Buildings 简单题1110 Dick and Jane 简单题1115 Digital Roots 简单题1113 u Calculate e 简单题1152 A Mathematical Curiosity 简单题1154 Niven Numbers 简单题1160 Biorhythms 简单题1163 The Staircases 简单题1177 K-Magic Number 简单题1184 Counterfeit Dollar 简单题1182 Keeps Going and Going and ... 简单题,我喜欢:)1284 Perfection 简单题1272 Numerically Speaking 简单题1269 Coconuts, Revisited 简单题1247 There s Treasure Everywhere! 简单题1241 Geometry Made Simple 简单题1202 Divide and Count 简单题1216 Deck 简单题1218 Ratio 简单题1261 Prime Land 简单题1212 Mountain Landscape 无聊题1410 Number Sequence 无聊题1401 Hilbert Curve Intersections 无聊题1331 Perfect Cubes 无聊题1322 Random Number 无聊题1535 Lucky Ticket 无聊题1539 Lot 无聊题1363 Chocolate 经典题……1366 Cash Machine 经典题!强烈推荐!1149 Dividing up 经典题,应该可以用1366的方法做,但似乎可以利用问题的特殊性用贪心+DP在O(1)的时间内做出来1222 Just the Facts 经典题,没有完美解决,我的做法是O(logn^2)的,据说可能有O(logn)的做法,但我没想到:(1475 Ranklist 没有完美解决,不知道您有没有好方法……1572 Bracelet ~~~题义不明,感觉可能是判定欧拉回路的存在性,但是过不去,555……1133 Smith Numbers 没有完美解决,数学1080 Direct Subtraction 尚未解决,我过的程序是错的,想和您讨论~~~1229 Gift?! SRbGa的经典题……1238 Guess the Number SRbGa的经典题……1239 Hanoi Tower Troubles Again! SRbGa的经典题……字符串处理:1050 Start Up the Startup 简单题1315 Excuses, Excuses! 简单题1151 Word Reversal 简单题,好像是什么Practice的……1170 String Matching 简单题1174 Skip Letter Code 不错的简单题1175 Word Process Machine 简单题1181 Word Amalgamation 简单题1038 T9 无聊题,单词树1330 DNA Translation 无聊题1335 Letter Sequence Analysis 无聊题1099 HTML 无聊题1243 URLs 无聊题1540 Censored! 经典题!强烈推荐!1511 Word Puzzles 没有完美解决的题,可以用后缀树……但是没多大意义……而且我通过的程序是错的……搜索:1002 Fire Net 简单题,CEOI2002的Guard的缩小版,搜索就可以1003 Crashing Balloon 简单题,很faint的题目,想了半天,最后发现最简单的搜索就能过1004 Anagrams by Stack 简单题,同样faint1320 DEL Command 简单题1496 Best Fit 简单题1179 Finding Rectangles 简单题1190 Optimal Programs 简单题1217 Eight 简单题1204 Additive equations 简单题1219 Pizza Anyone? 简单题1036 Enigma 2 无聊题,终于耐心读完题目后发现是简单的搜索+模拟……faint……建议不要看……1089 Lotto 无聊题1054 For the Porsche 无聊题1302 Ships ……题1031 Square Destroyer 变态题,:(:(:(:(,狂剪枝才过的……1297 Hexagon 变态题,标准解法是搜索……1008 Gnome Tetravex 经典题,个人感觉是很不错的卡时搜索,不过似乎IOI不会出这种题型……1380 Microfiches 经典题!强烈推荐!1252 Island of Logic 经典题,不过也够老了……1237 Fans and Gems SRbGa的经典题,变态,但是很有趣:)模拟:1051 A New Growth Industry 简单题1300 Border 简单题1326 M*A*S*H 简单题1494 Climbing Worm 简单题1072 Microprocessor Simulation 简单题1098 Simple Computers 简单题1056 The Worm Turns 简单题1195 Blowing Fuses 简单题1189 Numbers That Count 简单题1144 Robbery 简单题1153 Tournament Seeding 简单题,但是直接计算好像不行,得模拟……:(1167 Trees on the Level 简单题1200 Mining 简单题1278 Pseudo-Random Numbers 简单题1257 Parking Lot 简单题1270 Nonstop Travel 简单题1207 The Knight, the Princess, and the Dragons 无聊题1169 Square Cipher 无聊题1176 Die and Chessboard 无聊题1178 Booklet Printing 无聊题1009 Enigma 无聊题,但是很容易错……:(1012 Mainframe 无聊题,但是很容易错……:(1324 Unix ls 无聊题,输出格式没说清楚~~~~~~~1336 Mark-up 无聊题1277 Transferable V oting 无聊题1279 Cowculations 无聊题1281 Hi-Q 无聊题1282 Call Forwarding 无聊题1065 Robots 变态题,太复杂啦~~~~~~~~~~~1208 Roll the Die! 变态题1388 Exchanges 经典题!强烈推荐!1236 Eat or Not to Eat? SRbGa的经典题……模拟几何:1575 Koch Curve 简单题1010 Area 简单题1565 Input 简单题1081 Points Within 简单题1165 Laser Lines 简单题,但是算法能否再改进呢……?1248 Video Surveillance 简单题,李彭煦的论文中写到过,好像是某年CTSC的……1299 Pendulum 简单题,我蛮喜欢的:)1090 The Circumference of the Circle 无聊题1271 Doing Windows 无聊题1280 Intersecting Lines 无聊题1296 Stars 经典变态题……1030 Farmland 变态题……现在我都为自己当时居然能做出来感到不可思议……1041 Transmitters 变态题……好烦人……现在绝对没有信心再做一遍了……1158 Treasure Hunt 经典题,zig教会我的……1139 Rectangles 没有完美解决其它:1006 Do the Untwist 简单题1014 Operand 简单题1016 Parencodings 简单题1042 W s Cipher 简单题1047 Image Perimeters 简单题1514 Fake Tickets 简单题1029 Moving Tables 简单题,好像是线段树的经典题目之一,但是这题规模比较小,所以不必用。
青少年编程等级考试∶Python编程三级试卷3图文练习
青少年编程等级考试∶Python编程三级试卷3图文练习一、选择题1.下列不是 Python 程序基本结构的是()。
A.顺序结构B.树形结构C.分支结构D.循环结构2.Python语言属于()A.自然语言B.汇编语言C.机器语言D.高级语言3.python3解释器执行not 1 and 1的结果为()。
A.True B.False C.0 D.14.在Python中print(8+7%2**2)的执行结果是()A.5 B.1 C.6 D.115.在Python中,算式5+6*4%(2+8)结果为()A.25B.15C.9D.7.46.下列哪个语句在Python中是非法的?()A.x = y = z = 1 B.x = (y = z + 1) C.x, y = y, x D.x += y x=x+y 7.下列Python表达式的值不是2的是()。
A.3%2 B.5//2 C.1*2 D.1+3/38.下列关于算法说法不正确的是()A.算法独立于任何具体的语言,Python算法只能用Python语言来实现B.解决问题的过程就是实现算法的过程C.算法是程序设计的“灵魂”D.算法可以通过编程来实现9.python的命令行提示符是()A.### B.>>> C./// D.C:》10.关于python程序设计语言,下列说法不正确的是()A.python是一种解释型、面向对象的计算机程序设计语言B.python支持Windows操作系统,但不支持Linux系统C.python源文件以***.py为扩展名D.python文件不能直接在命令行中运行11.下列Python程序运行后的输出结果是( )。
s=0for i in range(1,5):s=s+iprint("s=",s)A.s=5 B.s=6 C.s=10 D.s=1512.下列选项中,属于Python输出函数的是()。
资料【试卷3】Python三级考试练习题程序填空阅读填空程序试题
资料【试卷3】Python三级考试练习题程序填空阅读填空程序试题一、程序填空1.操作说明:打开文件“Y:/2/2.py”,在代码窗口指定位置<1>、<2>处修改完善程序代码,不得增加、删除语句或改变程序原有结构,操作结束后保存。
以下程序段的功能是:输入一个正整数n(1至100),输出它的约数的个数。
s=0n=int(input(“请输入一个正整数:”))if n<1 or n>100:exit #输入的数不符合要求,退出for i in range(1,n+1):if n//i=0:___<1>s=s+i <2>print(“约数的个数是:”,s)2.冠军在A、B、C、D四位同学中。
A说:“不是我”,B说:“是C”,C说:“是D”, D说:“C说的不对”,已知四人中有一人说了假话。
判断出到底谁是冠军。
请在空格处填写正确的代码,使程序完善。
champion=['A','B','C','D'] #设置选手列表for i in__________: #循环读取选手编号cond=(i!='A') +(i=='C') + (i=='D')+(i!='D') #查找符合条件的选手if cond== _____: #说真话是否是3人print("冠军是:",_________) #输出冠军input("运行完毕,请按回车键退出...")3.程序编写求1+22+32+……+1002的结果____________________________________________________________________________________________________________________________input(“运行完毕,请按回车键退出...”)4.阅读程序。
POJC程序设计进阶编程题#3:文字排版
POJC程序设计进阶编程题#3:⽂字排版编程题#3:⽂字排版(Coursera声明:在POJ上完成的习题将不会计⼊Coursera的最后成绩。
)注意:总时间限制: 1000ms 内存限制: 65536kB描述给⼀段英⽂短⽂,单词之间以空格分隔(每个单词包括其前后紧邻的标点符号)。
请将短⽂重新排版,要求如下:每⾏不超过80个字符;每个单词居于同⼀⾏上;在同⼀⾏的单词之间以⼀个空格分隔;⾏⾸和⾏尾都没有空格。
输⼊第⼀⾏是⼀个整数n,表⽰英⽂短⽂中单词的数⽬. 其后是n个以空格分隔的英⽂单词(单词包括其前后紧邻的标点符号,且每个单词长度都不⼤于40个字母)。
输出排版后的多⾏⽂本,每⾏⽂本字符数最多80个字符,单词之间以⼀个空格分隔,每⾏⽂本⾸尾都没有空格。
样例输⼊84One sweltering day, I was scooping ice cream into cones and told my four children they could "buy" acone from me for a hug. Almost immediately, the kids lined up to make their purchases. The three youngest each gave me a quick hug, grabbe样例输出One sweltering day, I was scooping ice cream into cones and told my fourchildren they could "buy" a cone from me for a hug. Almost immediately, the kidslined up to make their purchases. The three youngest each gave me a quick hug,grabbed #include<stdio.h>#include<string.h>int main(){int n,i;char a[45]={'\0'},b[85]={'\0'};int lenA=0,lenB=0;scanf("%d",&n);for(i=0;i<n;i++){scanf("%s",a);lenA=strlen(a);if(lenB+1+lenA<79){if(lenB>0)strcat(b,"");strcat(b,a);lenB=strlen(b);}else if(lenB+1+lenA==80||lenB+1+lenA==79){printf("%s %s\n",b,a);lenB=0;b[0]='\0';}else{printf("%s\n",b);strcpy(b,a);lenB=strlen(b);}}printf("%s\n",b);return0;}。
POJ简单题
POJ简单题1000 纯属适应题1003 做的时候花了很久,现在看好像也不难1004 适应题,求下平均就行1005 要读懂题就行1007 逆序数,discuss方法1046 全部暴搜一遍。
1118 照抄2606没看题。
WA。
RE全占了1207 貌似我的方法超级麻烦1247 读懂题目比较麻烦1248 暴力过的。
1250 一整个晚上整这一道题。
崩溃的边缘终于AC了1318 这种字符串的题总是需要仔细。
所以对我这种不仔细的人总是A的很慢。
1298 别被题目吓到,其实很简单1316 晕~超级猥琐+暴力法。
1326 不难,但代码总有小错,纠结了很久1338 写的代码很烂。
不过还是AC了1350 代码很烂。
1260B。
每轮排序两次,在字符串和数字之间转来转去。
1450 简单的找规律1477 原来如此之水1484 过得很痛苦。
1493 难得还有如此水题。
1504 还是不太喜欢字符数组的题。
感觉做繁了1517 跟1000一样简单的题,条件太宽1528 水。
又一次不得不说1543 我什么都没多想,直接暴力过的1552 错误代码竟然AC了,数组下标。
1575 感觉简单没仔细看题白OLE一次WA一次1580 纠结很久啊。
几次理解错题意。
又调了很久,不明白为什么3个for嵌套竟然0Ms过1595 又是暴力。
最近经常暴力啊。
不过还是要注意。
1也算质数了。
数组开大点。
还有严格的输出格式1656 记得好像难度一般。
但也不是特别轻松过的1658 简单题,但我弱智错误WA半天1750 理解错题意了。
PE到疯。
1853 理解下题意。
真的很水。
1877 搞了很久竟然理解错题意。
然后while的两个条件会导致歧义。
不请教别人估计过不了的。
1939 水啊~~2006 很水的题。
读懂题列个一元二次方程解下就行。
无任何trick2013 第一次用二维字符数组,还有排序,纠结一下午AC了2019 应该是用RMQ?不会。
直接暴力了2027 水题。
【试卷2】Python三级考试练习题精品程序填空阅读填空程序试题
【试卷2】Python三级考试练习题精品程序填空阅读填空程序试题一、程序填空1.广场上有许多(有数百人)小朋友在玩分组游戏,当他们分成三人一组时,发现最后多出两个;当他们分成五人一组时,发现最后多出三个;当他们分成七人一组时,发现最后多出两个。
编写程序求出这些小朋友的可能人数。
实现上述功能的程序如下,请在程序划线处填入合适的代码。
________a=[ ]for i in range(100,1000):if_____________:a.append(i)total + = 1print("这群小朋友总的人数有:")for j in range(len(a)):print(____,end='、')print('')print('可能情况数为:',total,'种')划线处①处应该填入的语句为:;划线处②处应该填入的语句为:;划线处③处应该填入的语句为:。
2.程序补充:(1)有5万元资金存入银行,选择“1年定期.自动转存”的存款方式,由于银行利率是不断变化的,这5年利率分别是3.25%.3%.3%.2%.1.75%,5年后会有多少收益呢?调用round ()函数,保留结果两位小数。
money =_______________________________rate=_________________________________for_______________________________________________________________________print(“5年以后存款总额:”,money,“元”)(2)某投资者购买了10万元一年期收益率3.7%的银行保证收益型理财产品。
每年理财赎回后,他会提取2万元用作生活所需,余下资金仍购买此种理财。
在收益率不变的情况下,多少年后本金被全部取出?money= ________________________________year= __________________________________while __________________________________________________________________________________________________print(year,“年后资金被全部取出”)3.阅读程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(一):用的比较多的初期:一.基本算法:(1)枚举. (poj1753,poj2965)(2)贪心(poj1328,poj2109,poj2586)(3)递归和分治法.(4)递推.(5)构造法.(poj3295)(6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:(1)图的深度优先遍历和广度优先遍历.(2)最短路径算法(dijkstra,bellman-ford,floyd,heap+dijkstra)(poj1860,poj3259,poj1062,poj2253,poj1125,poj2240)(3)最小生成树算法(prim,kruskal)(poj1789,poj2485,poj1258,poj3026)(4)拓扑排序(poj1094)(5)二分图的最大匹配(匈牙利算法) (poj3041,poj3020)(6)最大流的增广路算法(KM算法). (poj1459,poj3436)三.数据结构.(1)串(poj1035,poj3080,poj1936)(2)排序(快排、归并排(与逆序数有关)、堆排) (poj2388,poj2299)(3)简单并查集的应用.(4)哈希表和二分查找等高效查找法(数的Hash,串的Hash)(poj3349,poj3274,POJ2151,poj1840,poj2002,poj2503)(5)哈夫曼树(poj3253)(6)堆(7)trie树(静态建树、动态建树) (poj2513)四.简单搜索(1)深度优先搜索(poj2488,poj3083,poj3009,poj1321,poj2251)(2)广度优先搜索(poj3278,poj1426,poj3126,poj3087.poj3414)(3)简单搜索技巧和剪枝(poj2531,poj1416,poj2676,1129)五.动态规划(1)背包问题. (poj1837,poj1276)(2)型如下表的简单DP(可参考lrj的书page149):1.E[j]=opt{D+w(i,j)} (poj3267,poj1836,poj1260,poj2533)2.E[i,j]=opt{D[i-1,j]+xi,D[i,j-1]+yj,D[i-1][j-1]+zij} (最长公共子序列) (poj3176,poj1080,poj1159)3.C[i,j]=w[i,j]+opt{C[i,k-1]+C[k,j]}.(最优二分检索树问题)六.数学(1)组合数学:1.加法原理和乘法原理.2.排列组合.3.递推关系.(POJ3252,poj1850,poj1019,poj1942)(2)数论.1.素数与整除问题2.进制位.3.同余模运算.(poj2635, poj3292,poj1845,poj2115)(3)计算方法.1.二分法求解单调函数相关知识.(poj3273,poj3258,poj1905,poj3122)七.计算几何学.(1)几何公式.(2)叉积和点积的运用(如线段相交的判定,点到线段的距离等). (poj2031,poj1039)(3)多边型的简单算法(求面积)和相关判定(点在多边型内,多边型是否相交) (poj1408,poj1584)(4)凸包. (poj2187,poj1113)中级:一.基本算法:(1)C++的标准模版库的应用. (poj3096,poj3007)(2)较为复杂的模拟题的训练(poj3393,poj1472,poj3371,poj1027,poj2706)二.图算法:(1)差分约束系统的建立和求解. (poj1201,poj2983)(2)最小费用最大流(poj2516,poj2516,poj2195)(3)双连通分量(poj2942)(4)强连通分支及其缩点.(poj2186)(5)图的割边和割点(poj3352)(6)最小割模型、网络流规约(poj3308, )三.数据结构.(1)线段树. (poj2528,poj2828,poj2777,poj2886,poj2750)(2)静态二叉检索树. (poj2482,poj2352)(3)树状树组(poj1195,poj3321)(4)RMQ. (poj3264,poj3368)(5)并查集的高级应用. (poj1703,2492)(6)KMP算法. (poj1961,poj2406)四.搜索(1)最优化剪枝和可行性剪枝(2)搜索的技巧和优化(poj3411,poj1724)(3)记忆化搜索(poj3373,poj1691)五.动态规划(1)较为复杂的动态规划(如动态规划解特别的施行商问题等)(poj1191,poj1054,poj3280,poj2029,poj2948,poj1925,poj3034)(2)记录状态的动态规划. (POJ3254,poj2411,poj1185)(3)树型动态规划(poj2057,poj1947,poj2486,poj3140)六.数学(1)组合数学:1.容斥原理.2.抽屉原理.3.置换群与Polya定理(poj1286,poj2409,poj3270,poj1026).4.递推关系和母函数.(2)数学.1.高斯消元法(poj2947,poj1487, poj2065,poj1166,poj1222)2.概率问题. (poj3071,poj3440)3.GCD、扩展的欧几里德(中国剩余定理) (poj3101)(3)计算方法.1.0/1分数规划. (poj2976)2.三分法求解单峰(单谷)的极值.3.矩阵法(poj3150,poj3422,poj3070)4.迭代逼近(poj3301)(4)随机化算法(poj3318,poj2454)(5)杂题.(poj1870,poj3296,poj3286,poj1095)七.计算几何学.(1)坐标离散化.(2)扫描线算法(例如求矩形的面积和周长并,常和线段树或堆一起使用).(poj1765,poj1177,poj1151,poj3277,poj2280,poj3004)(3)多边形的内核(半平面交)(poj3130,poj3335)(4)几何工具的综合应用.(poj1819,poj1066,poj2043,poj3227,poj2165,poj3429)高级:一.基本算法要求:(1)代码快速写成,精简但不失风格(poj2525,poj1684,poj1421,poj1048,poj2050,poj3306)(2)保证正确性和高效性. poj3434二.图算法:(1)度限制最小生成树和第K最短路. (poj1639)(2)最短路,最小生成树,二分图,最大流问题的相关理论(主要是模型建立和求解)(poj3155, poj2112,poj1966,poj3281,poj1087,poj2289,poj3216,poj2446(3)最优比率生成树. (poj2728)(4)最小树形图(poj3164)(5)次小生成树.(6)无向图、有向图的最小环三.数据结构.(1)trie图的建立和应用. (poj2778)(2)LCA和RMQ问题(LCA(最近公共祖先问题) 有离线算法(并查集+dfs) 和在线算法(RMQ+dfs)).(poj1330)(3)双端队列和它的应用(维护一个单调的队列,常常在动态规划中起到优化状态转移的目的). (poj2823)(4)左偏树(可合并堆).(5)后缀树(非常有用的数据结构,也是赛区考题的热点).(poj3415,poj3294)四.搜索(1)较麻烦的搜索题目训练(poj1069,poj3322,poj1475,poj1924,poj2049,poj3426)(2)广搜的状态优化:利用M进制数存储状态、转化为串用hash表判重、按位压缩存储状态、双向广搜、A*算法. (poj1768,poj1184,poj1872,poj1324,poj2046,poj1482)(3)深搜的优化:尽量用位运算、一定要加剪枝、函数参数尽可能少、层数不易过大、可以考虑双向搜索或者是轮换搜索、IDA*算法. (poj3131,poj2870,poj2286)五.动态规划(1)需要用数据结构优化的动态规划.(poj2754,poj3378,poj3017)(2)四边形不等式理论.(3)较难的状态DP(poj3133)六.数学(1)组合数学.1.MoBius反演(poj2888,poj2154)2.偏序关系理论.(2)博奕论.1.极大极小过程(poj3317,poj1085)2.Nim问题.七.计算几何学.(1)半平面求交(poj3384,poj2540)(2)可视图的建立(poj2966)(3)点集最小圆覆盖.(4)对踵点(poj2079)八.综合题.(poj3109,poj1478,poj1462,poj2729,poj2048,poj3336,poj3315,poj2148,poj1263)----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------以及补充Dp状态设计与方程总结1.不完全状态记录<1>青蛙过河问题<2>利用区间dp2.背包类问题<1> 0-1背包,经典问题<2>无限背包,经典问题<3>判定性背包问题<4>带附属关系的背包问题<5> + -1背包问题<6>双背包求最优值<7>构造三角形问题<8>带上下界限制的背包问题(012背包)3.线性的动态规划问题<1>积木游戏问题<2>决斗(判定性问题)<3>圆的最大多边形问题<4>统计单词个数问题<5>棋盘分割<6>日程安排问题<7>最小逼近问题(求出两数之比最接近某数/两数之和等于某数等等)<8>方块消除游戏(某区间可以连续消去求最大效益)<9>资源分配问题<10>数字三角形问题<11>漂亮的打印<12>邮局问题与构造答案<13>最高积木问题<14>两段连续和最大<15>2次幂和问题<16>N个数的最大M段子段和<17>交叉最大数问题4.判定性问题的dp(如判定整除、判定可达性等)<1>模K问题的dp<2>特殊的模K问题,求最大(最小)模K的数<3>变换数问题5.单调性优化的动态规划<1>1-SUM问题<2>2-SUM问题<3>序列划分问题(单调队列优化)6.剖分问题(多边形剖分/石子合并/圆的剖分/乘积最大)<1>凸多边形的三角剖分问题<2>乘积最大问题<3>多边形游戏(多边形边上是操作符,顶点有权值)<4>石子合并(N^3/N^2/NLogN各种优化)7.贪心的动态规划<1>最优装载问题<2>部分背包问题<3>乘船问题<4>贪心策略<5>双机调度问题Johnson算法8.状态dp<1>牛仔射击问题(博弈类)<2>哈密顿路径的状态dp<3>两支点天平平衡问题<4>一个有向图的最接近二部图9.树型dp<1>完美服务器问题(每个节点有3种状态)<2>小胖守皇宫问题<3>网络收费问题<4>树中漫游问题<5>树上的博弈<6>树的最大独立集问题<7>树的最大平衡值问题<8>构造树的最小环(二):麻烦题:1697, 1712, 1713, 1720, 1729, 1765, 1772, 1858, 1872, 1960, 1963, 2050, 2122, 2162, 22 19, 2237,简单题目:1000, 1003, 1004, 1005, 1007, 1046, 1207, 1226, 1401, 1504, 1552, 1607, 1657, 1658, 16 74, 1799, 1862, 1906, 1922, 1929, 1931, 1969, 1976, 2000, 2005, 2017, 2027, 2070, 2101, 2105, 2109, 2116, 2136, 2160, 2190, 2232, 2234, 2275, 2301, 2350, 2363, 2389, 2393, 2 413, 2419,推荐:1063, 1064, 1131, 1140, 1715, 2163,杂题:1014, 1218, 1316, 1455, 1517, 1547, 1580, 1604, 1663, 1678, 1749, 1804, 2013, 2014, 20 56, 2059, 2100, 2188, 2189, 2218, 2229, 2249, 2290, 2302, 2304, 2309, 2313, 2316, 2323, 2326, 2368, 2369, 2371, 2402, 2405, 2407,推荐:1146, 1147, 1148, 1171, 1389, 1433, 1468, 1519, 1631, 1646, 1672, 1681, 1700, 1701, 17 05, 1728, 1735, 1736, 1752, 1754, 1755, 1769, 1781, 1787, 1796, 1797, 1833, 1844, 1882, 1933, 1941, 1978, 2128, 2166, 2328, 2383, 2420,高精度:1001, 1220, 1405, 1503,排序:1002, 1318, 1877, 1928, 1971, 1974, 1990, 2001, 2002, 2092, 2379, 2388, 2418,推荐:1423, 1694, 1723, 1727, 1763, 1788, 1828, 1838, 1840, 2201, 2376, 2377, 2380,搜索1676,1376,@3009,容易:1128, 1166, @1176, 1231, 1256, @1270, 1321, @1543, 1606, @1664, 1731, 1742, @174 5, 1847, 1915, 1950, 2038, 2157, 2182, 2183, 2381, 2386, 2426,不易:1024, 1054, 1117, 1167, 1708, 1746, 1775, 1878, 1903, 1966, 2046, 2197, 2349,推荐:1011, 1190, 1191, 1416, 1579, 1632, 1639, 1659, 1680, 1683, 1691, 1709, 1714, 1753, 17 71, 1826, 1855, 1856, 1890, 1924, 1935, 1948, 1979, 1980, 2170, 2288, 2331, 2339, 2340,数据结构容易:1182, 1656, 2021, 2023, 2051, 2153, 2227, 2236, 2247, 2352, 2395,不易:1145, 1177, 1195, 1227, 1661, 1834,推荐:1330, @1338, 1451, 1470, 1634, 1689, 1693, @1703, 1724, 1988, 2004, 2010(堆), 2119, 2274,动态规划容易:1018, 1050, 1083, 1088, 1125, 1143(博弈树), 1157, @1163, 1178, 1179, @1189, 1208, 1276, 1322, 1414, 1456, 1458, 1609, 1644, 1664, 1690, 1699, 1740, 1742, 1887, 1926, 19 36, 1952, 1953, 1958, 1959, 1962, 1975, 1989, 2018, 2029, 2033, 2063, 2081, 2082, 2181, 2184, 2192, 2231, 2279, 2329, 2336, 2346, 2353, 2355, 2356, 2385, 2392, 2424,不易:1019, 1037, 1080, 1112, 1141, 1170, 1192, 1239, 1655, 1695, 1707, 1733, 1737, 1837, 18 50, 1920, 1934, 1937, 1964, 2039, 2138, 2151, 2161, 2178,推荐:1015, 1635, 1636, 1671, 1682, 1692, 1704, 1717, 1722, 1726, 1732, 1770, 1821, 1853, 19 49, 2019, 2127, 2176, 2228, 2287, 2342, 2374, 2378, 2384, 2411,字符串:1488, ⊙1598, 1686, *1706, 1747, 1748, 1750, 1760, 1782, 1790, 1866, 1888, 1896, 1951, 2003, 2121, 2141, 2145, 2159, 2337, 2359, 2372, 2406, 2408,贪心:1042, 1065, 1230, 1323, 1477, 1716, 1784,图论容易:1161, 1164, 1258, 1175, 1308, 1364, 1776, 1789, 1861, 1939, 1940, 1943, 2075, 2139, 23 87, 2394, 2421,不易:1041, 1062, 1158, 1172, 1201, 1275, 1718, 1734, 1751, 1904, 1932, 2173, 2175, 2296,网络流:1087, 1273, 1698, 1815, 2195,匹配:1274, 1422, 1469, 1719, 2060, 2239,Euler:1237, 1637, 1394, 2230,推荐:2049, 2186,计算几何容易:@1319, @1654, @1673, @1675, 1836, 2074, 2137, 2318,不易:1685, 1687, 1696, 1873, 1901, 2172, 2333,凸包:1113, 1228, 1794, 2007, 2187,模拟容易:1006, 1008, 1013, 1016, 1017, 1169, 1298, 1326, 1350, 1363, 1676, 1786, 1791, 1835, 19 70, 2317, 2325, 2390,不易:1012, 1082, 1099, 1114, 1642, 1677, 1684, 1886,数学容易:@1061, @1091, @1142, 1289, @1305, @1306, 1320, @1565, @1665, 1666, @1730, @18 94, @1914, 2006, @2042, @2142, 2158, 2174, @2262, @2305, @2321, @2348,不易:@1067, @1183, 1430, 1759, 1868, 1942, 2167, 2171, 2327,推荐:@1423, 1450, 1640, @1702, 1710, 1721, 1761, 1830, @1930, @2140,(三):1、排序1423, 1694, 1723, 1727, 1763, 1788, 1828, 1838, 1840, 2201, 2376, 2377, 2380, 1318, 18 77, 1928, 1971, 1974, 1990, 2001, 2002, 2092, 2379, 1002(需要字符处理,排序用快排即可)1007(稳定的排序)2159(题意较难懂)2231 2371(简单排序)2388(顺序统计算法)2418(二叉排序树)2、搜索、回溯、遍历1022 1111 1118 1129 1190 1562 1564 1573 1655 2184 2225 2243 2312 2362 2378 2386 1010,1011,1018,1020,1054,1062,1256,1321,1363,1501,1650,1659,1664,1753,2078,2083,2303,2 310,2329简单:1128, 1166, 1176, 1231, 1256, 1270, 1321, 1543, 1606, 1664, 1731, 1742, 1745, 18 47, 1915, 1950, 2038, 2157, 2182, 2183, 2381, 2386, 2426,不易:1024, 1054, 1117, 1167, 1708, 1746, 1775, 1878, 1903, 1966, 2046, 2197, 2349,推荐:1011, 1190, 1191, 1416, 1579, 1632, 1639, 1659, 1680, 1683, 1691, 1709, 1714, 17 53, 1771, 1826, 1855, 1856, 1890, 1924, 1935, 1948, 1979, 1980, 2170, 2288, 2331, 2339, 2340,1979(和迷宫类似)1980(对剪枝要求较高)3、历法1008 2080 (这种题要小心)4、枚举1012,1046,1387,1411,2245,2326,2363,2381,1054(剪枝要求较高),165 0 (小数的精度问题)5、数据结构的典型算法容易:1182, 1656, 2021, 2023, 2051, 2153, 2227, 2236, 2247, 2352, 2395,不易:1145, 1177, 1195, 1227, 1661, 1834,推荐:1330, 1338, 1451, 1470, 1634, 1689, 1693, 1703, 1724, 1988, 2004, 2010, 2119, 22 74,1125(弗洛伊德算法) ,2421(图的最小生成树)6、动态规划1037、1050、1088、1125、1141、1159、1160、1163、1458、1579 、1887 、1953 、2386 7、贪心1042, 1065, 1230, 1323, 1477, 1716, 1784,1328 1755(或用单纯形方法),2054,1017,1328,1862,1922 ,2209,2313,2325,2370。