首页 > 其他分享 >hey_left 8 Codeforces Round 871 (Div. 4)

hey_left 8 Codeforces Round 871 (Div. 4)

时间:2024-01-18 22:00:17浏览次数:26  
标签:int Codeforces hey 871 solve ans inf left

题目链接

A.

直接比较输入字符串和已知字符串有几个不同即可

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

void solve(){
    string s;cin>>s;
    int ans=0;
    string t="codeforces";
    for(int i=0;i<10;i++){
        if(s[i]!=t[i])ans++;
    }
    cout<<ans<<'\n';
}

signed main(){
    int hey_left=1;
    cin>>hey_left;
    while(hey_left--){
        solve();
    }
}

B.

找最长连续0,直接模拟

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

void solve(){
    int n;cin>>n;
    vector<int>v(n+1);
    for(int i=1;i<=n;i++)cin>>v[i];
    int ans=0,tmp=0;
    for(int i=1;i<=n;i++){
        if(v[i]==0)tmp++;
        else {
            ans=max(ans,tmp);
            tmp=0;
        }
        if(i==n)ans=max(ans,tmp);
    }
    cout<<ans<<'\n';
}

signed main(){
    int hey_left=1;
    cin>>hey_left;
    while(hey_left--){
        solve();
    }
}

C.

分别记录三种情况最小的花费再取小
注意要比较,wa了一发

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

#define inf 0x3f3f3f3f
void solve(){
    int n;cin>>n;
    string t;
    int ans_1=inf,ans_2=inf,ans_3=inf;
    for(int i=1,m;i<=n;i++){
        cin>>m>>t;
        if(t=="11")ans_3=min(ans_3,m);
        else if(t=="00")continue;
        else if(t=="01")ans_2=min(ans_2,m);
        else if(t=="10")ans_1=min(ans_1,m);
    }
    ans_3=min(ans_3,ans_1+ans_2);
    if(ans_3>=inf)cout<<-1<<'\n';
    else cout<<ans_3<<'\n';
}

signed main(){
    int hey_left=1;
    cin>>hey_left;
    while(hey_left--){
        solve();
    }
}

D.

浅写了一个递归,还可以
若能被3整除,判÷3和÷3×2的结果是否满足条件
都不满足就递归下去
记得控制递归数必须大于目标数

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

#define inf 0x3f3f3f3f
int n,m;
bool f;
void dfs(int x){
    int t3=x/3,t2=t3*2;
    //cout<<"x="<<x<<' '<<"t3="<<t3<<' '<<"t2="<<t2<<'\n';
    if(t3==m||t2==m){
        f=1;
        return ;
    }
    if(t3>m&&t3%3==0)dfs(t3);
    if(t2>m&&t2%3==0)dfs(t2);
}
void solve(){
    cin>>n>>m;
    if(n==m){
        cout<<"YES"<<'\n';
        return ;
    }else if(m>n){
        cout<<"NO"<<'\n';
        return ;
    }
    if(n%3!=0){
        cout<<"NO"<<'\n';
        return ;
    }
    f=0;
    dfs(n);
    if(f){
        cout<<"YES"<<'\n';
    }else cout<<"NO"<<'\n';
}

signed main(){
    int hey_left=1;
    cin>>hey_left;
    while(hey_left--){
        solve();
    }
}

标签:int,Codeforces,hey,871,solve,ans,inf,left
From: https://www.cnblogs.com/wwww-/p/17973439

相关文章

  • hey_left 7 Codeforces Round 886 (Div. 4) 续
    题目链接F.记录下出现的数字和个数注意放置陷阱的位置1-n都有可能然后遍历1-n,对每个数进行因子分解,对于在因子的位置上有青蛙的,加上青蛙的个数,取最大即可#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=2e5+10;voidsolve(){int......
  • CodeForces 1466H Finding satisfactory solutions
    洛谷传送门CF传送门考虑给定\(b\)如何构造\(a\)。拎出基环树的环部分,把这些点连同它们的边删掉(这个环一定在答案中)。递归做即可。考虑我们在\(a\)的环上连一些在\(\{b_{i,n}\}\)中排得比\(a_i\)前的\(i\toj\)。可以将问题转化为,若干个环,缩点后连一些边使得它成......
  • hey_left 6 Codeforces Round 886 (Div. 4)
    题目链接A.判总和-最小值的差是否大等于10即可#include<bits/stdc++.h>usingnamespacestd;constintN=2e5+10;voidsolve(){inta,b,c;cin>>a>>b>>c;intans=a+b+c;ans-=min({a,b,c});if(ans>=10){cout<<"YES&qu......
  • CodeForces 986F Oppa Funcan Style Remastered
    洛谷传送门CF传送门有意思的。对\(k\)分解质因数,题目实际上是想让我们解一个\(\sum\limits_{i=1}^ma_ix_i=n\)的方程。考虑\(m=1\)特判,\(m=2\)exgcd。\(m=3\)时发现\(\min\limits_{i=1}^ma_i\lek^{\frac{1}{3}}\le10^5\),所以可以跑同余最短路。......
  • CodeForces 814E An unavoidable detour for home
    洛谷传送门CF传送门考虑给图分层,一层的点一一对应上一层的一些点。设\(f_{i,j}\)为考虑了前\(i\)个点,最后一层有\(j\)个点,除了最后一层点的其他点度数限制已经满足的方案数。转移系数是\(g_{i,j,k}\)表示这一层有\(i\)个点,上一层有\(j\)个\(2\)度点,\(k\)个......
  • Codeforces Round 920 (Div. 3)
    题目链接:CodeforcesRound920(Div.3)PS:很长时间没写题,状态不好,写的很差A.Square题意:给出正方形四个点的坐标,求面积解题思路:签到查看代码 voidsolve(){ vector<PII>v; for(inti=1;i<=4;i++){ intx,y; cin>>x>>y; v.push_back({x,y}); } sort......
  • hey_left 5 Codeforces Round 898 (Div. 4)
    题目链接A.一次交换,最多让两个字符归位若三个字符都不在该在的位置上,那么无法完成若有一个字符在该在的位置上,那么可以完成usingnamespacestd;voidsolve(){chara,b,c;cin>>a>>b>>c;if(a=='a'||b=='b'||c=='c'){cout<<"YES"<<&......
  • hey_left 4 Codeforces Round 898 (Div. 4) 续
    题目链接F.先把序列分割成一个个满足条件的子序列然后二分长度,去判断子序列是否满足长度,若有一个满足,这个答案可行,判断更长的长度debug:存下的子序列忽略了单个元素,单个元素也是一个子序列,把每个元素单独作为一个子序列后可以ac题解有更简单的做法,双指针,直接遍历一遍得到答案......
  • Codeforces Round 920 (Div. 3)补题D~F
    CodeforcesRound920(Div.3)D.思路取a最大和c最小的或c最小和a最大的匹配ac代码#include<bits/stdc++.h>usingnamespacestd;usingi64=longlong;consti64inf=8e18;typedefpair<int,int>pii;constintmod=1e9+7;constintN=2e6+10;voidso......
  • Codeforces Round 861 (Div. 2)
    CodeforcesRound861(Div.2)C题直接数位dp即可#include<cstdio>#include<algorithm>#include<cstring>#include<map>#include<queue>#include<bitset>#include<cmath>#include<set>#include<unordered_map>#def......