USACO第一单元全部参考代码
来源:互联网 发布:java云计算框架 编辑:程序博客网 时间:2024/06/06 09:47
1.11
#include<stdio.h>int main(){freopen("ride.in","r",stdin);freopen("ride.out","w",stdout);char a[7],b[7]; long i,ca=1,cb=1; scanf ("%s %s",a,b); for (i=0;a[i];i++) ca*=a[i]-64; for (i=0;b[i];i++) cb*=b[i]-64; if(ca%47==cb%47)printf("GO\n"); else printf("STAY\n");}
1.12
/*ID:liaoxg72LANG:C++TASK:gift1 */#include<stdio.h>#include<string.h>int main(){ int n,i,come[11],putn,shouru[11],j,k,d; char np[11][20],temp[20]; freopen("gift1.in","r",stdin); freopen("gift1.out","w",stdout); memset(shouru,0,sizeof(shouru)); memset(come,0,sizeof(come)); scanf("%d",&n); for(i=0;i<n;i++){ scanf("%s",np[i]); } for(i=0;i<n;i++){ scanf("%s",temp); for(k=0;k<n;k++){ if(strcmp(np[k],temp)==0){ scanf("%d",&come[k]); scanf("%d",&putn); for(d=0;d<putn;d++){ scanf("%s",temp); for(j=0;j<n;j++){ if(strcmp(np[j],temp)==0){ shouru[j]+=come[k]/putn; come[k]-=come[k]%putn; break; } else{ continue; } } } break; } } } for(i=0;i<n;i++){ printf("%s ",np[i]); printf("%d\n",shouru[i]-come[i]); } return 0; }
1.13
/*ID:liaoxg72LANG:C++TASK:friday*/#include<stdio.h>using namespace std;int main(){ int i=0,j=0,k=0,date[8]={0},n=0,day=0,point=0,x=1,y=0; freopen("friday.in","r",stdin); freopen("friday.out","w",stdout); scanf("%d",&n); point=0; for(i=1;i<=n;i++) { day=365; if( (1900+i-1)%100==0 && (1900+i-1)%400 ==0) {day=366;} else { if((1900+i-1)%100!=0 && (1900+i-1)%4==0) {day=366;} } //printf("%d %d ",1900+i-1,day); x=1;y=0; for(j=1;j<=day;j++) { y++;point++; if(point==8 ) {point=1;} if( x==4 || x==6 || x==9 || x==11 ) { if( y==31 ) {y=1;x++;} } if( x==1 || x==3 || x==5 || x==7 || x==8 || x==10 || x==12) { if( y==32 ) {y=1;x++;} } if( x==2 && y==29+day-365 ) {y=1;x++;} if( x==13 ) {x=1;} if( y==13 ) {date[point]++;} } } printf("%d %d",date[6],date[7]); for(i=1;i<=5;i++) { printf(" %d",date[i]); } //getch(); printf("\n"); return 0;}
1.14
/*ID:liaoxg72LANG:C++TASK:beads*/#include<stdio.h>using namespace std;char zhuzi[1200];int i,j,k,m,n,s=2;int main(){freopen("beads.in","r",stdin); freopen("beads.out","w",stdout);scanf("%d\n",&n);for(i=400;i<400+n;i++){scanf("%c",&zhuzi[i]);zhuzi[i+n]=zhuzi[i];zhuzi[i-n]=zhuzi[i];}for(i=400;i<400+n;i++){j=1;k=1;while((zhuzi[i-1]==zhuzi[i-1-j]||zhuzi[i-j-1]=='w'||zhuzi[i-1]=='w')&&j<=n-2){if(zhuzi[i-1]=='w')zhuzi[i-1]=zhuzi[i-1-j];j++; }while((zhuzi[i]==zhuzi[i+k]||zhuzi[i+k]=='w'||zhuzi[i]=='w')&&j+k<=n-1){if(zhuzi[i]=='w')zhuzi[i]=zhuzi[i+k];k++;}if(s<j+k)s=j+k;}printf("%d\n",s);//system("pause");return 0;}
1.21
/*ID:liaoxg72LANG:C++TASK:milk2*/#include<stdio.h>#include<stdlib.h>#include<memory.h>int main(){ int n,i,a,b,j,x=1000000,y=0,arr[2]={0,0}; char ar[1000000]; freopen("milk2.in","r",stdin); freopen("milk2.out","w",stdout); memset(ar,0,sizeof ar); scanf("%d",&n); for (i=0;i<n;++i){ scanf("%d%d",&a,&b); --b; if (a<x) x=a; if (b>y) y=b; for (j=a;j<=b;++j) ar[j]=1; } for (i=x;i<y;i+=j){ for (j=0;ar[i+j]==ar[i];++j); if (j>arr[ar[i]]) arr[ar[i]]=j; } printf("%d %d\n",arr[1],arr[0]); //system("pause"); return 0;}
1.22
/*ID:liaoxg72LANG:C++TASK:transform*/#include<stdio.h>#include<string.h>#define MAXN 11char from[MAXN][MAXN],to[MAXN][MAXN];int n;bool tr(char a[][MAXN],int option){int ax,ay,bx,by;bool flag=true;switch(option){case 0:for(ax=0;flag&&ax<n;++ax) for(ay=0;flag&&ay<n;++ay) if(a[ax][ay]!=to[ax][ay])flag=false;break;case 1:for(ay=0,bx=0;flag && ay<n && bx<n;++ay,++bx)for(ax=n-1,by=0;flag && ax>=0 && by<n;--ax,++by)if(a[ax][ay]!=to[bx][by])flag=false;break;case 2:for(ax=n-1,bx=0;flag && ax>=0 && bx<n;--ax,++bx)for(ay=n-1,by=0;flag && ay>=0 && by<n;--ay,++by)if(a[ax][ay]!=to[bx][by])flag=false;break;case 3:for(ay=0,bx=0;flag && ay < n && bx < n;++ay,++bx)for(ax=n-1,by=0;flag && ax >= 0 && by < n;--ax,++by)if(a[ax][ay] != to[bx][by])flag=false;break;} return flag;} int main(){freopen("transform.in","r",stdin);freopen("transform.out","w",stdout); int i,j;scanf("%d",&n);for(i=0;i < n;++i)scanf("%s",from[i]);for(i=0;i < n;++i)scanf("%s",to[i]); char tmp[MAXN][MAXN];int ans=0; for(i=0;i<n;++i)for(j=0;j<n;++j)tmp[i][j]=from[i][n-j-1]; for(i=1;i<=3;++i)if(tr(from,i)){ans=i;break;}if(ans==0 && tr(tmp,0))ans=4;for(i=1;ans==0 && i<=3;++i)if(tr(tmp,i)){ans=5;break;}if(ans==0 && tr(from,0))ans=6;if(ans==0)ans=7;printf("%d\n",ans);return 0;}
1.23
/*ID:liaoxg72LANG:C++TASK:namenum*/#include<stdio.h>#include<string.h>#include<stdlib.h>static const int MAX=5000;static const int LEN=12+2;static const int NUM=4617;static const int CMAX=3;char dict[MAX][LEN];char* t[10];char numname[LEN];char tmp[LEN];int len=0;bool found=false;void init(){FILE* f=fopen("namenumdict.txt","r");int i;for(i=0;i!=NUM;i++)fscanf(f,"%s",&dict[i][0]);t[2]="ABC";t[3]="DEF";t[4]="GHI";t[5]="JKL";t[6]="MNO";t[7]="PRS";t[8]="TUV";t[9]="WXY";}int compare(const void* a,const void* b){char* ca=(char*)a;char* cb=(char*)b;return strcmp(ca,cb);}void search(int deep){if(deep==len){tmp[len]='\0';if(bsearch(&tmp,dict,NUM,sizeof(char)*LEN,compare)){printf("%s\n",tmp);if(!found)found=true;}return;}else{int i;for(i=0;i!=CMAX;i++){tmp[deep]=t[numname[deep]-'0'][i];search(deep+1);}}}int main(){init();scanf("%s",numname);len=strlen(numname);search(0);if(!found)printf("NONE\n");return 0;}
1.24
/*ID:liaoxg72LANG:C++TASK:palsquare*/#include <stdio.h>int B;int x[20],l,y[20],L; void Change(int n){ int m; m=n, l=0; while(m) x[++l]=m%B, m/=B; m=n*n, L=0; while(m) y[++L]=m%B, m/=B;}int pd(){ int i,j; for(i=1,j=L;i<=j;++i,--j) if(y[i]!=y[j]) return 0; return 1;}int main(){ freopen("palsquare.in","r",stdin); freopen("palsquare.out","w",stdout); int i,j; char c[20]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J'}; scanf("%d",&B); for(i=1;i<=300;++i){ Change(i); if(pd()){ for(j=l;j>=1;--j) printf("%c",c[x[j]]); printf(" "); for(j=L;j>=1;--j) printf("%c",c[y[j]]); printf("\n"); } } return 0;}
1.25
/*ID:liaoxg72LANG:C++TASK:dualpal*/#include<stdio.h>#include<string.h>using namespace std;int dfs(int a[101],int n,int s){int count=0;while(s!=0){a[count++]=s%n;s/=n;}count--;int i,j;for(i=0,j=count;i<=count;i++,j--){if(a[i]!=a[j])return 0;}return 1;}int main(){freopen("dualpal.in","r",stdin);freopen("dualpal.out","w",stdout);int n,s;scanf("%d%d",&n,&s);int a[101];memset(a,0,sizeof(a));int i,j;int count=0;int temp;for(i=s+1;;++i){temp=i;int count1=0;int flag=0;for(j=2;j<=10;++j){count1+=dfs(a,j,temp);temp=i;}if(count1>=2){printf("%d\n",i);count++;}if(count==n)break;}return 0;}
1.31
/*ID:liaoxg72LANG:C++TASK:milk*/#include<stdio.h>struct node{ int pr; int num; }a[5010];int main(){ freopen("milk.in","r",stdin); freopen("milk.out","w",stdout); int i,j,k,l,m,n,cost=0,milk=0,tmp,tnp; scanf("%d%d",&m,&n); if(m==0||n==0){ printf("0\n");return 0; } for(i=1;i<=n;i++) scanf("%d%d",&a[i].pr,&a[i].num); for(i=1;i<n;i++) for(j=i+1;j<=n;j++) if(a[i].pr>a[j].pr){ tmp=a[i].pr;a[i].pr=a[j].pr;a[j].pr=tmp; tnp=a[i].num;a[i].num=a[j].num;a[j].num=tnp; } for(i=1;i<=n;i++){ k=a[i].pr;l=a[i].num;j=milk+l; if(j>m){ cost+=(m-milk)*k; break; } milk+=l;cost+=k*l; } printf("%d",cost); printf("\n"); return 0;}
1.32
/*ID:liaoxg72LANG:C++TASK:barn1*/#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAX 201int cmp(const void *a,const void *b){return *(int *)a-*(int *)b;}int main(){freopen("barn1.in","r",stdin);freopen("barn1.out","w",stdout);int m,s,c;scanf("%d%d%d",&m,&s,&c);int a[MAX],b[MAX];int temp=s;memset(a,0,sizeof(a));memset(b,0,sizeof(b));int i;for(i=0;i<c;++i){scanf("%d",&a[i]);}qsort(a,c,sizeof(int),cmp);int j=0;s=s-(a[0]-1);for(i=1;i<c;++i){b[j++]=a[i]-a[i-1]-1;}s=s-(temp-a[c-1]);j--;qsort(b,j+1,sizeof(int),cmp);if(m>=c){printf("%d\n",c);return 0;}for(i=j;i>=j-m+2;--i){s-=b[i];}printf("%d\n",s);return 0;}
1.33
/*ID:liaoxg72LANG:C++TASK:crypt1*/#include <stdio.h>#include <string.h>int main(){ freopen("crypt1.in","r",stdin); freopen("crypt1.out","w",stdout); long i,j,k,l,n,suma,sumb,sumc,num[15],tab,t1,t2; long a[1050],b[105]; char hash[10005]={0},h3[1005]={0}; scanf("%ld",&n); for(i=0;i<n;i++) scanf("%ld",&num[i]); for(i=0,suma=0;i<n;i++) for(j=0;j<n;j++) for(k=0;k<n;k++,suma++) a[suma]=num[i]*100+num[j]*10+num[k],h3[a[suma]]=1; //所有可能三位数 for(i=0,sumb=0;i<n;i++) for(j=0;j<n;j++,sumb++) b[sumb]=num[i]*10+num[j]; for(i=0;i<n;i++) for(j=0;j<n;j++) for(k=0;k<n;k++) for(l=0;l<n;l++) hash[num[i]*1000+num[j]*100+num[k]*10+num[l]]=1; //所有可能四位数 for(i=0,sumc=0;i<suma;i++) for(j=0;j<sumb;j++){ tab=a[i]*b[j]; if(tab>=1000&&tab<=9999&&hash[tab]==1){ //四位数并且能够由给出的数字构成 t1=(b[j]%10)*a[i],t2=(b[j]/10)*a[i]; if(t1>=100&&t1<=999&&t2>=100&&t2<=999&&h3[t1]==1&&h3[t2]==1) //三位数并且能够由给出的数字构成 sumc++; } } printf("%ld\n",sumc); return 0;}
1.34
/*ID:liaoxg72LANG:C++TASK:wormhole*/#include<iostream>#include<cstdio>#include<cstdlib>#include<algorithm>#include<vector>#include<cstring>using namespace std; struct Node{int x,y,vis,l;bool operator <(const Node &rhs)const{return x<rhs.x;}}; int n,ans=0,x[20],y[20],x3[20],y3[20],r[20],label[20],cur=0,flag;vector<Node> g[20];bool cmp(int ii,int jj){return y[ii]<y[jj];} void isloop(int y,int x){int lx=x,ly=y;while(lx<g[ly].size()){if(g[ly][lx].vis) {flag=1;return;}g[ly][lx].vis=1;int t1=g[ly][lx].l;lx=x3[label[t1]],ly=y3[label[t1]];lx++; }} bool check(){for(int i=0;i<=cur;i++)for(int j=0;j<g[i].size();j++)g[i][j].vis=0;flag=0;for(int i=0;i<=cur;i++)for(int j=0;j<g[i].size();j++){ for(int n=0;n<=cur;n++)for(int m=0;m<g[n].size();m++)g[n][m].vis=0; isloop(i,j); }if(flag) return true;else return false;} void solve(int c){if(c>n/2){if(check()) ans++;return;}int pos;for(int i=0;i<n;i++) if(label[i]<0){pos=i;break;}for(int i=pos+1;i<n;i++)if(label[i]<0){label[i]=pos;label[pos]=i;solve(c+1);label[i]=-1;}label[pos]=-1;} int main(){freopen("wormhole.in","r",stdin);freopen("wormhole.out","w",stdout);cin>>n;for(int i=0;i<n;i++) cin>>x[i]>>y[i];for(int i=0;i<n;i++) r[i]=i;sort(r,r+n,cmp);g[0].push_back((Node){x[r[0]],y[r[0]],0,r[0]});for(int i=1;i<n;i++){int l1=r[i],l2=r[i-1];if(y[l1]==y[l2]) g[cur].push_back((Node){x[l1],y[l1],0,l1});else g[++cur].push_back((Node){x[l1],y[l1],0,l1});}for(int i=0;i<n;i++) sort(g[i].begin(),g[i].end());for(int i=0;i<=cur;i++)for(int j=0;j<g[i].size();j++){int t1=g[i][j].l;x3[t1]=j;y3[t1]=i;} memset(label,-1,sizeof(label));solve(1);cout<<ans<<endl; return 0;}
1.35
/*ID: wtx97071PROG: skidesignLANG: C++*/#include<stdio.h>using namespace std;int N,i,j;int h[1011];int min(int x,int y){ if(x<y) return x; return y;}int main(){ freopen("skidesign.in","r",stdin); freopen("skidesign.out","w",stdout); scanf("%d",&N); for(i=0;i<N;++i) scanf("%d",&h[i]); int ans=99999999; for(i=0;i<100-17+1;++i){ int tans=0; for(j=0;j<N;++j){ if(h[j]<i) tans+=(i-h[j])*(i-h[j]); if(h[j]>i+17) tans+=(h[j]-i-17)*(h[j]-i-17); } ans=min(ans, tans); } printf("%d\n",ans); return 0;}
1.41
/*ID:liaoxg72LANG:C++ TASK:milk3*/#include<stdio.h>int milk[21]={0},a,b,c,vis[21][21]={0,0};int dfs(int i,int j){ int k=c-i-j; if(i==0) milk[k]=1; vis[i][j]=1; if(i<a){ if(j>a-i&&vis[a][j-a+i]==0) dfs(a,j-a+i); else if(i+j<a&&vis[i+j][0]==0) dfs(i+j,0); if(k>a-i&&vis[a][j]==0) dfs(a,j); else if(c-j<a&&vis[c-j][j]==0) dfs(c-j,j); } if(j<b){ if(i>b-j&&vis[i-b+j][b]==0) dfs(i-b+j,b); else if(i+j<b&&vis[0][i+j]==0) dfs(0,i+j); if(k>b-j&&vis[i][b]==0) dfs(i,b); else if(c-i<b&&vis[i][c-i]==0) dfs(i,c-i); } if(k<c){ if(i>c-k&&vis[i-c+k][j]==0) dfs(i-c+k,j); else if(vis[0][j]==0) dfs(0,j); if(j>c-k&&vis[i][j-c+k]==0) dfs(i,j-c+k); else if(vis[i][0]==0) dfs(i,0); }}int main(){ int i; FILE *fp1,*fp2; freopen("milk3.in","r",stdin); freopen("milk3.out","w",stdout); scanf("%d%d%d",&a,&b,&c); dfs(0,0); if(c<=b) printf("0 "); for(i=1;i<c;i++) if(milk[i]) printf("%d ",i); printf("%d\n",c); return 0;}
1.42
/*ID: liaoxg72 LANG: C++TASK:ariprog */#include<stdio.h>#include<string.h>int vis[130000],s[130000];int main(){ freopen("ariprog.in","r",stdin); freopen("ariprog.out","w",stdout); int i,j,num,a,b,sum,m,n; num=0; memset(vis,0,sizeof(vis)); scanf("%d%d",&n,&m); sum=2*m*m; for(i=0;i<=m;i++) for(j=0;j<=i;j++) vis[i*i+j*j]=1; for(i=0;i<=sum;i++) if(vis[i]){ num++; s[num]=i; } int e=0; for(b=1;b*(n-1)<=sum;b++) for(i=1;i<=num-n+1&&s[i]+(n-1)*b<=sum;i++){ a=s[i]; for(j=n-1;j>=1;j--){ if(!vis[a+j*b]) break; } if(!j){ e++; printf("%d %d\n",a,b); } } if(!e) printf("NONE\n"); return 0;}
1.51
/*ID:liaoxg72LANG:C++TASK:numtri*/#include<stdio.h>int max(long a,long b){ if(a>b) return a; else return b;}int a[1000][1000];int main(){ int i,j,n; freopen("numtri.in","r",stdin); freopen("numtri.out","w",stdout); scanf("%ld",&n); for(i=0;i<n;i++) for(j=0;j<=i;j++) scanf("%ld",&a[i][j]); for(i=n-2;i>=0;i--) for(j=0;j<=i;j++) a[i][j]+=max(a[i+1][j],a[i+1][j+1]); printf("%d\n",a[0][0]);}
1.52
/*ID:liaoxg72LANG:C++TASK:pprime*/#include <stdio.h>#include <stdlib.h>#include <string.h>int a,b;int isprime(int n){ int i; if(n==2)return 1; if(n%2==0)return 0; for(i=3;i*i<=n;i+=2)if(n%i==0) return 0; return 1;} void gen(int i, int isodd){ char buf[30]; char *p, *q; int n; sprintf(buf, "%d", i); p=buf+strlen(buf); q=p-isodd; while(q>buf)*p++=*--q; *p='\0'; n=atol(buf); if(a<=n&&n<=b&&isprime(n))printf("%d\n",n);} void genoddeven(int lo, int hi){ int i; for(i=lo;i<=hi; i++) gen(i,1); for(i=lo;i<=hi;i++) gen(i,0);} void generate(){ genoddeven(1,9); genoddeven(10,99); genoddeven(100,999); genoddeven(1000,9999);}int main(){ freopen("pprime.in","r",stdin); freopen("pprime.out","w",stdout); scanf("%d%d",&a,&b); generate(); return 0;}
1.53
/*ID:liaoxg72LANG:C++TASK:sprime*/#include<stdio.h>#include<stdlib.h>#include<math.h>int n;int check(int a){ if(a==1) return 1; if(a==2) return 0; int i,e; e=(int)sqrt(a); for(i=2;i<=e;i++) if(a%i==0) return 1; return 0;}void dfs(int num,int deep){ if(deep>n) return; if(check(num)==0) if(deep==n) printf("%d\n",num); else{ dfs(num*10+1,deep+1); dfs(num*10+3,deep+1); dfs(num*10+5,deep+1); dfs(num*10+7,deep+1); dfs(num*10+9,deep+1); } else return;} int main(){ freopen("sprime.in","r",stdin); freopen("sprime.out","w",stdout); scanf("%d",&n); dfs(1,1); dfs(2,1); dfs(3,1); dfs(4,1); dfs(5,1); dfs(6,1); dfs(7,1); dfs(8,1); dfs(9,1); return 0;}
阅读全文
0 0
- USACO第一单元全部参考代码
- 第一单元
- 第一单元
- 第一单元
- 第一单元
- 第一单元
- 第一单元:20110814
- 市场营销学第一单元
- 第一单元作业
- Linux学习 第一单元
- 第一单元:微积分
- 第一单元练习题
- 第一单元作业
- 第一单元总结
- Linux-第一单元练习
- Linux学习 第一单元练习题
- 第二册第一单元总结
- 代码点与代码单元
- c++面试---基本概念
- bugku ctf 细心的大象 wirteup
- 主席树模版 记录历史操作
- QNX系统的实时性分析-实时性能测试标准
- 2017.8 模拟赛6 比赛笔记
- USACO第一单元全部参考代码
- “沙漏形状”算法题
- 希尔排序---for循环步长大于1时候的终止条件有问题
- 正则表达式入门之重复匹配
- mybatis编程整理
- HDU 6124-Euler theorem
- Docker安装Jenkins
- 2017.8模拟赛7 比赛笔记
- hdu 6109 数据分割(并查集+set合并)