都是以前周赛的题目,以后会慢慢更新。
HDOJ--1020
水题
#include<iostream> #include<cmath> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; char a[10005]; int main() { int t,i,l,sum; char c; scanf("%d",&t); while(t--) { int flag=1; sum=1; scanf("%s",a); l=strlen(a); c=a[0]; for(i=0;i<l-1;i++) { if(a[i]!=a[i+1]) { if(sum>1) printf("%d",sum); sum=1; printf("%c",c); c=a[i+1]; if(i+1==l-1) {printf("%c",a[i+1]);flag=0;} } else sum++; } if(flag==1) { printf("%d%c",sum,c); } printf("\n"); } return 0; }
HDOJ--1032
水题
#include<iostream> #include<cmath> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; char a[10005]; int main() { int x,y,i,sum,max; while(scanf("%d%d",&x,&y)!=EOF) { printf("%d %d ",x,y); if(x>y) { int t=x; x=y; y=t; } max=0; for(i=x;i<=y;i++) { sum=1; int n=i; while(n>1) { if(n==1) break; if(n%2) n=3*n+1; else n=n/2; sum++; } if(sum>max) max=sum; } printf("%d\n",max); } return 0; }
HDOJ--1037
水题
#include<iostream> #include<cmath> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; char a[10005]; int main() { int x,y,z; scanf("%d%d%d",&x,&y,&z); if(x<=168) printf("CRASH %d\n",x); else if(y<=168) printf("CRASH %d\n",y); else if(z<=168) printf("CRASH %d\n",z); else printf("NO CRASH\n"); return 0; }
HDOJ--1050
贪心题,注意对门也不能搬运,WA出翔了
#include<iostream> #include<cmath> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; int main() { int a[205],t,n,x,y,i; scanf("%d",&t); while(t--) { memset(a,0,sizeof(a)); scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d%d",&x,&y); x=(x+1)/2; y=(y+1)/2; if(x>y) { int temp=x; x=y; y=temp; } for(int j=x;j<=y;j++) a[j]++; } int max=a[1]; for(i=1;i<201;i++) if(a[i]>max) max=a[i]; printf("%d\n",max*10); } return 0; }
HDOJ--1062
水题
#include<cstdio> #include<iostream> #include<cmath> #include<cstring> #include<string.h> #include<ctype.h> #include<stack> #include<queue> #include<set> #include<algorithm> #include<limits.h> #define PI acos(-1) using namespace std; char a[1005],b[1005]; int main() { int t,l,i,j,k; char c,temp; scanf("%d",&t); c=getchar(); while(t--) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); k=0; gets(a); l=strlen(a); for(i=0;i<l;i++) { if(a[i]==' ') { for(j=0;j<(k+1)/2;j++) { temp=b[j]; b[j]=b[k-1-j]; b[k-1-j]=temp; } if(a[i]==' ') printf("%s ",b); memset(b,0,sizeof(b)); k=0; } else b[k++]=a[i]; } for(j=0;j<(k+1)/2;j++) { temp=b[j]; b[j]=b[k-1-j]; b[k-1-j]=temp; } printf("%s\n",b); } return 0; }
HDOJ--1106
水题
#include<cstdio> #include<iostream> #include<cmath> #include<cstring> #include<string.h> #include<ctype.h> #include<stack> #include<queue> #include<set> #include<algorithm> #include<limits.h> #define PI acos(-1) using namespace std; char a[1005]; int b[1000]; int main() { int i,l,k,x; char c[20]; while(gets(a)) { memset(c,0,sizeof(c)); k=x=0; l=strlen(a); for(i=0;i<l;i++) { if(a[i]=='5') { if(k) { c[k]='\0'; b[x++]=atoi(c); memset(c,0,sizeof(c)); k=0; } } else c[k++]=a[i]; } if(k) { c[k]='\0'; b[x++]=atoi(c); } sort(b,b+x); for(i=0;i<x-1;i++) printf("%d ",b[i]); printf("%d\n",b[i]); } return 0; }
HDOJ--1016
DFS
和哈密顿那道题有点像,不过比那个简单,坑爹的地方在于是个多CASE,INPUT里没写,OUTPUT有句“Print a blank line after each case.”是提示
#include<iostream> #include<algorithm> #include<cmath> #include<cstdio> #include<cstdlib> #include<cstring> #include<string> #include<vector> #include<set> #include<queue> #include<stack> #include<stdlib.h> #include<ctime> #define PI acos(-1) using namespace std; int lu[25],n,m; int visit[25]; bool prime(int x) { int i; for(i=2;i*i<=x;i++) { if(x%i==0) return false; } return true; } void dfs(int m,int cnt) { int i; if(cnt==n) { if(prime(lu[1]+lu[n])) { for(i=1;i<=n-1;i++) printf("%d ",lu[i]); printf("%d\n",lu[i]); } } if(cnt>n) return ; if(visit[m]) return ; else { visit[m]=1; for(i=1;i<=n;i++) { if(prime(m+i)&&!visit[i]) { lu[cnt+1]=i; dfs(i,cnt+1); } } visit[m]=0; } } int main() { int k=1; while(scanf("%d",&n)!=EOF) { memset(visit,0,sizeof(visit)); printf("Case %d:\n",k++); lu[1]=1; dfs(1,1); printf("\n"); } return 0; }