T1 number
#include<bits/stdc++.h>
using namespace std;
string s;
int ans[10];
int main(){
freopen("number.in","r",stdin);
freopen("number.out","w",stdout);
cin>>s;
for(int i=0;i<(int)s.length();i++){
if(s[i]>='0' && s[i]<='9'){
ans[s[i]-'0']++;
}
}for(int i=9;i>=0;i--){
for(int j=1;j<=ans[i];j++)cout<<i;
}
return 0;
}
简单的计数+输出
T2 seat
其实只是一个数论,考试脑抽写了个递归
#include<bits/stdc++.h>
using namespace std;
int n,m,r;
int a[105];
bool cmp(int asd,int qwe){
return asd>qwe;
}
void dfs(int x,int y,int step){
if(step==r){
cout<<y<<" "<<x;
return;
}
if(y%2==1 && x!=n)dfs(x+1,y,step+1);
else if(y%2==0 && x!=1)dfs(x-1,y,step+1);
else if(y%2==1 && x==n)dfs(x,y+1,step+1);
else if(y%2==0 && x==1)dfs(x,y+1,step+1);
return;
}
int main(){
freopen("seat.in","r",stdin);
freopen("seat.out","w",stdout);
cin>>n>>m;
for(int i=1;i<=n*m;i++){
cin>>a[i];
}
r=a[1];
sort(a+1,a+n*m+1,cmp);
for(int i=1;i<=n*m;i++){
if(a[i]==r){
r=i;
break;
}
}
dfs(1,1,1);
return 0;
}
T3 xor
考试代:
#include<bits/stdc++.h>
using namespace std;
int n,k,ans;
int a[500005];
int main(){
freopen("xor.in","r",stdin);
freopen("xor.out","w",stdout);
cin>>n>>k;
for(int i=1;i<=n;i++)cin>>a[i];
//30'
if(k==0){
int i;
for(i=1;i<=n;i++){
if(a[i]==0)ans++;
if(a[i]==1 && a[i+1]==1){
i++;
ans++;
}
}
}else{
int i;
for(i=1;i<=n;i++){
if(a[i]==1)ans++;
/*
if(a[i]==0 && a[i+1]==0){
i++;
ans++;
}
*/
}
}
cout<<ans;
return 0;
}
T4 polygon
考试以为能拿36’,结果只拿了12‘
后来才知道dfs暴力能拿40’(QWQ)
考场代码
#include<bits/stdc++.h>
using namespace std;
int n;
int a[5005];
bool cmp(int qweasd,int asdzxc){
return qweasd<asdzxc;
}
int C(int up,int down){
int fz=1,fm=1;
int flag;
flag=down;
for(int i=1;i<=up;i++){
fz=fz*flag;
flag--;
}flag=up;
for(int i=1;i<=up;i++){
fm=fm*flag;
flag--;
}
//cout<<fm<<" "<<fz<<" ";
return fz/fm;
}
int main(){
freopen("polygon.in","r",stdin);
freopen("polygon.out","w",stdout);
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}sort(a+1,a+n+1,cmp);
//36'
int ans=0;
if(a[1]==a[n] && a[1]==1){
//cout<<"if1"<<" ";
for(int i=3;i<=n;i++){
ans+=C(i,n);
//cout<<ans<<endl;
}cout<<ans;
}else if(n<=2) cout<<0;
else{
//12
if(a[1]+a[2]+a[3]>a[3]*2)cout<<1;
else cout<<0;
}
return 0;
}
J考了多少分???
0~99
100~199
200~299
300~400
没考



![表情[zhayanjian]-LZM's Blog](https://lzm.zdzl.ac.cn/wp-content/themes/zibll/img/smilies/zhayanjian.gif)
![表情[zhuakuang]-LZM's Blog](https://lzm.zdzl.ac.cn/wp-content/themes/zibll/img/smilies/zhuakuang.gif)

