PTA 520 钻石争霸赛 2022

PTA 520 钻石争霸赛 2022

7-1 520表白

原题

在这里插入图片描述

算法标签 模拟

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 505;
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n;
    cin>>n;
    cout<<n<<"! "<<520<<"!";
    return 0;
}

7-2 分糖豆

原题

在这里插入图片描述
在这里插入图片描述

算法标签 模拟

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 505;
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n,m,k;
    cin>>n>>m>>k;
    if(n*k==m){
        cout<<"zheng hao mei ren "<<k<<"!";
    }
    else if(n*k-m<0){
        cout<<"hai sheng "<<abs(n*k-m)<<"!";
    }
    else{
        //cout<<"hai cha "<<abs(n*k-m)<<"!";
        cout<<"hai cha "<<n*k-m<<"!";
    }
    return 0;
}

7-3 约会App

原题

在这里插入图片描述
在这里插入图片描述

算法标签 模拟

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 505;
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int a, b ,c ,d, e1;
    cin>>a>>b>>c>>d>>e1;
    int n;
    cin>>n;
    while(n--){
        int e,f,g;
        cin>>e>>f>>g;
        if(a!=e&&f>=b&&f<=c&&g>=d&&g<=e1){
            cout<<e<<" "<<f<<" "<<g<<"\n";
        }
    }
    return 0;
}

7-4 关于奇数的等式

原题

在这里插入图片描述
在这里插入图片描述

算法标签 模拟

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 505;
bool f(int x, int y, int z,int n){
    if(x*y*z*3==(x*y+y*z+x*z)*n&&x%2&&y%2&&z%2){
        return true;
    }
    return false;
}
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n,m;
    cin>>n>>m;
    bool flag=false;
    for(int i=0;i<=m;++i){
        for(int j=i+1;j<=m;++j){
            for(int k=j+1;k<=m;++k){
                if(f(i,j,k,n)){
                    flag=true;
                    cout<<i<<" "<<j<<" "<<k;
                    break;
                }
            }
            if(flag){
                break;
            }
        }
        if(flag){
            break;
        }
    }
    if(!flag){
        cout<<"No solution in (3, "<<m<<"].\n";
    }
    return 0;
}

7-5 我侬数

原题

在这里插入图片描述
在这里插入图片描述

算法标签 模拟

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 505;
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    unordered_map<int,int> mp,tmp;
    string a,b;
    cin>>a>>b;
    for(int i=0;i<a.size();++i){
        mp[a[i]-'0']++;        
    }
    for(int i=0;i<b.size();++i){
        mp[b[i]-'0']++;        
    }
    for(int i=0;i<mp.size();++i){
        tmp[i]=mp[i];   
    }
    string c,d;
    while(cin>>c>>d&&c!="0"&&d!="0"){
        int flag=false;
        int num1=0;
        int num2=0;
        // 去除前导零 
        for(int i=0;i<c.size();++i){
            if(c[i]!='0'){
                num1=i;
                break;
            }
        }
        // 若都为零, 最后一个零需要记录
        if(num1==c.size()-1){
            mp[0]--;
        }
       	// 数字出现次数是否一致
        for(int i=num1;i<c.size();++i){
            int a1=mp[c[i]-'0']--;
            if(a1<0){
                flag=true;   
            }
        }
        for(int i=0;i<c.size();++i){
            if(d[i]!='0'){
                num2=i;
                break;
            }
        }
        if(num2==d.size()-1){
            mp[0]--;
        }
        for(int i=num2;i<d.size();++i){
            int b1=mp[d[i]-'0']--;
            if(b1<0){
                flag=true;   
            }
        }
        for(int i=0;i<mp.size();++i){
            if(mp[i]){
                flag=true;
            }   
        }
        if(flag){
            cout<<"No"<<"\n";
        }
        else{
            cout<<"Yes"<<"\n";
        }
        // 重新赋值
        for(int i=0;i<mp.size();++i){
            mp[i]=tmp[i];   
        }
    }
    return 0;
}

7-6 非诚勿扰

原题

在这里插入图片描述
在这里插入图片描述

算法标签 模拟

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 10005;
const double e = 2.718;
int a[N];
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n;
    cin>>n;
    for(int i=0;i<n;++i){
        cin>>a[i];
    }
    int cute=0, cuteid=0;
    for(int i=0;i<n/e;++i){
        if(a[i]>cute){
            cute=a[i];
            cuteid=i;
        }
    }
    bool flag=false;
    int mx=0,mxid=0, t=0, tid=0;
    for(int i=0;i<n;++i){
        if(a[i]>cute&&!flag){
            flag=true;
            t=a[i];
            tid=i;
        }
        if(a[i]>=cute){
            mx=a[i];
            mxid=i;
        }
    }
    if(tid)cout<<tid + 1<<" "<<mxid + 1<<"\n";
    else{
        cout<<tid<<" "<<mxid + 1<<"\n";
    }
    return 0;
}

7-7 新式六合彩

原题

在这里插入图片描述
在这里插入图片描述

算法标签 模拟

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1005;
int a[N][N];
vector<int> x, y;
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n,m;
    cin>>n>>m;
    for(int i=0;i<n;++i){
        for(int j=0;j<m;++j){
            cin>>a[i][j];
        }
    }
    int r, c, num;
    cin>>r>>c>>num;
    int mn=0x3f3f3f3f;
    for(int j=0;j<m;++j){
        if(a[r-1][j]!=-1){
            if(abs(a[r-1][j]-num)< mn){
                mn = abs(a[r-1][j]-num);
            }
        }    
    }
    for(int i=0;i<n;++i){
        if(a[i][c-1]!=-1){
            if(abs(a[i][c-1]-num)<mn){
                mn = abs(a[i][c-1]-num);
            }
        }
    }
    for(int j=0;j<n;++j){
        if(abs(a[r-1][j]-num)==mn){
            x.push_back(r-1);
            y.push_back(j);
        }
    }
    for(int i=0;i<m;++i){
        if(abs(a[i][c-1]-num)==mn){
            x.push_back(i);
            y.push_back(c-1);
        }
    }
    for(int i=0;i<x.size();++i){
        cout<<"("<<x[i]+1<<":"<<y[i]+1<<")"<<"\n";
    }
    return 0;
}

7-8 521序列

原题

在这里插入图片描述
在这里插入图片描述

算法标签 模拟

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 100005;
int a[N];
vector<int> vec;
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n;
    cin>>n;
    for(int i=0;i<n;++i){
        cin>>a[i];
    }
    for(int i=0;i<n;++i){
        int b=a[i];
        int c=a[i]/2;
        int d=a[i]/5;
        if(c*2==a[i]){
            vec.push_back(c);
        }
        if(d*5==a[i]){
            vec.push_back(d);
        }
    }
    sort(vec.begin(), vec.end());
    vec.erase(unique(vec.begin(), vec.end()), vec.end());
    reverse(vec.begin(), vec.end());
    for(auto vv:vec){
        cout<<vv<<" ";
    }
    return 0;
}

请添加图片描述
呜呜呜,真正意义上并没有难题, 几乎都是模拟, 但是只有一个小时,想拿高分并不容易。
原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

飞滕人生TYF

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

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

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

打赏作者

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

抵扣说明:

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

余额充值