2017.11.15_SUST测试赛
来源:互联网 发布:淘宝店铺可以注销吗 编辑:程序博客网 时间:2024/06/05 19:01
A.签到题
#include<stdio.h>int main(){ printf("Hello World!"); return 0;}
B.计算两点间距离
#include<stdio.h>#include<math.h>int main(){double x1,y1,x2,y2; while(~scanf("%lf %lf %lf %lf",&x1,&y1,&x2,&y2)){ printf("%.2lf\n",sqrt( pow(x2-x1,2) +pow(y2-y1,2)));//printf("%.2lf\n",sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)));}return 0;}
C.oil deposits
#include<stdio.h>#include<string.h>char oil[140][140];int m,n;int main(){int dfs(int i,int j);while(scanf("%d %d",&m,&n),!(m==0 && n==0)){int i,j,k,ans=0;for(i=0;i<m;i++){ scanf("%s",oil[i]);}for(i=0;i<m;i++){for(j=0;j<n;j++){if(oil[i][j]=='@'){dfs(i,j);ans++;}}}/*for(i=0;i<m;i++){for(j=0;j<n;j++){printf("%c ",oil[i][j]);}printf("\n");}*/printf("%d\n",ans);}return 0;} int dfs(int i,int j){if(oil[i][j]!='@' || i<0 || j<0 || i>m-1 || j>n-1){return 0;}oil[i][j]='*';dfs(i-1,j-1);dfs(i-1,j);dfs(i-1,j+1);dfs(i,j-1);dfs(i,j+1);dfs(i+1,j-1);dfs(i+1,j);dfs(i+1,j+1);return 0;}
D一只小蜜蜂
#include<stdio.h>int main(){int num;scanf("%d",&num);while(num--){int i,j,k;long long int m=1,n=2,b=0;scanf("%d %d",&i,&j);k=j-i;if(k==1){printf("1\n");continue;}else if(k==2){printf("2\n");continue;}k=k-2;while(k--){b=m+n;m=n;n=b;}printf("%lld\n",b);}return 0;}
E发工资喽
#include<stdio.h>int main(){int num=1,count,i;int cat[101]={0};while(scanf("%d",&num),num){count=0; for(i=0;i<num;i++){ scanf("%d",&cat[i]);} for(i=0;i<num;i++){ while(cat[i]!=0){ if(cat[i]>=100){ cat[i]-=100; count++; }else if(cat[i]>=50){ cat[i]-=50; count++;}else if(cat[i]>=10){cat[i]-=10;count++;}else if(cat[i]>=5){cat[i]-=5;count++;}else if(cat[i]>=2){cat[i]-=2;count++;}else if(cat[i]>=1){cat[i]-=1;count++;} } } printf("%d\n",count);}return 0;}
F duizi and shunzi
#include<stdio.h>#include<algorithm>#include<stack>using namespace std;int al[10000005];int a1,b1,c1;int main(){int n,temp;while(~scanf("%d",&n)){stack<int> a; //用栈保存当前的牌 int count=0;for(int i=0;i<n;i++){scanf("%d",&al[i]);}sort(al,al+n);for(int i=0;i<n;i++){temp=al[i];if(a.empty()){a.push(temp);continue;}if(temp==a.top()){a.pop();count++;}else if(temp-a.top()==1){c1=temp;b1=a.top();a.pop();if(a.empty()){a.push(b1);a.push(c1);continue;}a1=a.top();if(c1-b1==1 && b1-a1==1){a.pop();count++;}else {a.push(b1);a.push(c1);}}else {a.push(temp);}}printf("%d\n",count);}return 0;}
G windows message queue
#include<iostream>#include<queue>#include<cstring>using namespace std;struct mess{ string name; int value; int key; friend bool operator < (mess n1,mess n2) { return n1.key>n2.key; }};int main(){ priority_queue<mess> q; if(q.empty()){ q.empty(); } string str; while(cin>>str) { if(str[0]=='G') { if(!q.empty()) { cout<<q.top().name<<" "<<q.top().value<<endl; q.pop(); } else cout<<"EMPTY QUEUE!"<<endl; } if(str[0]=='P') { mess m; cin>>m.name>>m.value>>m.key; q.push(m); } } return 0;}
#include<stdio.h>#include<string.h>#define INF 0x7f7f7fstruct information{ char name[40]; //信息名字 char content[40]; //信息参数 int priority; //优先级 }cat[70000],temp; int main(){int count = 0,i,j;char command[10]; //命令类型while(scanf("%s",command)!=EOF){ if(!strcmp(command,"GET")){ count--; if(count<0){ printf("EMPTY QUEUE!\n"); count=0; continue; }else { printf("%s %s\n",cat[count+1].name,cat[count+1].content);continue; } }else if(!strcmp(command,"PUT")){ count++; } scanf("%s",&cat[count].name); scanf("%s",&cat[count].content); scanf("%d",&cat[count].priority); temp=cat[count]; cat[0].priority=INF; for(i=count-1;i>=0;i--){ if(temp.priority<cat[i].priority){ cat[i+1]=temp; break; }else if(temp.priority>=cat[i].priority){ cat[i+1]=cat[i]; } }} return 0;}
H水仙花数
#include<stdlib.h>#include<stdio.h>int main(){int fun(int i);int a,b,sum=0,i,flag,ht;while(~scanf("%d %d",&a,&b)){ht=0; flag=0;for(i=a;i<=b;i++){ sum=fun(i%10)+fun(i/10%10)+fun(i/10/10); if(sum==i && flag==0){ printf("%d",sum); flag=1; ht=1; }else if(sum==i && flag==1) { printf(" %d",sum); ht=1; }}if(ht==0){printf("no\n");}else printf("\n");}return 0;}int fun(int i){return i*i*i; }
I 鸽巢原理 ignatius and the princess iv
#include<stdio.h>int main(){int num;while(scanf("%d",&num)!=EOF){ int i,temp,count=0,cat;for(i=0;i<num;i++){scanf("%d",&cat);if(count==0){temp=cat;count++;continue;}if(temp!=cat) count--;else count++;}printf("%d\n",temp);}return 0;}
J encoding
#include<stdio.h>#include<string.h>int main(){int num,alen,count=1,i;char str[10050];scanf("%d",&num);while(num--){ scanf("%s",&str); alen=strlen(str); for(i=0;i<alen;i++){ if(str[i]==str[i+1]){ count++; continue; }else if(count==1){printf("%c",str[i]);count=1;}else if(count!=0){printf("%d%c",count,str[i]);count=1;} } printf("\n"); }return 0;}
#include<iostream>#include<cstring>#include<cstdio>using namespace std;int main(){int n,i,c;char m[10005];cin>>n;while(n--){cin>>m;for(i=0;m[i]!='\0';){c=1;while(m[i]==m[i+1]){c++;i++;}if(c==1)cout<<m[i];elsecout<<c<<m[i];i++;}cout<<endl;}return 0;}
K 杨辉三角
#include <stdio.h>#include <math.h>int main(){int i,j,num, b[50][50] = { 0 };while (~scanf("%d", &num)){b[0][0]=1;for(i=1;i<=num;i++){for(j=1;j<=i;j++){b[i][j]=b[i-1][j-1]+b[i-1][j];if(i!=j){printf("%d ",b[i][j]); }else printf("%d",b[i][j]);}printf("\n");}printf("\n");}return 0;}
L whikey的眼神
//输入L,sx,sy,px,py; L<=1000,sx,sy是WisKey的坐标,px,py是Rabbit的坐标.//以L=0为结束. #include<stdio.h>#include<math.h>int gcd(int a,int b);int fun(int sx,int sy,int px,int py);int main(){ int l,sx,sy,px,py,r;while(scanf("%d",&l)){if(l==0)break;scanf("%d %d %d %d",&sx,&sy,&px,&py);if(abs(sx)>l || abs(sy)>l || abs(px)>l || abs(py)>l){printf("Out Of Range\n");continue;}r=fun(sx,sy,px,py);if(r){printf("No\n");}else printf("Yes\n");}return 0;}int fun(int sx,int sy,int px,int py){int a=abs(sx-px); int b=abs(sy-py);if(gcd(a,b)!=1)return 1;else return 0;}int gcd(int a,int b){ return b==0?a:gcd(b,a%b);}
#include<iostream>#include<math.h>using namespace std;int main(){int L;int x1, y1, x2, y2,x,y;while (cin >> L){if (L == 0) break;cin >> x1 >> y1 >> x2 >> y2;if (abs(x2) > L || abs(y2) > L){cout << "Out Of Range" << endl;}else{x = abs(x1 - x2);y = abs(y1 - y2);if (x == 0 || y == 0 && (x + y)!= 1){cout << "No" << endl;continue;}int r = x%y;while (r != 0){x = y;y = r;r = x%y;}if (y == 1) cout << "Yes" << endl;else cout << "No" << endl;}}return 0;}
M 数塔取数问题
#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int maxn=500+5;int dp[maxn][maxn];int num[maxn][maxn];int main(){ int n; while(scanf("%d",&n)!=EOF) { memset(dp,0,sizeof(dp)); for(int i=0;i<n;i++) { for(int j=0;j<=i;j++) { scanf("%d",&num[i][j]); } } for(int i=0;i<n;i++) { dp[n-1][i]=num[n-1][i]; } for(int i=n-2;i>=0;i--) { for(int j=0;j<=i;j++) { dp[i][j]=max(dp[i+1][j],dp[i+1][j+1])+num[i][j]; } } printf("%d\n",dp[0][0]); } return 0;}
#include<stdio.h>#include<algorithm>#include<math.h>using namespace std;int map[501][501];int data[501][501];int main(){int L;scanf("%d",&L);for(int i=1;i<=L;i++){for(int j=1;j<=i;j++){scanf("%d",&data[i][j]);}}map[1][1]=data[1][1];for(int i=2;i<=L;i++){for(int j=1;j<=i;j++){map[i][j]=max(map[i-1][j-1],map[i-1][j])+data[i][j];}}int maxn=0;for(int i=1;i<=L;i++){maxn=max(maxn,map[L][i]);}printf("%d\n",maxn);return 0;}
N 手机短号
#include<stdio.h>#include<string.h>int main(){int num;char str[11];scanf("%d",&num);while(num--){ scanf("%s",str); printf("6%s\n",str+6);}return 0;}
O 成绩转换
#include<stdio.h>int main(){int num;while(~scanf("%d",&num)){if(num<0 || num>100){ printf("Score is error!\n");}else if(num>=90 && num<=100){ printf("A\n");}else if(num>=80){ printf("B\n");}else if(num>=70){ printf("C\n");}else if(num>=60){ printf("D\n");}else if(num>=0){ printf("E\n");}}return 0;}
P the 3n+1 proble
#include<stdio.h>int num (int n);int main(){int a,b,i,temp,ans;while(~scanf("%d %d",&a,&b)){printf("%d %d ",a,b);if(a>b){int temp=a;a=b;b=temp;}ans=0;int length;for(i=a;i<=b;i++){temp=num(i);if(temp>ans) ans=temp;}printf("%d\n",ans);//printf("%d %d %d\n",a,b,ans);}return 0;}int num(int n){int l=1;while(n!=1){if(n%2==0){n/=2;}else {n=3*n+1;}l++;}return l;}
Q Prime cuts
#include <stdio.h>int main (){int N, c, i, j, n, a[1010];while (~scanf("%d%d", &N, &c)){a[0] = 1;n = 1; for (i=1; i<=N; i++){ for (j=2; j<=i/2; j++) if (i%j == 0) break;if (j>i/2){a[n] = i;n++; }}printf ("%d %d:", N, c); if (2*c > n+1){ for (i=1; i<n; i++) printf (" %d", a[i]);printf ("\n\n");}else{ if ((n+1)%2==0){ for (i=n/2-c+1; i<=n/2+c; i++) printf (" %d", a[i]); printf ("\n\n"); } else{ for (i=n/2-c+1; i<=n/2+c-1; i++) printf (" %d", a[i]); printf ("\n\n"); }}}return 0;}
R clock
#include<stdio.h>#include<math.h>struct clock{int h;int m;int sum;}cat[5];int main(){ struct clock tmp; int num,i,j,a,b; scanf("%d",&num); while(num--) { for(i=0;i<5;i++) { scanf("%d:%d",&cat[i].h,&cat[i].m); cat[i].sum=abs((cat[i].h%12)*60+cat[i].m-12*cat[i].m); if(cat[i].sum>360){ cat[i].sum=720-cat[i].sum; }// printf("%d\n",&cat[i].sum); } for(i=0;i<4;i++){ for(j=0;j<4-i;j++){ if(cat[j].sum>cat[j+1].sum){ tmp=cat[j]; cat[j]=cat[j+1]; cat[j+1]=tmp; }else if(cat[j].sum==cat[j+1].sum){ a=cat[j].h*60+cat[j].m; b=cat[j+1].h*60+cat[j+1].m; if(a>b){ tmp=cat[j]; cat[j]=cat[j+1]; cat[j+1]=tmp; } } } } printf("%02d:%02d\n",cat[2].h,cat[2].m); } return 0;}# include <stdio.h># include <math.h>typedef struct{int hour, minute;double angle;} time;int main (void){int n;scanf ("%d", &n);while(n--){time s[5];int a, b, c, d;for (int i = 0; i < 5; i++){scanf ("%d:%d", &s[i].hour, &s[i].minute); //printf ("%d %d\n", s[i].hour,s[i].minute);s[i].angle = fabs(s[i].minute + s[i].hour%12 * 60 - 12*s[i].minute);if (s[i].angle > 360.0) s[i].angle = 720 - s[i].angle;//printf ("%lf\n", s[i].angle);}time t;for (int i = 5; i > 0; i--){for (int j = 1; j < i; j++){if(s[j-1].angle > s[j].angle){t = s[j-1];s[j-1] = s[j];s[j] = t;}else if (s[j-1].angle == s[j].angle && s[j-1].hour > s[j].hour){t = s[j-1];s[j-1] = s[j];s[j] = t;}}}//for (int i = 0; i < 5; i++) // printf ("**%02d:%02d %lf ", s[i].hour, s[i].minute, s[i].angle);printf ("%02d:%02d\n", s[2].hour, s[2].minute);}return 0; }
S Ancient cipher#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>using namespace std;const int maxn=26;int cnt1[maxn],cnt2[maxn];int main(){ string str1,str2; while(cin>>str1>>str2) { memset(cnt1,0,sizeof(cnt1)); memset(cnt2,0,sizeof(cnt2)); for(int i=0;i<str1.length();i++) { cnt1[str1[i]-'A']++; } for(int i=0;i<str2.length();i++) { cnt2[str2[i]-'A']++; } sort(cnt1,cnt1+maxn); sort(cnt2,cnt2+maxn); bool flag=true; int i=0,j=0; while(i<maxn&&j<maxn) { if(cnt1[i]==cnt2[j]) { i++; j++; } else{ flag=false; break; } } if(flag==true) { printf("YES\n"); } else { printf("NO\n"); } } return 0;}
我爱你
阅读全文
0 0
- 2017.11.15_SUST测试赛
- 2017.11.2测试
- 2017.11.3测试
- 2017.11.3测试
- 2017.11.5测试
- 2017.11.6测试
- 2017.11.7测试
- 第二周测试赛
- 计蒜客测试赛
- API 测试(15)
- 2014.13-15 项目测试
- 测试
- 测试
- 测试
- 测试
- 测试
- 测试
- 测试
- 安迪比尔定理
- JS汉字转拼音
- android studio中程序崩溃无法查看log
- RGB转为16进制
- 读书笔记-PHP、MySQL与JavaScript学习手册
- 2017.11.15_SUST测试赛
- C# 利用ffmpeg进行本地文件转码
- 常用sql语句(mysql)
- SPOJ 1825 Free Tour 2
- 1014. Waiting in Line (30)
- spring MVC 的参数传递方式
- etcd-webui安装
- mysql故障排除
- 利用反汇编帮助查找段错误