团体程序设计天梯赛--20分题

L1-002 打印沙漏

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,x,y,z,i,j,k;char c;
    cin>>n>>c;
    x=sqrt((n+1)/2);y=x-1;
    for(i=x;i>=1;i--){
        for(j=0;j<x-i;j++)cout<<' ';
        for(k=0;k<2*i-1;k++)cout<<c;
        cout<<endl;
    }
    for(i=1;i<=y;i++){
        for(j=0;j<y-i;j++)cout<<" ";
        for(k=0;k<2*i+1;k++)cout<<c;
        cout<<endl;
    }
    z=n-(2*x*x-1);
    cout<<z;
    return 0;
}

L1-006 连续因子

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,x,i,j,d=0,a=1;
    cin>>n;
    x=n;
    for(i=2;i<=sqrt(n)+1;i++){
        if(n%i)continue;
        a=1;
        for(j=i;j<=n/2;j++){
            a*=j;
            if(n%a||a>n)break;
        }
        if(j-i>d){
            d=j-i;
            x=i;
        }
    }
    if(d==0)cout<<"1\n"<<x;
    else {cout<<d<<endl<<x;
    for(i=x+1;i<x+d;i++)cout<<"*"<<i;}
    return 0;
}

L1-009 N个数求和

#include<bits/stdc++.h>
using namespace std;
int main(){
    long long a,b,x,y,n;
    cin>>n;
    scanf("%lld/%lld",&a,&b);
    for(int i=1;i<n;i++){
        scanf("%lld/%lld",&x,&y);
        a=a*y+b*x;
        b=b*y;
        for(long long j=b;j>=2;j--){
            if(a%j==0&&b%j==0){
                a/=j;b/=j;
            }
        }
    }
        if(a>b&&a%b)printf("%lld %lld/%lld",a/b,a%b,b);
        else if(a%b==0)printf("%lld",a/b);
        else printf("%lld/%lld",a,b);
    return 0;
}

L1-011 A-B

#include<bits/stdc++.h>
using namespace std;
int main(){
    string a,b;
    getline(cin,a);
    getline(cin,b);
    for(int i=0;i<a.size();i++){
        int k=0;
        for(int j=0;j<b.size();j++){
            if(a[i]==b[j])k=1;
        }
        if(k==0)cout<<a[i];
    }
    return 0;
}

L1-020 帅到没朋友

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,k,m,x=0;
    map<string,int>a;
    string s;
    cin>>n;
    while(n--){
        cin>>k;
        if(k==1){cin>>s;continue;}
        while(k--){cin>>s;a[s]=1;}
    }cin>>m;
    while(m--){
        cin>>s;
        if(a[s]==0){
            x++;
            if(x!=1)cout<<' ';
            cout<<s;
            a[s]=1;
        }
    }
    if(x==0)cout<<"No one is handsome";
    return 0;
}

L1-023 输出GPLT

#include<bits/stdc++.h>
using namespace std;
int main(){
      int g=0,p=0,l=0,t=0;
    string s;
    cin>>s;
    for(int i=0;i<s.size();i++){
        if(s[i]=='g'||s[i]=='G')g++;
        if(s[i]=='p'||s[i]=='P')p++;
        if(s[i]=='l'||s[i]=='L')l++;
        if(s[i]=='t'||s[i]=='T')t++;
    }
    while(g||p||l||t){
        if(g){cout<<"G";g--;}
        if(p){cout<<"P";p--;}
        if(l){cout<<"L";l--;}
        if(t){cout<<"T";t--;}
    }
    return 0;
}

L1-027 出租

#include<bits/stdc++.h>
using namespace std;
int main(){
      string s;int j=0,b[20],i;
     map<int,int>a,c;
    cin>>s;
    for(i=0;i<s.size();i++){
        if(a[s[i]-'0']==0&&c[i]==0){b[j++]=s[i]-'0';c[i]=1;a[s[i]-'0']=1;}
    }
    cout<<"int[] arr = new int[]{";
    sort(b,b+j);
    for(i=j-1;i>=0;i--){
        if(i!=j-1)cout<<",";
        cout<<b[i];
    }cout<<"};\n";
    cout<<"int[] index = new int[]{";
    for(i=0;i<s.size();i++){
        if(i)cout<<",";
        for(int k=j-1;k>=0;k--){
            if((s[i]-'0')==b[k]){cout<<abs(j-k-1);break;}
        }
    }cout<<"};";
    return 0;
}

