![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
poj
文章平均质量分 56
徐州牧
这个作者很懒,什么都没留下…
展开
-
poj解题报告——1250
#include#includevoid main(){ char c,p[26]; int n,m,leave; while(scanf("%d%*c",&n),n) { m=leave=0; memset(p,0,sizeof(p)); for(c=getchar();c!='\n';c=原创 2014-11-07 23:00:10 · 450 阅读 · 0 评论 -
poj解题报告——3299
代码如下#include#include#includevoid td(double t,double d){ double p,e,h; e=6.11*exp(5417.7530 * ((1/273.16) - (1/(d+273.16)))); h=(0.5555)*(e - 10.0)+t; printf("T %.1lf D原创 2014-11-09 17:16:42 · 393 阅读 · 0 评论 -
poj解题报告——2209
#include#includevoid main(){ int m,i,n; int a,sum; scanf("%d",&m); sum=0; scanf("%d",&n); for(i=1;i { scanf("%d",&a); if(pow(a,n)>0)原创 2014-11-10 12:43:40 · 825 阅读 · 0 评论 -
poj解题报告——1003、1005、1799
这是我第一次写解题报告,肯定会原创 2014-10-26 16:45:04 · 495 阅读 · 0 评论 -
poj解题报告——2406
这题不算难,从输入输出上就看懂题目的意思了,这题用到的算法就是KMP算法,算法本身没什么难度,但是我做的时候超时了,超时的原因居然是我少加了一个0 ,N的定义我原来定的是100000,现在定1000000,就是因为这个,我那个欲语泪先流啊。代码如下#include#include#define N 1000000char s[N];int next[N],len;原创 2014-11-12 14:26:26 · 518 阅读 · 0 评论 -
poj解题报告——2242
#include#include#define pi 3.141592653589793void main(){ double C,r,x1,y1,x2,y2,x3,y3,a,b,c,s,p; while(scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3)!=EOF) { a=sqr原创 2014-11-12 15:27:31 · 598 阅读 · 0 评论 -
poj解题报告——poj1006
这次做了poj1006,忽然想起小时候韩信点兵的故事,原创 2014-10-28 20:19:32 · 496 阅读 · 0 评论 -
poj解题报告——1401
代码#includevoid main(){ int n,m,sum; scanf("%d",&n); while(n--) { scanf("%d",&m); sum=0; while(m>=5) { sum+=m/5;原创 2014-11-14 22:56:45 · 333 阅读 · 0 评论 -
poj解题报告——1254
这题是代码如下#include#include#define pi 3.141592653589793238void main(){ int x1,y1,x2,y2,d1,d2,t; double k1,k2,x,y; scanf("%d",&t); while(t--) { scanf("%d%d原创 2014-11-15 15:28:49 · 460 阅读 · 0 评论 -
poj解题报告——2586
#includevoid main(){ double s,d; int surplus; int flag; while(scanf("%lf%lf",&s,&d)!=EOF) { flag=0; surplus=0; if(s>=4*d) flag=1;原创 2014-11-16 18:13:50 · 419 阅读 · 0 评论 -
poj解题报告——1328
不得不说,这题是让我饱受折磨,毕竟第一次做贪心算法,而且WA了好多次,幸好有学长的帮助,最终找到了问题所在,是在快排上是问题,double高位不可向int低位转换,由于一开始强制转换导致虽然样例和其他的测试数据过了,但还是WA,现在改完了就对了,附上AC代码,ps:这题通过率是22%,真心不简单代码如下#include#include#includestruct poi原创 2014-11-15 14:05:47 · 505 阅读 · 0 评论 -
poj解题报告——2291
#include #include int cmp(const void *a,const void *b){ return *(int *)a-*(int *)b;}void main(){ int m,n,i,j,a[1005],b[1005]; scanf("%d",&m); while(m--) {原创 2014-11-17 17:31:15 · 578 阅读 · 0 评论 -
poj解题报告——2370
daima#include#includeint cmp(const int *a,const int *b){return *(int *)a-*(int *)b;}void main(){int i,k,a[100],sum;while(scanf("%d",&k)!=EOF){for(i=0;i{scanf("%d",&a[i]);原创 2014-11-18 09:28:42 · 424 阅读 · 0 评论 -
poj解题报告——1032
#include void main(){ int n,i,j,m; int a[50]={0}; n=i=j=m=0; scanf("%d", &n); for (i=2,j=0;i { a[j]=i; m+= i; if (m>n) {原创 2014-11-02 00:51:20 · 437 阅读 · 0 评论 -
poj解题报告——1061
代码#include__int64 exgcd(__int64 a,__int64 b,__int64 x,__int64 y){ __int64 r,t; if(b==0) { x=1; y=0; return a; } r=exgcd(b,a%b,x,y); t=x原创 2014-11-02 20:07:53 · 427 阅读 · 0 评论 -
poj解题报告——1269
#includevoid main(){ int t; double x1,y1,x2,y2,x3,y3,x4,y4,x,y,k1,k2,b1,b2; scanf("%d",&t); printf("INTERSECTING LINES OUTPUT\n"); while(t--) { scanf("%lf%lf原创 2014-11-20 15:01:56 · 374 阅读 · 0 评论 -
poj解题报告——1450
题意我就不说了,比较简单原创 2014-11-02 20:34:53 · 400 阅读 · 0 评论 -
poj解题报告——2115
这题的题意不难理解,对C的for(i=A ; i!=B ;i +=C)循环语句,问在k位存储系统中循环几次才会结束。若在有限次内结束,则输出循环次数。否则输出死循环。但是问题来了,这里涉及到了同余方程的求解问题,这就要用扩展欧几里得算法,然后就要各种用公式,之前有一道青蛙约会的那题poj1061,用的做法也差不多。本题是要求解(a+c*x)mod2^k=b,求x的最小解,变式得 c*x=(b-a)原创 2014-11-25 20:16:18 · 581 阅读 · 0 评论 -
poj解题报告——1002
代码如下#include #include #define N 10000000 int a[10000000]; char ch(char c) { if(c=='2'||c=='A'||c=='B'||c=='C') return '2'; else if(c=='3'||c=='D'||c原创 2014-11-04 19:30:01 · 608 阅读 · 0 评论 -
poj解题报告——1019
这题是组合数学啊,题意是给1、12、123、1234、12345、123456 ……这样的数字,问第i个数字是多少。这题的难点在于第i个数与第i-1个数的位数差不定,可以利用公式:(int)log10(double(i))+1,当增加的数字是10的幂次关系时个数会变化。这样操作起来会方便多,而且打表会更好一点。代码如下#include#includeunsigned int原创 2014-11-20 16:04:45 · 421 阅读 · 0 评论 -
poj解题报告——3292
#include#include#define size 1000001int H_Number[size+1]; void init(){ int i,j,k,m,p; memset(H_Number,0,sizeof(H_Number)); for(i=5;i { for(j=5;j {原创 2014-11-25 15:06:44 · 382 阅读 · 0 评论 -
poj解题报告——3252
我实在对这题无语啊,做了一星期啊,那叫一个坑啊,题意不难理解,如果一个十进制数转成二进制数时,其0的个数不少于1的个数则为,round number。问一段区间里的round number的个数。这还是比较容易想到用组合数的,关键在于怎么用。 实在是没辙了,就看了看discuss,又看了看大神的代码,于是代码就出来了代码如下#includeint c[33][原创 2014-11-26 20:46:47 · 552 阅读 · 0 评论 -
poj解题报告——1845
代码如下#include#include#define size 10000#define mod 9901__int64 sum(__int64 p,__int64 n); __int64 power(__int64 p,__int64 n); __int64 sum(__int64 p,__int64 n){ if(n==0) r原创 2014-11-23 00:09:35 · 350 阅读 · 0 评论 -
poj解题报告——2109
这题的题意非常 简单原创 2014-11-05 20:21:58 · 420 阅读 · 0 评论 -
poj解题报告——2635
这题特别好理解,就是代码坑啊。题意就是给一个数,这个数是两个大素数的积,再给出一个数,如果最小的素数比给的数大,打印GOOD,否则打印BAD和最小的素数。 这题用的方法是高精度求模+同余模定理。还有素数打表,把10^6内的素数全部预打表,在求模时则枚举到小于L为止。注意打表不能只打到100W,要保证素数表中最大的素数必须大于10^6。千进制的性质与十进制相似。例如,把K=1234原创 2014-11-22 23:24:15 · 463 阅读 · 0 评论 -
poj解题报告——1942
代码如下#include#includevoid main(){ double sum; unsigned n,m,a,b; while(scanf("%d%d",&n,&m)!=EOF) { if(n==0&&m==0) break; a=n+m; b原创 2014-11-23 20:56:47 · 527 阅读 · 0 评论 -
poj解题报告——1218
代码如下#includevoid main(){int n,i,j,k,m;scanf("%d",&n);for(i=1;i{m=0;scanf("%d",&k);for(j=1;j{if(j*jm++;}printf("%d\n",m);}}原创 2014-11-06 21:39:31 · 498 阅读 · 0 评论 -
poj解题报告——2191
梅森素数啊,啊哈哈,其实这题最快的做法是打表,但是打表有点太无语了,不过我还是贴了代码。 题意:判断所有质数i代码如下#include #include #include #include __int64 num[70]={1},queue[10];int Prime(int x){ int i; for(i=2;i*i原创 2014-11-29 23:19:38 · 579 阅读 · 0 评论 -
poj解题报告——1008
这个玛雅历呀,难是不难,就是看着眼花,历法题就是这样,在数学计算的基础上加文字坑人。其实这题就是算模拟,算是放松放松心情吧。代码如下#include#includechar H[20][10]={"pop","no","zip","zotz","tzec","xul","yoxkin","mol","chen","yax","zac","ceh","mac","kankin原创 2014-11-30 14:47:24 · 401 阅读 · 0 评论 -
poj解题报告——2126
题意好理解,实系数多项式因式分解定理 每个次数大于零的实系数多项式都可以在实数域上唯一地分解成一些一次或二次不可约因式的乘积。所以对于大于2的情况一定可以分解。对于代码如下#includevoid main(){ int n; int a, b, c; scanf("%d",&n); if(n { pri原创 2014-11-29 22:43:39 · 623 阅读 · 0 评论 -
poj解题报告——1012
#includeint a[14];int f(int k,int m){ int n,i,s; n=2*k;s=0; for(i=0;i { s=(s+m-1)%(n-i); if(s return 0; } return 1;}void main()原创 2014-11-08 14:31:00 · 467 阅读 · 0 评论 -
poj解题报告——1152
题意还是很明确的,给你一个N进制的整数R,题目保证R能被N-1整除,让你求符合条件的最小的N。 但是这题的数论证明有点困难了,我在此引用一下别人的证明,没有证明真的不好做啊。 设输入的是abcd,假设其解是n进制,(a*n*n*n + b*n*n + c*n + d)%(n-1)=0=>( (a*n*n*n)%(n-1)+ (b*n*n)%(n-1)+原创 2014-11-30 15:35:03 · 456 阅读 · 0 评论 -
poj解题报告——3087
题目大意:已知两堆牌s1和s2的初始状态, 其牌数均为c,按给定规则能将他们相互交叉组合成一堆牌s12,再将s12的最底下的c块牌归为s1,最顶的c块牌归为s2,依此循环下去。现在输入s1和s2的初始状态 以及 预想的最终状态s12。问s1 s2经过多少次洗牌之后,最终能达到状态s12,若永远不可能相同,则输出"-1"。 单方向的搜索。变换结果是呈周期性变化的,所以要判断循环只需原创 2014-12-21 15:26:10 · 436 阅读 · 0 评论 -
poj解题报告——2196
这题真的是很水啊,直接看代码吧代码如下#includeint cmp(int n,int a){ int sum=0; while(n) { if(a==10) { sum+=n%10; n/=10; } else if(a=原创 2014-12-04 17:32:20 · 383 阅读 · 0 评论 -
poj解题报告——2388
找中间数么,快排就不错,嗯,对,就是快排代码如下#include#includeint cmp(const void *a,const void *b){ return *(int *)a-*(int *)b;}void main(){ int a[100007],i,n; scanf("%d",&n); for(i=0;原创 2015-01-10 23:51:34 · 401 阅读 · 0 评论 -
poj解题报告——2080
日历的模拟题,本身难度不大,就是怎么写的问题,思路是很清晰的,就是要注意细节。代码如下#includeint fun(int n) { if((n%4==0&&n%100!=0)||n%400==0) return 1; else return 0; } void main()原创 2014-12-04 16:19:43 · 376 阅读 · 0 评论 -
poj解题报告——1961
这题看完output就知道肯定用KMP算法,不过要加一个get_next函数。比如样例中字符串为aabaabaabaab,前2位也就是aa是a反复2次,前6位也就是aabaab是aab反复2次,前9位也就是aabaabaab是aab反复3次,前12位也就是aabaabaabaab是aab反复4次。经由过程KMP的get_next,获得next[]的值。从2开端遍历每个next[i]值,然后用原创 2014-12-04 15:11:44 · 590 阅读 · 1 评论 -
poj解题报告——2299
题目本质就是求逆序对,然后用归并排序就可以做了,冒泡也能做,但是超时,O(n^2)的算法相比于O(n*log(n))算法总是要差一点的。代码如下#include#include#define MAX 500001int n,a[MAX],t[MAX];__int64 sum;void Merge(int l, int m, int r){ int p=原创 2015-01-11 15:02:59 · 453 阅读 · 0 评论 -
poj解题报告——3046
动态规划,题意:T种蚂蚁,共计A只,种类没有区别,问含有x只蚂蚁的子集有多少种(x∈[S,B]),看完题目就可以确定方法了。代码如下#include#include#define MAXD 1010#define MAXM 100010#define D 1000000int h[MAXD],wa[MAXM],wb[MAXM],A,B,S,T,*a,*b;voi原创 2014-12-20 21:55:15 · 460 阅读 · 0 评论 -
poj解题报告——3126
这题打表就挺好,大致题意:给定两个四位素数a b,要求把a变换到b,变换的过程要保证 每次变换出来的数都是一个 四位素数,而且当前这步的变换所得的素数与前一步得到的素数 只能有一个位不同,而且每步得到的素数都不能重复,求从a到b最少需要的变换次数。无法变换则输出Impossible。代码如下#include #include int vir[10010],fa[10原创 2014-12-21 14:58:33 · 427 阅读 · 0 评论