团体程序设计天梯赛-练习集L27-L50
28.
/*#pragma GCC optimize(3)//pta判断素数 #include<bits/stdc++.h> using namespace std; int n; int main() { std::ios::sync_with_stdio(false); cin>>n; while(n--) { long long a; cin>>a; if(a<=1) { cout<<"No"<<endl; continue; } bool flag=true; for(register int i=2;i<=sqrt(a);i++) { if(a%i==0) { cout<<"No"; flag=false; break; } } if(flag) { cout<<"Yes"; } cout<<endl; } return 0; }*/
29.
*#include<bits/stdc++.h>//pta 到底是不是太胖了 using namespace std; int n; struct node { double height; double weight; }a[50]; int main() { std::ios::sync_with_stdio(false); cin>>n; for(register int i=1;i<=n;i++) { cin>>a[i].height>>a[i].weight; double levelweight=(double)(a[i].height-100)*0.9*2.0; if(abs(a[i].weight-levelweight)<levelweight*0.1) { cout<<"You are wan mei!"; } else { if(a[i].weight>levelweight) { cout<<"You are tai pang le!"; } else { cout<<"You are tai shou le!"; } } cout<<endl; } return 0; }*/
30.
#include<bits/stdc++.h>//pta 一帮一 using namespace std; int n; struct node { int sex; string name; }; int main() { std::ios::sync_with_stdio(false); cin>>n; vector<node>a; for(register int i=0;i<n;i++) { node temp; cin>>temp.sex>>temp.name; a.push_back(temp); } for(register int i=0;i<a.size();i++) { for(register int j=a.size()-1;j>=0;j--) { if(a[i].sex!=a[j].sex) { cout<<a[i].name<<" "<<a[j].name<<endl; a.erase(a.begin()+j); break; } } } return 0; }*/
31.
#include<bits/stdc++.h>//pta 到底是不是太胖了 using namespace std; int n; struct node { double height; double weight; }a[50]; int main() { std::ios::sync_with_stdio(false); cin>>n; for(register int i=1;i<=n;i++) { cin>>a[i].height>>a[i].weight; double levelweight=(double)(a[i].height-100)*0.9*2.0; if(abs(a[i].weight-levelweight)<levelweight*0.1) { cout<<"You are wan mei!"; } else { if(a[i].weight>levelweight) { cout<<"You are tai pang le!"; } else { cout<<"You are tai shou le!"; } } cout<<endl; } return 0; }*/
32.
#include<bits/stdc++.h>//pta Left-pad using namespace std; int n; char ch; string s; int main() { cin>>n>>ch; getchar(); getline(cin,s); if(n>s.length()) { for(int i=0;i<n-s.length();i++) { cout<<ch; } cout<<s; } else { for(int i=s.length()-n;i<s.length();i++) { cout<<s[i]; } } return 0; }*/
33.
这个题还是蛮有意思的,用集合来做更为简便,因为集合内不会有重复元素的出现,并且,这个题还考察了to_string 函数的使用,收获还是有的
#include<bits/stdc++.h>pta 出生年 using namespace std; int y; int n; int main() { std::ios::sync_with_stdio(false); cin>>y>>n; for(register int i=y;i<=30000;i++) { string s=to_string(i);//将数字转化为字符串 if(s.length()<4) { string temp; for(register int j=0;j<4-s.length();j++) { temp=temp+"0"; } s=temp+s; } set<char>up;//用集合可以保证不会出现重复的元素 for(register int i=0;i<s.length();i++) up.insert(s[i]); if(up.size()==n) { printf("%d %04d",i-y,i); break; } } return 0; }*/
34.
这个题学到了max_element函数和min_element函数的使用,在返回值中如果想获得整数,应该加上间接访问符来使用
#include<bits/stdc++.h>//pta 点赞 using namespace std; int n; int a[1010]; int ans; int cnt=-1; int main() { std::ios::sync_with_stdio(false); cin>>n; for(register int i=1;i<=n;i++) { int num; cin>>num; for(register int j=1;j<=num;j++) { int temp; cin>>temp; a[temp]++; } } ans=*max_element(a+1,a+1+n);//返回最大值; for(register int i=1;i<=1000;i++) { if(a[i]==ans) { cnt=max(cnt,i); } } cout<<cnt<<" "<<ans; return 0; }*/
35.
#include<bits/stdc++.h>//pta 情人节 using namespace std; string a; string b; int cnt; int main() { std::ios::sync_with_stdio(false); while(1) { string temp; cin>>temp; if(temp==".") break; cnt++; if(cnt==2) a=temp; else if(cnt==14) b=temp; } if(cnt<2) cout<<"Momo... No one is for you ..."; else if(cnt>=2&&cnt<14) { cout<<a<<" is the only one for you..."; } else if(cnt>=14) { cout<<a<<" and "<<b<<" are inviting you to dinner..."; } return 0; }*/
36.37特别水,直接跳过
38.水
39
#include<iostream> #include<string> using namespace std; int main() { int n=0; cin>>n; getchar(); string s; getline(cin,s); char blank=32; int col=0; if(s.length()%n!=0) { col=s.length()/n+1; for(int i=0;i<s.length()%n;i++) { s+=blank; } } else { col=s.length()/n; } string antient[col]; for(int i=0;i<col;i++) { string temp; for(int j=i*n;j<i*n+n;j++) { temp+=s[j]; } antient[i]=temp; } for(int i=0;i<n;i++) { for(int j=col-1;j>=0;j--) { cout<<antient[j][i]; } cout<<endl; } }
40.水过
41.
这个题需要注意的数据的输入,和LIS典型问题-拦截导弹的输入方式是一样的
#include<bits/stdc++.h>//pta 寻找250 using namespace std; int a[9000]; int i=1; int j=1; int main() { std::ios::sync_with_stdio(false); while(j) { scanf("%d",&a[j++]);//注意这里是scanf char ch=getchar(); if(ch=='\n') break; } for(i=1;i<=j;i++) { if(a[i]==250) break; } cout<<i; return 0; }*/
42.
#include<bits/stdc++.h>//pta 日期格式化 using namespace std; int yyyy; int mm; int dd; char ch1; char ch2; int main() { std::ios::sync_with_stdio(false); cin>>mm>>ch1>>dd>>ch2>>yyyy; printf("%d-%02d-%02d",yyyy,mm,dd); return 0; }*/
43.
#include<bits/stdc++.h>//pta 阅览室 using namespace std; struct time{ int num,hour,mit,flag; }a[1005]; void init(){ for(int i=1;i<=1000;i++){ a[i].flag=0; a[i].num=0; a[i].hour=0; a[i].mit=0; } } int main(){ int n,m,h,t,k=1,cnt=0,tag; double sum=0; char ss; scanf("%d",&n); init(); while(n>0){ scanf("%d %c %d:%d",&m,&ss,&h,&t); if(m==0){ if(cnt&&sum) printf("%d %.lf\n",cnt,sum/cnt); else printf("0 0\n"); if(n>1){ k=1;cnt=0;sum=0; init(); } n--; } else if(ss=='S'){ a[k].num=m;a[k].hour=h;a[k].mit=t; k++; } else if(ss=='E'&&k>1){ tag=0; for(int i=1;i<k;i++){ if(a[i].num==m&&a[i].flag==0){ tag=i; a[tag].flag=1; } } if(tag){ sum+=(h-a[tag].hour)*60+t-a[tag].mit; cnt++; } } } return 0; }*/
44.
#include<bits/stdc++.h>//pta 稳赢 using namespace std; int n; int main() { std::ios::sync_with_stdio(false); int n; cin>>n; for(register int i=1;;i++) { string temp; cin>>temp; if(temp=="End") break; if(i%(n+1)==0) { if(temp=="ChuiZi") cout<<"ChuiZi"<<endl; else if(temp=="JianDao") { cout<<"JianDao"<<endl; } else if(temp=="Bu") cout<<"Bu"<<endl; } else { if(temp=="ChuiZi") cout<<"Bu"<<endl; else if(temp=="JianDao") { cout<<"ChuiZi"<<endl; } else if(temp=="Bu") cout<<"JianDao"<<endl; } } return 0; }*/
45.
水
46.
这个题我要讲一讲了,不得不说翁老师出题水平很高,佩服佩服;
算了,专门出篇博客吧
47.
水
48.
考的矩阵乘法运算,今天又给我复习了一下,顺带复习了矩阵快速幂
#include<bits/stdc++.h>//pta 矩阵A*B using namespace std; int r1,c1; int r2,c2; int a[1010][1010]; int b[1010][1010]; int res[1010][1010]; int main() { std::ios::sync_with_stdio(false); cin>>r1>>c1; for(register int i=0;i<r1;i++) { for(register int j=0;j<c1;j++) { cin>>a[i][j]; } } cin>>r2>>c2; for(register int i=0;i<r2;i++) { for(register int j=0;j<c2;j++) { cin>>b[i][j]; } } if(c1==r2) { cout<<r1<<' '<<c2<<endl; for(register int i=0;i<r1;i++) { for(register int j=0;j<c2;j++) { for(register int k=0;k<r2;k++) { res[i][j]+=a[i][k]*b[k][j]; } if(j!=c2-1) cout<<res[i][j]<<' '; else cout<<res[i][j]; } if(i!=r1-1) cout<<endl; } } else printf("Error: %d != %d", c1, r2); return 0; }*/
49.
还没做呢
50.
出篇博客讲讲
本文来自博客园,作者:江上舟摇,转载请注明原文链接:https://www.cnblogs.com/LQS-blog/p/16146219.html