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。
- 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。