A: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; char s[209]; int main() { while(scanf("%s",s)!=EOF) { int len=strlen(s); int ans=0; for(int i=0;i<len;i++) { for(int j=i+1;j<len;j++) { for(int k=j+1;k<len;k++) { if(s[i]=='1'&&s[j]=='3'&&s[k]=='0') { if(i+1==j&&j+1==k) { ans+=52; } else if(i+1==j||j+1==k) { ans+=19; } else { ans+=1; } } } } } printf("Xiao Huihui: %d\n",ans); } return 0; } B: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; struct E { int x1,y1; int x2,y2; }p,q,pp,qq; int main() { int ca; scanf("%d",&ca); while(ca--) { scanf("%d%d%d%d",&pp.x1,&pp.y1,&pp.x2,&pp.y2); p.x1=min(pp.x1,pp.x2); p.x2=max(pp.x1,pp.x2); p.y1=max(pp.y1,pp.y2); p.y2=min(pp.y1,pp.y2); scanf("%d%d%d%d",&qq.x1,&qq.y1,&qq.x2,&qq.y2); q.x1=min(qq.x1,qq.x2); q.x2=max(qq.x1,qq.x2); q.y1=max(qq.y1,qq.y2); q.y2=min(qq.y1,qq.y2); if(p.x1>=q.x1&&p.x1<=q.x2&&p.y1>=q.y2&&p.y1<=q.y1) { puts("Hit");continue; } if(p.x2>=q.x2&&p.x1<=q.x2&&p.y2>=q.y2&&p.y2<=q.y1) { puts("Hit");continue; } if(p.x1>=q.x1&&p.x1<=q.x2&&p.y2>=q.y2&&p.y2<=q.y1) { puts("Hit");continue; } if(p.x2>=q.x1&&p.x2<=q.x2&&p.y1>=q.y2&&p.y1<=q.y1) { puts("Hit");continue; } if(q.x1>=p.x1&&q.x1<=p.x2&&q.y1>=p.y2&&q.y1<=p.y1) { puts("Hit");continue; } if(q.x2>=p.x2&&q.x1<=p.x2&&q.y2>=p.y2&&q.y2<=p.y1) { puts("Hit");continue; } if(q.x1>=p.x1&&q.x1<=p.x2&&q.y2>=p.y2&&q.y2<=p.y1) { puts("Hit");continue; } if(q.x2>=p.x1&&q.x2<=p.x2&&q.y1>=p.y2&&q.y1<=p.y1) { puts("Hit");continue; } puts("Miss"); } return 0; } C: 注意一个圆很大,另一个很小的情况。 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int main() { int r1,r2; while(scanf("%d%d",&r1,&r2),r1+r2) { double ans=r1+r2; if(r1>r2)swap(r1,r2); ans+=sqrt(1.0*(r1+r2)*(r1+r2)-1.0*(r2-r1)*(r2-r1)); printf("%.2lf\n",max(ans,2.0*r2)); } return 0; } D: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; long long w,s,x,y,ansx; int main() { while(scanf("%I64d%I64d%I64d%I64d",&w,&s,&x,&y),w+s+x+y) { ansx=(x-s)+x; if(ansx>w) { ansx=2*w-ansx; } if(ansx<0) { ansx=-ansx; } printf("%d\n",ansx); } return 0; } E: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; const int M=200009; struct P { int x; int l; }p[M]; bool cmp(P a,P b) { return a.x>b.x; } int main() { int n,m,a,b; while(scanf("%d",&n),n) { for(int i=1;i<=n;i++) { scanf("%d",&p[i]); } sort(p+1,p+n+1,cmp); for(int i=1;i<=n;i++) { p[i].l=i; } scanf("%d",&m); while(m--) { scanf("%d%d",&a,&b); int ans1=10000000,ans2=0; for(int i=1;i<=n;i++) { if(p[i].x<=b&&p[i].x>=a) { if(p[i].l<ans1) { ans1=p[i].l; } if(p[i].l>ans2) { ans2=p[i].l; } } } if(ans1==10000000)ans1=0; printf("%d %d\n",ans1,ans2); } } return 0; } F: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int a,b; int main() { while(scanf("%d%d",&a,&b),a+b) { if(a%2==0||b%2==0) { puts("Alice"); } else { puts("Bob"); } } return 0; } G: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int a[5][5]; int aa[5][5]; void change(int j) { int x,y; if(j==0) { x=0; y=1; } else if(j==1) { x=0; y=2; } else if(j>=2&&j<=5) { x=1; y=j-2; } else if(j>=6&&j<=9) { x=2; y=j-6; } else { x=3; y=j-9; } for(int i=0;i<4;i++) { a[x][i]=a[x][i]^1; if(i!=x) a[i][y]=a[i][y]^1; } } int sum() { int res=0; res+=a[0][1]; res+=a[0][2]; for(int i=1; i<=2; i++) { for(int j=0; j<4; j++) res+=a[i][j]; } res+=a[3][1]; res+=a[3][2]; return res; } int iff(int x) { if(x==0)return 0; else return 1; } int main() { int ca,tmp; scanf("%d",&ca); while(ca--) { scanf("%d%d",&aa[0][1],&aa[0][2]); for(int i=1; i<=2; i++) { for(int j=0; j<4; j++) scanf("%d",&aa[i][j]); } scanf("%d%d",&aa[3][1],&aa[3][2]); int Max=1<<12,ans=1<<30,TT=0; for(int i=0; i<Max; i++) { for(int i=0;i<4;i++) { for(int j=0;j<4;j++) a[i][j]=aa[i][j]; } int num=0; for(int j=0; j<12; j++) { if(i&(1<<j)) { change(j); num++; } } int s=sum(); if(s==0||s==12) { // cout<<num<<" "<<ans<<endl; if(num<ans) { ans=num; TT=1; tmp=i; } else if(num==ans) { TT=2; } } } // cout<<TT<<" DD"<<endl; if(TT==1) { printf("%d\n",ans); printf(" "); printf("%d %d\n",iff(tmp&(1<<0)),iff(tmp&(1<<1))); int f=2; for(int i=1;i<3;i++) { int flag=1; for(int j=0;j<4;j++) { if(flag) { printf("%d",iff(tmp&(1<<f))); flag=0; } else printf(" %d",iff(tmp&(1<<f))); f++; } puts(""); } printf(" %d %d\n",iff(tmp&(1<<10)),iff(tmp&(1<<11))); } else { printf("%d\n",ans); printf("123.cpp\n"); } } return 0; }