T1
数字配对
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
int n,num[10001],m,a[5001];
int main(){
cin>>n;
m=n/2;
for(int i=1;i<=n;i++)cin>>num[i];//正常输入
sort(num + 1,num+n+1);//排个序
int max=num[1];//存放ans
for (int i=1;i<=m;i++)
if(num[i]+num[n-i+1]>=max){
max=num[i]+num[n-i+1];
}
cout<<max<<endl;//末尾换行
return 0;
}
T2
选票统计
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm> using namespace std; long long bj,n,shu; long long a[10005]; int main(){ scanf("%lld",&n); for(int i=0;i<n;i++){ cin>>a[i]; } sort(a,a+n); for(int i=0;i<n;i++){ if(a[i]!=a[i-1]){ if(shu>n/4) { cout<<a[i-1]<<endl; bj=1; } shu=1; }else{ shu++; } } if(shu>n/4){ cout<<a[n-1]<<endl; bj=1; } if(bj==0){ cout<<"No such person."<<endl; } return 0; }
T3
成绩单
这个题没什么好说的,就是多注意细节
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
int n,k[17];
string h[130001];
struct Per{
string name;
int num;
};Per p[130001];
int cmp(Per a,Per b){
return a.name<b.name;
}
int main(){
cin>>n;
for (int i=0;i<n;i++)
cin>>p[i].name>>p[i].num;
sort(p,p+n,cmp);
for (int i=0;i<n;i++){
if (p[i].num>=1&&p[i].num<=9)
k[1]++;
else if (p[i].num >= 10 && p[i].num <= 19)
k[2] ++;
else if (p[i].num >= 20 && p[i].num <= 29)
k[3] ++;
else if (p[i].num >= 30 && p[i].num <= 39)
k[4] ++;
else if (p[i].num >= 40 && p[i].num <= 49)
k[5] ++;
else if (p[i].num >= 50 && p[i].num <= 59)
k[6] ++;
else if (p[i].num >= 60 && p[i].num <= 69)
k[7] ++;
else if (p[i].num >= 70 && p[i].num <= 79)
k[8] ++;
else if (p[i].num >= 80 && p[i].num <= 89)
k[9] ++;
else if (p[i].num >= 90 && p[i].num <= 99)
k[10] ++;
else if (p[i].num >= 100 && p[i].num <= 109)
k[11] ++;
else if (p[i].num >= 110 && p[i].num <= 119)
k[12] ++;
else if (p[i].num >= 120 && p[i].num <= 129)
k[13] ++;
else if (p[i].num >= 130 && p[i].num <= 139)
k[14] ++;
else if (p[i].num >= 140 && p[i].num <= 149)
k[15] ++;
else if (p[i].num == 150)
h[k[16] ++] = p[i].name;
}
cout<<"1~9 10~19 20~29 30~39 40~49 50~59 60~69 70~79 80~89 90~99 100~109 110~119 120~129 130~139 140~149 ";
for(int i=1;i<=14;i++)
cout<<k[i]<<" ";
cout<<k[15]<<endl;
for(int i=0;i<n;i++)
cout<<p[i].name<<" "<<p[i].num<<endl;
cout<<k[16]<<endl;
if (k[16]==0)
cout<<"No ";
else
for(int i=0;i<k[16];i++)cout<<h[i]<<endl;
return 0;
}
T4
字符串的修改
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm> using namespace std; long long dp[1005][1005],ac,bc,bj; char a[1005],b[1005]; int main(){ cin>>a+1>>b+1; ac=strlen(a+1); bc=strlen(b+1); for(int i=1;i<=ac;i++){//切记初始化 dp[i][0]=0; } for(int i=1;i<=bc;i++){ dp[0][i]=i; } for(int i=1;i<=ac;i++){ for(int j=1;j<=bc;j++){ if(a[i]==b[j]){ bj=0; }else{ bj=1; } dp[i][j]=min(dp[i-1][j-1]+bj,min(dp[i][j-1]+1,dp[i-1][j]+1)); } } cout<<dp[ac][bc]<<endl; return 0; }