摘要: #include #include #define MOD 10000int main(){ int a[10000],b[6],c[10000];//10000!大概有10000*4=40000位,4位一存,数组大小需要开40000/4=10000的大小 int i,j,k,n,l,la,lb,lc; while(EOF !=scanf("%d",&n)) { if(n==0||n==1) {printf("1\n");continue;} //几种特殊情况 for(a[0]=1, la=1, k=2; k=0; i--) printf(&qu 阅读全文
posted @ 2013-08-04 17:04 hpu张亚飞 阅读(438) 评论(0) 推荐(0) 编辑
摘要: #include#include#includeusing namespace std;struct jg{ char name[100]; int time; int num; } d[12];int cmp(jg x,jg y) { return (x.time==y.time? strcmp(x.name,y.name)>1:x.time0&&d[i].time==d[i-1].time) d[i].num=d[i-1].num; elsed[i].num=i+1; printf("%s %d\n",d[i].name,d[i].num); } 阅读全文
posted @ 2013-08-02 15:27 hpu张亚飞 阅读(133) 评论(0) 推荐(0) 编辑
摘要: #include#include#includeusing namespace std;struct a{char name[100];int m,s;int tim;int num;}d[11];int cmp(a x,a y){return (x.tim==y.tim? strcmp(x.name,y.name)>1:x.tim=1&&d[i].tim==d[i-1].tim){d[i].num=d[i-1].num;}else{d[i].num=i+1;}printf("%s %d\n",d[i].name,d[i].num);}}return 阅读全文
posted @ 2013-08-02 13:29 hpu张亚飞 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 这题就是用一个二进制数保存一个集合的元素 比如一个集合中有两个元素 1 3 那就用5 (101)表示这个集合就是用0 1 来表示这个集合中一个数存不存在 再比如 一个集合有三个元素 1 4 5 就在这几个位子上标为1,那就用25 (11001)来表示这个集合!在借助于位运算的或( | )就可已达到合并集合的目的,比如一个集合(14 )和一个集合(1 2 3)进行合并 那就是 (9)1001 | 111(7)=1111 就是15 这样就将重复的部分覆盖了。新的集合就用15来表示!最大就是(11111111111111)2^15-1来表示一个集合!#include#includeint a[1&l 阅读全文
posted @ 2013-08-02 08:18 hpu张亚飞 阅读(117) 评论(0) 推荐(0) 编辑
摘要: #includeint main(){ unsigned n; while(scanf("%u",&n)!=EOF) { unsigned a; a=n; n>=16; a>>=16; a=a^n; n=~n; n<<=16; n+=a; printf("%X\n",n); } return 0;} 阅读全文
posted @ 2013-08-01 16:25 hpu张亚飞 阅读(392) 评论(1) 推荐(0) 编辑
摘要: AC代码#includeint main(){int y,m,d;while(scanf("%d%d%d",&y,&m,&d)!=EOF){if(m==1||m==2){y-=1;m+=12;}printf("%d\n",(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7); }return 0;}超时代码#includeint py(int a) { int y; if(a%4==0&&a%100!=0||a%400==0) y=1; else y=0; return y; }int 阅读全文
posted @ 2013-08-01 09:18 hpu张亚飞 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 基姆拉尔森计算公式编辑本段算法算法如下:基姆拉尔森计算公式W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1) mod 7在公式中d表示日期中的日数,m表示月份数,y表示年数。注意:在公式中有个与其他公式不同的地方:把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。编辑本段代码代码如下:// java code//y-年,m-月,d-日期string CaculateWeekDay(int y,int m, int d){if(m==1||m==2) {m+=12;y--;}int week=(d+2 阅读全文
posted @ 2013-08-01 09:13 hpu张亚飞 阅读(759) 评论(0) 推荐(0) 编辑
摘要: #include#includeint py(int a) { int y; if(a%4==0&&a%100!=0||a%400==0) y=1; else y=0; return y; }int main() { int n; while(scanf("%d",&n)&&(n!=-1)) { int nian,yue,ri,i,j,k,a; int m[13]={31,28,31,30,31,30,31,31,30,31,30,31}; j=366; ++n;//用a判断周几 a=n%7; a=(a+5)%7;//判断年份 for 阅读全文
posted @ 2013-07-31 15:52 hpu张亚飞 阅读(217) 评论(0) 推荐(0) 编辑
摘要: #include#include//int m[13]={31,28,31,30,31,30,31,31,90,31,30,31};int py(int a) { int y; if(a%4==0&&a%100!=0||a%400==0) y=1; else y=0; return y; }int pd(int b,int c,int d) { int s; int m[13]={31,28,31,30,31,30,31,31,90,31,30,31}; s=0; py(b); if(py(b)==1) m[1]+=1; int k; for(k=0;k<c-1;k++) 阅读全文
posted @ 2013-07-31 10:43 hpu张亚飞 阅读(283) 评论(0) 推荐(0) 编辑
摘要: #include#include#define M 100int main(){ int n,i; scanf("%d",&n); int *shuzu=(int*)malloc(sizeof(int)*n); for(i=0;i100) printf("Bike\n"); else {if(shuzu[i]==100) printf("All\n"); else printf("Walk\n"); } } free(shuzu); return 0; }动态数组 阅读全文
posted @ 2013-07-30 16:26 hpu张亚飞 阅读(198) 评论(0) 推荐(0) 编辑