• Codeforces Round #565 (Div. 3) A B C E


    Codeforces Round #565 (Div. 3)

    Divide it!

    由题可知,分别消掉1个2,3,5分别需要1,2,3的花费

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    ll q,n;
    int main(){
        cin>>q;
        while(q--){
            cin>>n;
            ll cnt=0;
            ll p=-1;
            int flag=0;
            while(p<cnt){
                p=cnt;
                if(n%2ll==0) {
                    n=n/2ll;
                    cnt++;
                }
                if(n%3==0){
                    n=n/3ll;
                    cnt+=2ll;
                }
                if(n%5ll==0){
                    n=n/5ll;
                    cnt+=3ll;
                }
                if(n==1) flag=1;
            }
        if(flag)cout<<cnt<<"
    ";
        else cout<<"-1
    ";
        }
        return 0;
    }
    View Code

    Merge it!

    将ai=ai%3(1<=ai<=1e9),统计 0 1 2的个数,res=a[0]+(1+2的个数)+剩余的1的个数/3或者剩余2的个数/3

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    
    
    int t,n,a[4];
    int main(){
        
        cin>>t;
        while(t--){
            for(int i=0;i<=2;i++){
                a[i]=0;
            }
            cin>>n;
            int c,res;
            for(int i=0;i<n;i++){
                cin>>c;
                c=c%3;
                a[c]++;
            }
            if(a[1]>a[2]){
                a[1]=a[1]-a[2];
                res=a[2];
                res=res+a[1]/3;
            }else{
                res=a[1];
                a[2]=a[2]-a[1];
                res+=a[2]/3;
            }
            res=res+a[0];
            cout<<res<<"
    ";
        }
        return 0;
    }
    View Code

    Lose it!

    4,8,15,16,23,42 分别记为 1 2 3 4 5 6

    b[i]表示有b[i]个从1到i连续的序列

    if b[i-1]>0 那么b[i]++,b[i-1]--;

    最后得到b[6]个从1到6连续的序列

    需要删除的数 n-b[6]*6

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int N=1e6;
    
    
    int n;
    int a[N],p[50],b[10]={0};
    int main(){
        p[4]=1,p[8]=2,p[15]=3,p[16]=4,p[23]=5,p[42]=6;
        b[0]=N;
        cin>>n;
        int res=0;
        int c;
        for(int i=0;i<n;i++){
            cin>>c;
            if(b[p[c]-1]>0) b[p[c]]++,b[p[c]-1]--;
        }
        res=n-b[6]*6;
        cout<<res<<"
    ";
        return 0;
    }
    View Code

    Cover it!

    二分染色,dfs bfs 都行,选择点少的颜色输出

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int N=2e5+100;
    
    int t;
    int n,m;
    int vis[N];
    int cnt[2];
    struct Edge{
        int to,next;
    }e[N*2];
    int head[N],tot;
    void addEdge(int u,int v){
        e[tot].to=v;
        e[tot].next=head[u];
        head[u]=tot++;
    }
    
    int dfs(int u,int c){
        vis[u]=c;
        cnt[c]++;
        for(int i=head[u];i!=-1;i=e[i].next){
            int v=e[i].to;
            if(vis[v]==-1){
                dfs(v,c^1);
            }
        }
    }
    int main(){
        std::ios::sync_with_stdio(false);
        cin>>t;
        while(t--){
            cin>>n>>m;
            memset(head,-1,sizeof(int)*(n+100));
            memset(vis,-1,sizeof(int)*(n+100));
            tot=0;
            cnt[0]=0,cnt[1]=0;
            int u,v;
            for(int i=0;i<m;i++){
                cin>>u>>v;
                addEdge(u,v);
                addEdge(v,u);
            }
            dfs(1,0);
            int c,d;
            if(cnt[0]>cnt[1]) c=1,d=cnt[1];
            else c=0,d=cnt[0];
            cout<<d<<"
    ";
            for(int i=1;i<=n;i++){
                if(vis[i]==c) cout<<i<<" ";
            }
            cout<<"
    ";
        }
        return 0;
    }
    View Code
  • 相关阅读:
    怎样判断某个分辨率是不是 16:9
    最简单的判断是否为IE浏览器的方法
    S4 smartforms切换到非word编辑器
    字符串中数字和汉字之前打空格
    elasticsearch 中term查询
    小程序 反编译 pc微信
    vue-element-admin vue-amap使用高德地图 文档没有示例代码
    高德地图 自适应 显示多个点标记
    laravel5 清理 bootstrap/cache/config.php
    element-admin 上传 跨域 问题 http-request
  • 原文地址:https://www.cnblogs.com/YJing814/p/11004792.html
Copyright © 2020-2023  润新知