L1-032 Left-pad

#include<bits/stdc++.h>
using namespace std;
int main(){
     int n,i;char c;string s;
    cin>>n>>c;
    getchar();
    getline(cin,s);
    int x=n-s.size();
    if(x>=0){while(x--)cout<<c;cout<<s;}
    else{for(i=s.size()-n;i<s.size();i++)cout<<s[i];}
    return 0;
}   

L1-034 点赞

#include<bits/stdc++.h>
using namespace std;
int main(){
     int n,k,x,y=0,z;map<int,int>a;
    cin>>n;
    while(n--){
        cin>>k;
        while(k--){
            cin>>x;
            a[x]++;
        }
    }
    map<int,int>::iterator i;
    for(i=a.begin();i!=a.end();i++){
        if(i->second>y){y=i->second;z=i->first;}
        if(i->second==y&&i->first>y)z=i->first;
    }cout<<z<<' '<<a[z];
    return 0;
}   

L1-039 古风排版

#include<bits/stdc++.h>
using namespace std;
int main(){
        int n,i,j,k=0,x;string s;
    cin>>n;
    getchar();
    getline(cin,s);
    if(s.size()%n==0)x=s.size()/n;
    else x=s.size()/n+1;
    char a[105][1005];
    int y=x*n-s.size();
    while(y--)
    s+=" ";
    for(j=x;j>=1;j--){
        for(i=1;i<=n;i++){
                a[i][j]=s[k++];
        }
    }
    for(i=1;i<=n;i++){
        for(j=1;j<=x;j++)
            cout<<a[i][j];
        cout<<endl;
    }
    return 0;
}   

 L1-043 阅览室

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,a,c,d,m=0,m1=0;char b;double t=0;
    map<int,int>x,y;
    cin>>n;
    while(scanf("%d %c %d:%d",&a,&b,&c,&d)!=EOF){
         
        
        if(a==0){
            t=1.0*m1/m;
            if(m==0){cout<<"0 0\n";continue;}
            printf("%d %.0f\n",m,t);
            m=0,m1=0,t=0;
            x.clear();y.clear();
             
        }
        if(b=='S'){
            y[a]=c*60+d;
            x[a]=1;
        }
        if(x[a]==1&&b=='E'){
            x[a]=0;m++;m1+=c*60+d-y[a];
        }
        
    }
    return 0;
}

L1-046 整除光棍

#include<bits/stdc++.h>
using namespace std;
int main(){
    int x,s=1,n=1,y;
    cin>>x;
    while(x>s){
        s=s*10+1;
        n++;
    }
    while(s%x){
        n++;
        cout<<s/x;
        s=s%x*10+1;
    }cout<<s/x<<' '<<n;
    return 0;
}

 L1-049 天梯赛座位分配

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,m,x=1,max=0,i,j,k=-1,a[105][105],b[105][105]={0},s=0;
    cin>>n;
    for(i=0;i<n;i++){
        cin>>m;
        if(m>max)max=m;
        for(j=0;j<10*m;j++)
            b[i][j]=1;
    }
    for(i=0;i<10*max;i++){
        for(j=0;j<n;j++){
            if(b[j][i]){
                if(j!=k){
                    a[j][i]=x++;
                    k=j;
                }
                else{
                    x+=1;
                    a[j][i]=x++;
                    k=j;
                }
            }
        }
    }
    for(i=0;i<n;i++){
        cout<<"#"<<i+1<<endl;
        for(j=0;j<10*max;j++){
            if(a[i][j])
            {s++;
            if((j+1)%10!=1)cout<<' ';
            cout<<a[i][j];
            if(s%10==0){cout<<endl;s=0;}}
        }
    }
    return 0;
}

L1-056 猜数字

#include<bits/stdc++.h>
using namespace std;
struct xx{
    string a;
    int b; 
}s[10005];
int main(){
     int n,i,c=0,y=100;string x;
    cin>>n;
    for(i=0;i<n;i++){
        cin>>s[i].a>>s[i].b;
        c+=s[i].b;
    }
    c/=(2*n);
    for(i=0;i<n;i++){
        if(abs(s[i].b-c)<y){y=abs(s[i].b-c);x=s[i].a;}
    }cout<<c<<' '<<x;
    return 0;
}

