2022河南萌新联赛第(一)场:河南工业大学

先补完,题解有空再写,加深印象。


题目链接

A Alice and Bob

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <cstring>

using namespace std;

long long n,x;
long long cnt;
int b;
int main(){
    cin>>n;
    bool f=0;
    x=n;
    for(int i=2;i<=x/i;i++){
        b=0;
        while(!(n%i)){b++;n=n/i;}
        if(b&&b!=1) f=1; 
        cnt^=b;
    }
    if(n!=1) cnt^=1;
    if(!cnt||f) cout<<"Alice win";
    else cout<<"Bob win";
}

B 打对子

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <cstring>

using namespace std;
const int N=30;

int n;
bool v1[N];
bool v2[N];
int a1,a2;
char c;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>c;
        if(v1[c-'A']){
            a1--;
            v1[c-'A']=0;
        }
        else{
            v1[c-'A']=1;
            a1++;
        }
    }
    for(int i=1;i<=n;i++){
        cin>>c;
        if(v2[c-'A']){
            a2--;
            v2[c-'A']=0;
        }
        else{
            v2[c-'A']=1;
            a2++;
        }
    }
    cout<<a1<<endl;
    if(a1<a2) cout<<"YES";
    else cout<<"NO";
}

D 纪念品领取

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <cstring>
#include <queue>

using namespace std;
const int N=1e5+10;

int n,m;
int x,s,t;
int l[N],r[N];
int a[N];
bool cmp(int a,int b){
    return a<b;
}
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        l[i]=i-1;
        r[i]=i+1;
    }
    s=1;
    t=n;
    for(int i=1;i<=m;i++){
        cin>>x;
        if(x==s) s=r[x];
        r[l[x]]=r[x];
        l[r[x]]=l[x];
        l[x]=t;
        r[x]=r[t];
        r[t]=x;
        t=x;
    }
    for(int i=1;i<=5;i++){
        a[i]=s;
        s=r[s];
    }
    sort(a+1,a+6,cmp);
    for(int i=1;i<=5;i++){
        cout<<a[i]<<' ';
    }
}

E 聚会

#include <bits/stdc++.h>

using namespace std;

const int N=1e5+10;

int n;
long long a[N];

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    sort(a+1,a+1+n);
    long long ans=0;
    for(int i=1;i<=n;i++){
        if(a[i]<=ans+1) ans+=a[i];
        else break;
    }
    cout<<ans+1<<'\n';
}

F 买车

#include <bits/stdc++.h>
#define PII pair<int,int>
using namespace std;

const int N=1e5+10;

PII q1[N];

priority_queue<int> q;

int n,m,t,a,b;
int ans;
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    cin>>n>>m>>t;
    for(int i=1;i<=m;i++){
        cin>>q1[i].first>>q1[i].second;
    }
    sort(q1+1,q1+1+m);
    for(int i=1;i<=m;i++){
        if(q1[i].first>t){
            if(q.size()&&q.top()>=q1[i].first) {
                ans++;
                t=q.top();
            }
            else {cout<<-1<<'\n';
            return 0;}
        }
        q.push(q1[i].first+q1[i].second);
    }
    if(t<n){
        t=q.top();
        ans++;
    }
    if(t>=n) cout<<ans<<'\n';
    else cout<<-1<<'\n';
}

G 热身小游戏

#include <bits/stdc++.h>

using namespace std;

const int N=1e5+10;
const int mod=1e9+7;


long long n,op,l,r;
int f[N];
long long a[N];
long long x=1;
long long qmi(long long a,long long b){
    long long res=1;
    while(b){
        if(b&1) res=res*a%mod;
        a=a*a%mod;
        b>>=1;
    }
    return res;
}

int find(int x){
    return f[x]==x?x:f[x]=find(f[x]);
}

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    cin>>n;
    for(int i=1;i<=n;i++){
        a[i]=1;
        f[i]=i;
        cin>>op;
        if(op==1){
            cin>>a[i];
            x=x*a[i]%mod;
        }
        else if(op==2){
            cin>>l>>r;
            while(find(r)>=l){
                x=x*qmi(a[find(r)],mod-2)%mod;
                f[find(r)]=find(r)-1;
            }
        }
        else{
            cout<<x<<'\n';
        }
    }
}

I 巡逻机器人

#include <bits/stdc++.h>

using namespace std;

const int N=2e6+10;

int n,m,a[N],b[N];
int x,ans;
char op;

int RTO(int a,int x){
    if(!a) return n;
    if(a<=x) return x-a;
    else return n-(a-x);
}

int LTO(int b,int x){
    if(!b) return n;
    if(b>=x) return b-x;
    else return n-(x-b);
}

int calc(int a,int b,int x){
    return (min(RTO(a,x),LTO(b,x)));
}

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    cin>>n>>m;
    for(int i=1;i<=m;i++){
        cin>>x>>op;
        if(op=='L') b[x]=x;
        else a[x]=x;
    }
    for(int i=1;i<=n;i++){
        if(!a[i])a[i]=a[i-1];
    }
    for(int i=1;i<=n;i++){
        if(!a[i]) a[i]=a[n];
    }
    for(int i=n;i>=1;i--){
        if(!b[i]) b[i]=b[i+1];
    }
    for(int i=n;i>=1;i--){
        if(!b[i]) b[i]=b[1];
    }
    ans=0;
    for(int i=1;i<=n;i++){
        ans=max(ans,calc(a[i],b[i],i));
    }
    cout<<ans<<'\n';

}

J 樱果运输

#include <bits/stdc++.h>

using namespace std;

const int N=1e2+10;
const int M=1e3+10;

int dp[N][M];

int e[N],t[N];

int n,m,x,y;


int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>e[i]>>t[i];
    }
    for(int i=1;i<=n;i++){
        for(int j=i;j>=1;j--){
            for(int k=M-1;k>=e[i];k--){
                dp[j][k]=max(dp[j][k],dp[j-1][k-e[i]]+t[i]);
            }
        }
    }
    for(int i=1;i<=m;i++){
        cin>>x>>y;
        int res=-1;
        for(int j=1;j<=n;j++){
            if(dp[j][x]>=y){
                res=j;
                break;
            }
        }
        cout<<res<<'\n';
    }
}

K 糟糕的一天

#include <iostream>
#include <stdio.h>
#include <algorithm>

using namespace std;
int n;
int x,a[1000010];

int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    int maxn=a[n];
    int ans=0;
    for(int i=n-1;i>=1;i--){
        if(maxn>a[i])ans++;
        else maxn=a[i];
    }
    cout<<ans<<endl;
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