• Codeforces Beta Round #80 (Div. 2 Only)【ABCD】


    Codeforces Beta Round #80 (Div. 2 Only)

    A Blackjack1

    题意

    一共52张扑克,A代表1或者11,2-10表示自己的数字,其他都表示10

    现在你已经有一个queen了,问你有多少种方案,能够得到n点

    题解

    其实只用考虑三种情况,都考虑一下就好了,实在不行就暴力枚举……

    代码

    #include<bits/stdc++.h>
    using namespace std;
    int n;
    int main()
    {
        scanf("%d",&n);
        if(n<=10||n>21)cout<<"0"<<endl;
        else if(n==20)cout<<"15"<<endl;
        else cout<<"4"<<endl;
    }
    

    B. Testing Pants for Sadness

    题意

    一共有n道题,每道题有a[i]个选项,每次答错这道题,就得重新答起。

    现在问你最差的情况下,需要答多少次?

    题解

    答第i题失败,就会重新再答(i-1)次

    代码

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn = 105;
    int n;
    int a[maxn];
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            scanf("%d",&a[i]);
        long long ans = 0;
        for(int i=1;i<=n;i++)
            ans+=1ll*(i-1)*(a[i]-1)+a[i];
        cout<<ans<<endl;
    }
    

    C - Cthulhu

    题意

    给你一个图,问你这个图是否能够由几颗树组成,且树的根组成了简单环

    题解

    dfs,然后判断点的个数是否和边的个数相同,且是否是连通的就好了。

    代码

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn = 106;
    int vis[maxn],n,m;
    int cnt = 0;
    vector<int>E[maxn];
    void dfs(int x){
        vis[x]=1;
        cnt++;
        for(int i=0;i<E[x].size();i++){
            int v = E[x][i];
            if(!vis[v]){
                dfs(v);
    
            }
        }
    }
    int main()
    {
        scanf("%d%d",&n,&m);
        for(int i=1;i<=m;i++){
            int a,b;
            scanf("%d%d",&a,&b);
            E[a].push_back(b);
            E[b].push_back(a);
        }
        dfs(1);
        if(n==m&&cnt==n)cout<<"FHTAGN!"<<endl;
        else cout<<"NO"<<endl;
    }
    

    D - Russian Roulette

    题意

    俄罗斯转盘,长度为n的环,有k个子弹,然后挨着对着脑袋打。

    你是第一个人,你希望你死的概率最小,问你怎么去设置这个子弹的位置。

    第二个人会一开始随机砖圈,使得每一个位置开始都是可能的。

    如果死的概率一样的话,让你找到字典序最小的。

    题解

    其实打个表看一看,就知道偶数就应该先把偶数位置给安上子弹,然后再把奇数位置倒着放。

    但是如果总长度为奇数的话,先把最后一个位置放子弹,其他位置和偶数情况一样

    代码

    #include<bits/stdc++.h>
    using namespace std;
    
    int main()
    {
        long long n;
        long long k;
        int q;
        scanf("%lld%lld%d",&n,&k,&q);
        if(n%2==1){
            n--,k--;
        }
        for(int i=0;i<q;i++){
            long long x;
            scanf("%lld",&x);
            if(x%2==0){
                long long x2 = x/2;
                long long num = n/2;
                if(num - x2<k)
                    printf("X");
                else
                    printf(".");
            }else{
                if(n%2==0&&x==n+1){
                    if(k>=0)
                        printf("X");
    
                    else{
                        printf(".");
                    }
                    continue;
                }
                long long num = n/2;
                long long kk = k-num;
                long long num2 = n-n/2;
                long long num3 = (x+1)/2;
                long long num4 = num2 - num3;
                if(num4<kk)printf("X");
                else printf(".");
            }
        }
    }
  • 相关阅读:
    基于GIS的生态环境信息一张图系统应用与研究
    基于GIS的开源社区(村)网格化数据管理平台
    智慧乡村综合解决方案数字化智能农业
    开源免费乡村振兴数字乡村平台
    Oracle连接字符串记录
    SqlLocalDB使用笔记
    Orchard分类Taxonomies图文教程
    自己手动maven命令将jar包安装到本地。
    Mysql如何去掉数据库中重复记录?
    常见的数据库方面问题
  • 原文地址:https://www.cnblogs.com/qscqesze/p/6159874.html
Copyright © 2020-2023  润新知