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

L1-002 打印沙漏

#include
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

L1-006 连续因子

#include
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"<

L1-009 N个数求和

#include
using namespace std;
int main(){
    long long a,b,x,y,n;
    cin>>n;
    scanf("%lld/%lld",&a,&b);
    for(int i=1;i=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
using namespace std;
int main(){
    string a,b;
    getline(cin,a);
    getline(cin,b);
    for(int i=0;i

L1-020 帅到没朋友

#include
using namespace std;
int main(){
    int n,k,m,x=0;
    mapa;
    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<

L1-023 输出GPLT

#include
using namespace std;
int main(){
      int g=0,p=0,l=0,t=0;
    string s;
    cin>>s;
    for(int i=0;i

L1-027 出租

#include
using namespace std;
int main(){
      string s;int j=0,b[20],i;
     mapa,c;
    cin>>s;
    for(i=0;i=0;i--){
        if(i!=j-1)cout<<",";
        cout<=0;k--){
            if((s[i]-'0')==b[k]){cout<

L1-032 Left-pad

#include
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<

L1-034 点赞

#include
using namespace std;
int main(){
     int n,k,x,y=0,z;mapa;
    cin>>n;
    while(n--){
        cin>>k;
        while(k--){
            cin>>x;
            a[x]++;
        }
    }
    map::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<

L1-039 古风排版

#include
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<

 L1-043 阅览室

#include
using namespace std;
int main(){
    int n,a,c,d,m=0,m1=0;char b;double t=0;
    mapx,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
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<

 L1-049 天梯赛座位分配

#include
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>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

L1-056 猜数字

#include
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>s[i].a>>s[i].b;
        c+=s[i].b;
    }
    c/=(2*n);
    for(i=0;i

L1-059 敲笨钟

#include
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=0;i--)
                {
                if(s[i]==' ')k++;
                if(k==3){j=i;break;}
                }
        for(i=0;i<=j;i++)cout<

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

#include
using namespace std;
int main(){
    int n;
    string s;
    cin>>n;
    getchar();
    while(getline(cin,s)){
        cout<

L1-071 前世档案

#include
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

L1-072 刮刮彩票

#include
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<>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<

L1-079 天梯赛的善良

#include
using namespace std;
int main(){
       int n,a[20005],i;mapb;
    cin>>n;
    for(i=0;i>a[i];b[a[i]]++;}
    sort(a,a+n);
    cout<

L1-080 乘法口诀数列

#include
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

L1-087 机工士姆斯塔迪奥

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

L1-088 静静的推荐

#include
using namespace std;
int main(){
        int n,k,s,z=0,x,y;mapb;
    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]

L4-108 谷歌的招聘

#include
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

L4-113 编程团体赛

#include
using namespace std;
int main(){
       int n,a,c,d,x,y=0;char b;mapp;
    cin>>n;
    while(n--){
        cin>>a>>b>>c>>d;
        p[a]+=d;
        if(p[a]>y){x=a;y=p[a];}
    }cout<

L4-117 矩阵列平移

#include
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<

L4-118 均是素数

#include
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

你可能感兴趣的:(天梯赛题集,c++,算法)