ACM ICPC WORLD FINAL
解法:排序大家都知道,去重的话,初学者用数组就好了
#include<algorithm> #include<iostream> using namespace std; int main() { int a,b,c[100],i,d[31]; cin>>a; while(a>0) { cin>>b; for(i=0;i<31;i++) d[i]=0; for(i=0;i<b;i++) { cin>>c[i]; } for(i=0;i<b;i++) { d[c[i]]++; } for(i=0;i<31;i++) { if(d[i]!=0) cout<<i<<" "; } cout<<endl; a--; } }
木
解法:找规律,前面的n行都是在中间输出*,第n+1行全部输出*,接下来的以中间为对称关系,往两边扩展
#include <bits/stdc++.h> using namespace std; int main() { int n; while(cin>>n&&n) { for(int i=1;i<=2*n+1;i++) { for(int j=1;j<=2*n+1;j++) { if(j==n+1) { cout<<"*"; } else if(i==n+1) { cout<<"*"; } else if(i>n+1) { int pos=i-(n+1); //cout<<pos<<endl; if(n+1-pos==j||n+1+pos==j) { cout<<"*"; } else { cout<<"."; } } else { cout<<"."; } } cout<<endl; } } return 0; }
我们都是江理人
解法:字符串处理(根据题意)
#include<stdio.h> int main() { int n,t,i; char a[1000]; scanf("%d",&n); getchar(); while(n--) { i=0; gets(a); for(t=0;a[t]!=‘\0‘;t++) { if(a[t]==‘1‘) printf("love jiangli\n"); if(a[t]==‘2‘) printf("love xingong\n"); } } return 0; }
回文素数
解法:数据不大,当然是先判断是不是回文再判断素数,(这里可以把数字一位一位分解倒着相加看是否相等)
#include<stdio.h> int main() { int m,n,c,b,k,p,q,r; while(scanf("%d%d",&m,&n)!=EOF) { if(m==0&&n==0) break; r=0; for(k=m; k>=m&&k<=n; k++) { b=0; p=k; while(k>0) { c=k%10; b=b*10+c; k=k/10; } if(b==p) { for(q=2; q<p; q++) if(p%q==0) break; if(q==p) { r=r+1; } } k=p; } printf("%d\n",r); } }
兽兽扔铅球
解法:数学题,没什么好说的
#include <stdio.h> #include<math.h> int main() { int n; float h,a,l; while(scanf("%d",&n)!=EOF) { while(n--) { scanf("%f%f",&h,&a); l=h/tan(a); printf("%.3f\n",l); } } return 0; }
魔兽争霸
解法:应该是计算斜率了(y2-y1)*(x3-x1)==(y3-y1)*(x2-x1)
#include<stdio.h> int main() { double x1,x2,x3,y1,y2,y3; int n; while(scanf("%d",&n)!=EOF) { for(int i=0;i<n;i++) { scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3); if((y2-y1)*(x3-x1)==(y3-y1)*(x2-x1)&&(x2-x1)*(x2-x1)>=(x3-x1)*(x3-x1)&&(y2-y1)*(y2-y1)>=(y3-y1)*(y3-y1)) printf("yes\n"); else printf("no\n"); } } return 0; }
时间: 2024-12-29 23:20:08