上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 27 下一页
摘要: http://poj.org/status?result=0&user_id=297752873#include//#includeint bin[30010],rank[30010];//int findx(int x){ if(bin[x]!=x) bin[x]=findx(bin[x]);//回溯是的压缩路径 return bin[x];}void merge(int x,int y)//这个函数里重要的是启发式合并,rank称为秩,这里是感染总数,但其实也是深度 { int fx,fy; fx=findx(x); fy=findx(y); ... 阅读全文
posted @ 2013-07-23 14:06 执着追求的IT小小鸟 阅读(261) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1703只要两者的关系确定了,就将他们放入同一集合内,而另外增加一个表示关系的数组zt[]来表示该结点与其父亲的关系,0表示是同一类,1表示不同团伙,初始时集合只要自己一个元素,zt[]=0。#include//其实只有一个集合,只是在每条边上赋了值罢了,权值 #includeint bin[100002],zt[100002];int findx(int x){ int r=bin[x]; if(x==bin[x]) return bin[x]; bin[x]=findx(bin[x]);//递归方法查... 阅读全文
posted @ 2013-07-22 22:26 执着追求的IT小小鸟 阅读(137) 评论(0) 推荐(0) 编辑
摘要: #includeint main(){ __int64 a[21],n; a[1]=0; a[2]=1; for(n=3;n<21;n++) a[n]=(n-1)*(a[n-1]+a[n-2]); while(scanf("%I64d",&n)!=EOF) printf("%I64d\n",a[n]); return 0;}View Code http://acm.hdu.edu.cn/showproblem.php?pid=1465记得用__int64 阅读全文
posted @ 2013-05-30 20:29 执着追求的IT小小鸟 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 错排公式 pala提出的问题: 十本不同的书放在书架上。现重新摆放,使每本书都不在原来放的位置。有几种摆法? 这个问题推广一下,就是错排问题: n个有序的元素应有n!种不同的排列。如若一个排列式的所有的元素都不在原来的位置上,则称这个排列为错排。 下面用递推的方法推导错排公式: 当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用M(n)表示,那么M(n-1)就表示n-1个编号元素放在n-1个编号位置,各不对应的方法数,其它类推. 第一步,把第n个元素放在一个位置,比如位置k,一共有n-1种方法; 第二步,放编号为k的元素,这时有两种情况.1,把它放到位置n,那么,... 阅读全文
posted @ 2013-05-30 20:24 执着追求的IT小小鸟 阅读(174) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2186能被10整除就直接除,不能的话就除完再加一#include<stdio.h>int main(){ int c,n,sum,q,y,t; scanf("%d",&c); while(c--) { scanf("%d",&n); q=n/2; n-=q; y=n*2/3; t=n-y; sum=0; if(q%10==0) sum+=q/10; else sum+=q/10+... 阅读全文
posted @ 2013-05-30 20:05 执着追求的IT小小鸟 阅读(132) 评论(0) 推荐(0) 编辑
摘要: #include<stdio.h>#include<string.h>int main(){ int sum,i,t=0; char s[10000]; while(scanf("%s",s)!=EOF) { sum=0; if(t) printf("\n"); for(i=0;s[i]!='\0';i++) if((s[i]-48)%2==0) sum+=s[i]-48; printf("%d\n",sum); t++; } return 0;}View Cod... 阅读全文
posted @ 2013-05-30 12:39 执着追求的IT小小鸟 阅读(131) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2148#include<stdio.h>#include<stdlib.h>int cmp(const void *a,const void *b){ return *(int *)b-*(int *)a;}int main(){ int n,k,t,i,sum,x[1010],f; scanf("%d",&t); while(t--) { sum=0; scanf("%d%d",&n,&k); for(i=0;i< 阅读全文
posted @ 2013-05-29 21:49 执着追求的IT小小鸟 阅读(146) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1720wa看不出哪里错了#include<stdio.h>#include<string.h>int main(){ int a[1000],b[1000],sum[1010],i,j,len,s,k,l; char sa[1000],sb[1000]; while(scanf("%s %s",sa,sb)!=EOF) { for(i=0;i<1000;i++) sum[i]=0; for(i=strlen(sa);i>=0;i--) ... 阅读全文
posted @ 2013-05-29 14:34 执着追求的IT小小鸟 阅读(198) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1408这题直接模拟,直到盐水滴完,有地方需要注意 就是要用double,否则会出错#include<stdio.h>int main(){ int time,i,j,e; double vul,d; while(scanf("%lf%lf",&vul,&d)!=EOF) { time=0; e=1; while(vul) { for(i=1;i<=e;i++) { time++; ... 阅读全文
posted @ 2013-05-28 22:07 执着追求的IT小小鸟 阅读(124) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1256按题目要求用所给的字母画出一个“8”,先求上宽,再求下宽,再求横宽,分为5部分来输出#include<stdio.h>int main(){ int t,n,i,h1,w,h2,j; char s,a[10]; scanf("%d",&t); gets(a); while(t--) { scanf("%c%d",&s,&n); gets(a); h1=(n-3)/2; h2=n-3-h1; w=1+n/6; ... 阅读全文
posted @ 2013-05-28 20:52 执着追求的IT小小鸟 阅读(144) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 27 下一页