练习整理(1)

ISBN号码:

#include <bits/stdc++.h>
using namespace std;

int main()
{
    string a;
    cin>>a;
    int num=0,sum=0;
    for(int i=0;i<a.length()-1;i++)
    {
        if(a[i]!='-')
        {
            num++;
            sum+=(a[i]-'0')*num;
        }
    }
    char c;
    if(sum%11==10)
    {
        c='X';
    }
    else
    {
        c=sum%11+'0';
    }
    if(c==a[a.length()-1])
    {
        cout<<"Right";
    }
    else
    {
        a[a.length()-1]=c;
        cout<<a;
    }
    return 0;
} 

RELU:

#include<stdio.h>

int relu(int x)
{
    if(x>=0)return x;
    else return 0;
}

int main()
{
    int n;
    int w, score, sum=0;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%d %d",&w,&score);
        sum+=w*score;
    }
    printf("%d",relu(sum));
    return 0;
} 

Z字形扫描:

#include <bits/stdc++.h>
using namespace std;

int a[500][500];
int main()
{
    int n,direction=0;
    //0右 1左下 2下 3右上 
    cin>>n;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            cin>>a[i][j];
        }
    }
    int x=0,y=0,sum=1,temp,flag=0;
    cout<<a[0][0]<<" ";
    while(sum<n*n)
    {
        sum++;
        if(direction==0)
        {
            y++;
        } 
        else if(direction==1)
        {
            x++;
            y--;
        }
        else if(direction==2)
        {
            x++;
        }
        else if(direction==3)
        {
            x--;
            y++;
        } 
        cout<<a[x][y]<<" "; 
        if(n%2==0)
        {
            if(x==n-1&&y==0)flag=1;
        }
        else
        {
            if(x==0&&y==n-1)flag=1;
        }
        if((x==0||y==0||x==n-1||y==n-1)&&flag==0) direction=(direction+1)%4;
        else if((x==0||y==0||x==n-1||y==n-1)&&flag==1)direction=(direction+3)%4;
    } 
    return 0;
}

卖菜:

//卖菜
/*
#include <bits/stdc++.h>
using namespace std;

int a[1002]={0}; 
int main()
{
    int n,b;
    cin>>n;
    for(int i=1;i<=n;i++)
    cin>>a[i];
    for(int i=1;i<=n;i++)
    {
        if(i==1)
        {
            b=(a[i]+a[i+1])/2;
        }
        else if(i==n)
        {
            b=(a[i-1]+a[i])/2;
        }
        else
        {
            b=(a[i-1]+a[i]+a[i+1])/3;
        }
        cout<<b<<" ";
    }
    return 0;
} */

#include <bits/stdc++.h>
using namespace std;

int t[1000000]={0};
int main()
{
    int n;
    int min=1000000,max=1;
    int time=0;
    int a,b;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a>>b;
        if(a<min)min=a;
        if(b-1>max)max=b-1;
        for(int j=a;j<b;j++)
        {
            t[j]++;
        }
    }
    for(int i=0;i<n;i++)
    {
        cin>>a>>b;
        if(a<min)min=a;
        if(b-1>max)max=b-1;
        for(int j=a;j<b;j++)
        {
            t[j]++;
        }
    }
    for(int i=min;i<=max;i++)
    {
        if(t[i]==2)time++;
    }
    cout<<time;
    return 0;
}

出现次数最多的数:

#include <bits/stdc++.h>
using namespace std;

int a[10001]={0};
int main()
{
    int n,t,max=0,j;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>t;
        a[t]++;
        if(a[t]>max)
        {
            max=a[t]; 
        }
    }
    for(j=1;j<=10000;j++)
    {
        if(a[j]==max)break;
    }
    cout<<j;
    return 0;
} 

窗口:

#include <bits/stdc++.h>
using namespace std;

struct window
{
    int x1;
    int x2;
    int y1;
    int y2;
    int num;
    int flag;
};
struct window win[10];

int main()
{
    int n,m,x,y;
    window temp;
    cin>>n>>m;
    for(int i=0;i<n;i++)
    {
        cin>>win[i].x1>>win[i].y1>>win[i].x2>>win[i].y2;
        win[i].num=i+1;
        win[i].flag=n-1-i;
    }
    for(int i=0;i<m;i++)
    {
        cin>>x>>y;
        int j;
        for(j=n-1;j>=0;j--)
        {
            if(x>=win[j].x1&&x<=win[j].x2&&y>=win[j].y1&&y<=win[j].y2)
            {
                cout<<win[j].num<<endl;
                temp=win[j];
                for(int t=j;t<n-1;t++)
                {
                    win[t]=win[t+1];
                } 
                win[n-1]=temp;
                break;
            }
        }
        if(j==-1)cout<<"IGNORED"<<endl;
    }
    return 0;
} 

打酱油:

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n,result;
    cin>>n;
    if(n<30)
    {
        result=n/10;
    }
    else if(n<50)
    {
        result=4+(n-30)/10;
    }
    else
    {
        result=n/50*7+(n-n/50*50)/30*4+(n-n/50*50-(n-n/50*50)/30*30)/10;
    }
    cout<<result;
    return 0;
} 

    

俄罗斯方块:

#include <bits/stdc++.h>
using namespace std;