L1-059 敲笨钟

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,i,j,k,x,y;string s;
    cin>>n;
    getchar();
    while(n--){
        k=0,x=0,y=0;
        getline(cin,s);
        for(i=0;i<s.size();i++)
            if(s[i]==','&&s[i-1]=='g'&&s[i-2]=='n'&&s[i-3]=='o')x=1;
        for(i=0;i<s.size();i++)
            if(s[i]=='.'&&s[i-1]=='g'&&s[i-2]=='n'&&s[i-3]=='o')y=1;
        if(x==1&&y==1) {
            for(i=s.size()-1;i>=0;i--)
                {
                if(s[i]==' ')k++;
                if(k==3){j=i;break;}
                }
        for(i=0;i<=j;i++)cout<<s[i];
        cout<<"qiao ben zhong.\n";
        }
        else cout<<"Skipped\n";
    }
    return 0;
}

L1-064 估值一亿的AI核心代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    string s;
    cin>>n;
    getchar();
    while(getline(cin,s)){
        cout<<s<<endl<<"AI: ";
        s=regex_replace(s,regex(R"(\s+)")," ");
        s=regex_replace(s,regex(R"(^\s+|\s+$|\s+(?=\W))"),"");
        s=regex_replace(s,regex(R"(\bI\b)"),"mark_mark");
        for(int i=0;i<s.size();i++)
            if(s[i]!='I')s[i]=tolower(s[i]);
        s=regex_replace(s,regex(R"(\bcan you\b)"),"I can");
        s=regex_replace(s,regex(R"(\bcould you\b)"),"I could");
        s=regex_replace(s,regex(R"(mark_mark|\bme\b)"),"you");
        s=regex_replace(s,regex(R"(\?)"),"!");
        cout<<s<<endl;
    }
    return 0;
}

L1-071 前世档案

#include<bits/stdc++.h>
using namespace std;
int main(){
           int n,m,x,i,y,z;string b;
    cin>>n>>m;
    x=pow(2,n);
    while(m--)
   {
    cin>>b;
        z=1;y=x;
        for(i=0;i<b.size();i++){
            if(b[i]=='n'){z+=(y/2);}
            y/=2;
        }
        cout<<z<<endl;
    }
    return 0;
}   

L1-072 刮刮彩票

#include<bits/stdc++.h>
using namespace std;
int main(){
    int i,j,x,y,z,a[5][5],x1,y1,c[10]={0},d=0;
    int b[20]={10000,36,720,360,80,252,108,72,54,180,72,180,119,36,306,1080,144,1800,3600};
    for(i=1;i<=3;i++){
        for(j=1;j<=3;j++)
            {cin>>a[i][j];
             c[a[i][j]]=1;
            if(a[i][j]==0){x1=i,y1=j;}
            }
    }
     for(i=1;i<=9;i++)if(c[i]==0)a[x1][y1]=i;
     for(i=1;i<=3;i++){
         cin>>x>>y;
         cout<<a[x][y]<<endl;
     }cin>>z;
    if(z==1)d=a[1][1]+a[1][2]+a[1][3];
    if(z==2)d=a[2][1]+a[2][2]+a[2][3];
    if(z==3)d=a[3][1]+a[3][2]+a[3][3];
    if(z==4)d=a[1][1]+a[2][1]+a[3][1];
    if(z==5)d=a[1][2]+a[2][2]+a[3][2];
    if(z==6)d=a[1][3]+a[2][3]+a[3][3];
    if(z==7)d=a[1][1]+a[2][2]+a[3][3];
    if(z==8)d=a[3][1]+a[2][2]+a[1][3];
    cout<<b[d-6];
    return 0;
}   

L1-079 天梯赛的善良

#include<bits/stdc++.h>
using namespace std;
int main(){
       int n,a[20005],i;map<int,int>b;
    cin>>n;
    for(i=0;i<n;i++){cin>>a[i];b[a[i]]++;}
    sort(a,a+n);
    cout<<a[0]<<' '<<b[a[0]]<<endl;
    cout<<a[n-1]<<' '<<b[a[n-1]];
    return 0;
}

