• Codeforces Round #428 (Div. 2)


    终于上蓝名了,hahahahaha,虽然这场的 B 题因为脑抽了,少考虑一种情况终判错了,还是很可惜的。。

    B题本来过来1500个人,终判之后只剩下了200多个,真的有毒!!!!

    A - Arya and Bran

    题目大意:你需要k个糖果,你每天最多拿8个,有n天,每天提供你a[ i ]个糖果,如果糖果大于8个多出来的

    可以储存下来,问你能不能在n天内拿到k个糖果。

    思路:模拟就行了。

    #include<bits/stdc++.h>
    using namespace std;
    int n,k;
    int a[105];
    int main()
    {
        cin>>n>>k;
        int sum=0;
        for(int i=1;i<=n;i++) scanf("%d",&a[i]),sum+=a[i];
        if(sum<k)
        {
            puts("-1");
            return 0;
        }
        int ans=0;
        int now=1,res=0;
        while(ans<k)
        {
            if(now>n)
            {
                puts("-1");
                return 0;
            }
            if(a[now]<=8)
            {
                ans+=a[now];
                int p=8-a[now];
                if(p<=res)
                {
                    ans+=p;
                    res-=p;
                }
                else
                {
                    ans+=res;
                    res=0;
                }
            }
            else
            {
                ans+=8;
                res+=a[now]-8;
            }
            if(ans>=k) break;
            now++;
        }
        cout<<now<<endl;
        return 0;
    }
    View Code

    B - Game of the Rows

    题目大意:有n艘船,每艘船有8个位置,一种两个两连坐,一个四连坐。现在又k个团,分别有a[ i ]个士兵,

    要求不同团的士兵不是坐相邻的位置,问你能不能将所有士兵安排到船上。

    这确实是个毒题。

    思路:看到题目就想到肯定是贪心,我们的首要目标就是要空着的位置尽可能地少,而且四连坐如果坐满

    肯定都是一个团的,那么我们先将四连坐能坐满的全部坐满,坐不满的我们就将四连坐分成一个两连坐

    和一个单个座位,再用两连坐和单个座位模拟就简单多了,但是我注意了单个座位用完用两连坐代替,

    却忘了两连坐用完也能用单个座位代替,GGGGGGG。

    #include<bits/stdc++.h>
    using namespace std;
    int n,k;
    int a[105];
    int main()
    {
        cin>>n>>k;
        int c1=n*2,c2=n,c3=0;
        for(int i=1;i<=k;i++) scanf("%d",&a[i]);
        for(int i=1;i<=k;i++)
        {
            int w=a[i]/4;
            if(c2>=w)
            {
                c2-=w;
                a[i]-=w*4;
            }
        }
        c1+=c2;
        c3+=c2;
        for(int i=1;i<=k;i++)
        {
            if(a[i])
            {
                if(a[i]&1)
                {
                    if(c3) c3--;
                    else c1--;
                }
                int w=a[i]/2;
                if(c1>=w) c1-=w;
                else c3-=2;
                if(c3<0)  //这里GG了
                {
                    puts("NO");
                    return 0;
                }
            }
            //cout<<c1<<endl;
        }
        puts("YES");
        return 0;
    }
    View Code

    C - Journey

    题目大意:给你一颗树,有一个球从 1 好节点还是等概率地向他的子节点转移,如果没有子节点了则停止,

    问你球通过的路径长度的期望是多少。(从一个节点转移到其子节点的长度为 1 )。

    思路:刚开始以为每一条路都是等概率地错了一发,直接 dfs 每一条路到底将期望加上去。

    #include<bits/stdc++.h>
    using namespace std;
    const int N=100003;
    vector<int> e[N];
    int vis[N],sum,len[N];
    double ans;
    void dfs(int u,int pre,int l,double p)
    {
        bool flag=false;
        for(int i=0;i<len[u];i++)
        {
            int to=e[u][i];
            if(to!=pre)
            {
                flag=true;
                if(pre==-1) dfs(to,u,l+1,p/len[u]);
                else dfs(to,u,l+1,p/(len[u]-1));
            }
        }
        if(!flag)
        {
            //cout<<u<<endl;
            //cout<<p<<endl;
            ans+=p*l;
        }
    }
    int main()
    {
        int n;
        cin>>n;
        ans=0;
        for(int i=1;i<n;i++)
        {
            int f,t;
            scanf("%d%d",&f,&t);
            e[f].push_back(t);
            e[t].push_back(f);
            len[f]++;
            len[t]++;
        }
        dfs(1,-1,0,1);
        printf("%.12f
    ",ans);
        return 0;
    }
    View Code
  • 相关阅读:
    Error[e46]: Undefined external "?V1" referred in AF
    总是遇到奇怪问题一
    BrokenPipeError: [Errno 32] Broken pipe
    Segment BANKED_CODE must be defined in a segment definition option (-Z, -b or -P)
    使用jupyter打开已存在的ipynb文件
    时钟控制命令
    中断系统以及外部中断
    pytorch上的循环层和全连接层操作
    02池化层
    距离毕业还有---100天
  • 原文地址:https://www.cnblogs.com/CJLHY/p/7353052.html
Copyright © 2020-2023  润新知