int g[16][10];
int a[4][4];
int r;
struct aa
{
    int x;
    int y;
};
int main()
{
    for(int i=0;i<15;i++)
    {
        for(int j=0;j<10;j++)
        {
            cin>>g[i][j];
        }
    }
    for(int j=0;j<10;j++)
    {
        g[15][j]=1;
    }
    aa temp[4];
    int t=0;
    for(int i=0;i<4;i++)
    {
        for(int j=0;j<4;j++)
        {
            cin>>a[i][j];
            if(a[i][j]==1)
            {
                temp[t].x=i;
                temp[t].y=j;
                t++;
            }
        }
    }
    cin>>r;
    int d;
    int flag=0;
    for(int i=0;i<=15;i++)
    {
        
        for(int j=0;j<4;j++)
        {
            if(g[temp[j].x+i][temp[j].y+r-1]==1)
            {
                flag=1;
                d=i;
                break;
            }
        } 
        if(flag==1)break;
    } 
    
    for(int i=0;i<4;i++)
    {
        g[temp[i].x+d-1][temp[i].y+r-1]=1;
    }
    for(int i=0;i<15;i++)
    {
        for(int j=0;j<10;j++)
        {
            cout<<g[i][j]<<" ";
        }
        cout<<endl;
    }
    return 0;
} 

分蛋糕:

#include <bits/stdc++.h>
using namespace std;

int a[1000];
int main()
{
    int n,k,result=0,sum=0;
    cin>>n>>k;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    for(int i=0;i<n;i++)
    {
        sum+=a[i];
        if(sum>=k)
        {
            result++;
            sum=0;
        }
    }
    if(sum>0)result++; 
    cout<<result;
    return 0;
} 

工资计算:

#include <bits/stdc++.h>
using namespace std;

float p[7]={0.03,0.1,0.2,0.25,0.3,0.35,0.45};
int b[7]={0,1500,4500,9000,35000,55000,80000}; 
int m[7];
int main()
{
    m[0]=3500;
    for(int i=1;i<7;i++)
    {
        m[i]=m[i-1]+(b[i]-b[i-1])*(1-p[i-1]);
    }
    int t,s;
    cin>>t;
    if(t<=3500)
    {
        cout<<t;
        return 0;
    }
    int i;
    for(i=0;i<7;i++)
    {
        if(t<m[i]) break;
    }
    
    s=(t-m[i-1])/(1-p[i-1])+(3500+b[i-1]);
    cout<<s;
    return 0;
} 

公共钥匙盒:

#include <bits/stdc++.h>
using namespace std;

struct operate
{
    int flag;
    int key;
    int time;
};

bool cmp(operate a,operate b)
{
    if(a.time!=b.time)
    {
        return a.time<b.time;
    }
    else if(a.flag!=b.flag)
    {
        return a.flag<b.flag;
    }
    else
    {
        return a.key<b.key;
    }
}

int main()
{
    int n,k,w,s,c;
    int key[1001];
    cin>>n>>k;
    vector <operate> v;
    for(int i=1;i<=n;i++)
    {
        key[i]=i;
    }
    for(int i=0;i<k;i++)
    {
        cin>>w>>s>>c;
        v.push_back({1,w,s});
        v.push_back({0,w,s+c});
    }
    sort(v.begin(),v.end(),cmp);
    for(vector<operate>::iterator it=v.begin();it!=v.end();it++)
    {
        if(it->flag==0)
        {            
            for(int i=1;i<=n;i++)
            {
                if(key[i]==0)
                {
                    key[i]=it->key;
                    break;
                }
            }            
        }
        else
        {
            for(int i=1;i<=n;i++)
            {
                if(key[i]==it->key)
                {
                    key[i]=0;
                    break;
                }
            }    
        }
    }
    for(int i=1;i<=n;i++)
    {
        cout<<key[i]<<" ";
    }
    return 0;
} 

红黄绿灯:

#include <bits/stdc++.h>
using namespace std;

int main()
{
    long long light[3],n,a,b,s,result=0;
    cin>>light[0]>>light[2]>>light[1]>>n;
    long long sum=light[0]+light[1]+light[2];
    while(cin>>a>>b)
        if(a==0)result+=b;
        else
        {
            if(a==1)a=0;
            else if(a==3)a=1;
            s=(light[a]-b+result)%sum;
            while(s>=light[a])
            {
                s-=light[a];
                a=(a+1)%3;
            }
            b=light[a]-s;
            if(a==0)//红灯 
               {
                result+=b;
            }
            else if(a==2)//黄灯 
            {
                result+=(b+light[0]);
            }
        }
    cout<<result;
    return 0;    
}     

画图:

#include <bits/stdc++.h>
using namespace std;

int a[101][101]={0};
int main()
{
    int n;
    int sum=0;
    int x1,y1,x2,y2;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>x1>>y1>>x2>>y2;
        for(int j=x1+1;j<=x2;j++)
        {
            for(int t=y1+1;t<=y2;t++)
            {
                if(a[j][t]==0)
                {
                    sum++;
                    a[j][t]=1;
                }
            }
        }
    }
    cout<<sum;
    return 0;
}

火车购票:

#include <bits/stdc++.h>
using namespace std;

int a[20]={0};
int main()
{
    int n,p;
    int i;
    cin>>n;
    while(n--)
    {
        cin>>p;
        for(i=0;i<20;i++)
        {
            if(p+a[i]<=5)
            {
                for(int j=0;j<p;j++)
                {
                    cout<<i*5+a[i]+1+j<<" ";
                }
                cout<<endl;
                a[i]+=p;
                break;
            }
        }
        if(i==20)
        {
            for(int j=0;j<20;j++)
            {
                while(a[j]<5)
                {
                    ++a[j];
                    cout<<j*5+a[j]<<" ";
                    p--;
                    if(p==0)break;
                }
                if(p==0)break;
            }
            cout<<endl;
        }
    }
    return 0;
} 
原文地址:https://www.cnblogs.com/precious112/p/14719937.html