L1-080 乘法口诀数列

#include<bits/stdc++.h>
using namespace std;
int main(){
       int a,b,n,i=0,x;string s;
    cin>>a>>b>>n;
    x=n;
s+=to_string(a);s+=to_string(b);
    while(n--){
        s+=to_string((s[i]-'0')*(s[i+1]-'0'));
        i++;
    }
    for(int j=0;j<x;j++){
        if(j)cout<<' ';
        cout<<s[j];
    }
    return 0;
}

L1-087 机工士姆斯塔迪奥

#include<bits/stdc++.h>
using namespace std;
int main(){
       int n,m,q,x,y,i,j;
    cin>>n>>m>>q;
    int a=0,b=0;
    map<int,int>p[1005];
    while(q--){
        cin>>x>>y;
        if(p[x][y]==0)
       {if(x==0)a++;
        else b++;
        p[x][y]=1;}
    }
     cout<<n*m-(a*m+b*n-a*b);
   return 0;
}

L1-088 静静的推荐

#include<bits/stdc++.h>
using namespace std;
int main(){
        int n,k,s,z=0,x,y;map<int,int>b;
    cin>>n>>k>>s;
    while(n--){
        cin>>x>>y;
        if(x>=175&&y>=s)z++;
        else b[x]++;
    }
    for(int i=175;i<=290;i++){
        if(b[i]<k)z+=b[i];
        else z+=k;
    }cout<<z;
   return 0;
}

L4-108 谷歌的招聘

#include<bits/stdc++.h>
using namespace std;
int ss(int a){
    if(a<=1)return 1;
    for(int i=2;i<=sqrt(a);i++){
        if(a%i==0)return 1;
    }
    return 0;
}
int main(){
        int l,k,i,j,x,y=0;
    cin>>l>>k;
    string n;
     cin>>n;
    for(i=0;i<l;i++){
        x=0; string a;
        for(j=i;j<i+k;j++){
            x=x*10+(n[j]-'0');
             a+=n[j];
        }
        if(ss(x)==0){y=1;cout<<a;break;}
    }
    if(y==0)cout<<"404";
   return 0;
}

L4-113 编程团体赛

#include<bits/stdc++.h>
using namespace std;
int main(){
       int n,a,c,d,x,y=0;char b;map<int,int>p;
    cin>>n;
    while(n--){
        cin>>a>>b>>c>>d;
        p[a]+=d;
        if(p[a]>y){x=a;y=p[a];}
    }cout<<x<<' '<<y;
   return 0;
}

L4-117 矩阵列平移

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,k,x,i,j,a[105][105],b[105][105],y=0,z;
    cin>>n>>k>>x;
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++)
            cin>>a[i][j];
    }
        for(j=1;j<=n;j++){
            if(j%2==0){
                y++;
                for(z=1;z<=y;z++)
                b[z][j]=x;
                for(z=y+1;z<=n;z++)
                    b[z][j]=a[z-y][j];
                if(y==k)y=0;
            }
            else {
                for(i=1;i<=n;i++)
                b[i][j]=a[i][j];
            }
        }
    for(i=1;i<=n;i++){
        int s=0;
        for(j=1;j<=n;j++)
        {
            s+=b[i][j];
        }
        if(i!=1)cout<<' ';
        cout<<s;
    }
    return 0;
}

L4-118 均是素数

#include<bits/stdc++.h>
using namespace std;
int ss(int x){
    if(x==1)return 1;
    for(int i=2;i<=sqrt(x);i++){
        if(x%i==0)return 1;
    }
    return 0;
}
int main(){
    int m,n,i,j,k,s=0,a[1005],b=0;
    cin>>m>>n;
    for(i=m;i<=n;i++){
        if(ss(i)==0)a[b++]=i;
    }
    for(i=0;i<b;i++){
        for(j=i+1;j<b;j++){
            for(k=j+1;k<b;k++){
if(ss(a[i]*a[j]+a[k])==0&&ss(a[j]*a[k]+a[i])==0&&ss(a[i]*a[k]+a[j])==0)
                  s++;
            }
        }
    }cout<<s;
    return 0;
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星河欲转。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值