zoukankan      html  css  js  c++  java
  • Codeforces #530.div2

    A

    #include<bits/stdc++.h>
    
    using namespace std;
    
    int main()
    {
        int h,w,u1,d1,u2,d2,sum=0;
        cin>>w>>h>>u1>>d1>>u2>>d2;
        sum=w;
        while(h>0)
        {
            sum=sum+h;
            if(h==d1)sum=sum-u1;
            if(h==d2)sum=sum-u2;
            sum=max(sum,0);
            h--;
        }
        cout<<sum;
    }

    B

    #include <bits/stdc++.h>
    
    using namespace std;
    
    int main()
    {
        long long n;
        cin>>n;
        n=sqrt((4*n)-3);
        n=n+1;
        cout<<n<<endl;
        return 0;
    }

    C

    #include <bits/stdc++.h>
    
    using namespace std;
    
    #define long long ll
    int main()
    {
        string s;
        cin>>s;
        int l = s.length();
        int k;
        cin>>k;
        int count1 = 0;
        int count2 = 0;
        for(int i=0; i<l; i++)
        {
            if(s[i]=='?')
                count1++;
            else if(s[i] == '*')
                count2++;
        }
        int d = l-count1-count2;
        if(k<=d)
        {
            if(k<(d-(count1+count2)))
                cout<<"Impossible";
            else
            {
                int Count = 0;
                for(int i=0; i<l-1; i++)
                {
                    if((s[i+1]=='?' || s[i+1]=='*') && Count<(d-k))
                    {
                        Count++;
                        continue;
                    }
                    else if(s[i]=='?' || s[i] == '*')
                        continue;
                    else
                        cout<<s[i];
                }
                if(s[l-1]!='?' && s[l-1]!='*')
                    cout<<s[l-1];
            }
        }
        else
        {
            if(k>d && count2==0)
                cout<<"Impossible";
            else
            {
                int tmp;
                for(int i=0; i<l-1; i++)
                {
                    if(s[i+1]=='*')
                    {
                        tmp = i;
                        break;
                    }
                    else if(s[i]=='?' || s[i] == '*')
                        continue;
                    else
                        cout<<s[i];
                }
    
                for(int i=0; i<(k-d+1); i++)
                    cout<<s[tmp];
                for(int i=tmp+1; i<l; i++)
                {
                    if(s[i]=='?' || s[i] == '*')
                        continue;
                    else
                        cout<<s[i];
                }
            }
    
        }
        return 0;
    }

    D

    #include<bits/stdc++.h>
    #define LL long long
    
    using namespace std;
    
    const int inf = 1e9 + 10;
    
    vector<int> v[100010];
    int a[100010];
    int s[100010];
    int flag;
    
    void dfs(int x,int pre,int sum)
    {
        if(flag == 0)
            return;
        if(s[x]!= -1)
        {
            if(s[x]< sum)
            {
                flag = 0;
                return;
            }
            a[x]=s[x]-sum;
        }
        else
        {
            int minn = inf;
            for(int i=0;i<v[x].size();i++)
            {
                int xx = v[x][i];
                if(xx == pre)
                    continue;
                if(s[xx] == -1)
                    continue;
                minn = min(minn,s[xx]);
            }
            if(minn < sum)
            {
                flag = 0;
                return;
            }
            if(minn == inf)
                a[x] = 0;
            else
                a[x] = minn - sum;
        }
        for(int i=0;i<v[x].size();i++)
        {
            int xx = v[x][i];
            if(xx == pre)
                continue;
            dfs(xx,x,sum + a[x]);
        }
    
    }
    int main(void)
    {
        int n,i,j;
        while(scanf("%d",&n)==1)
        {
            for(i=1;i<=n;i++)
                v[i].clear();
            for(i=2;i<=n;i++)
            {
                int p;
                scanf("%d",&p);
                v[p].push_back(i);
            }
            for(i=1;i<=n;i++)
                scanf("%d",&s[i]);
            flag = 1;
            dfs(1,-1,0);
            if(flag == 0)
                printf("-1
    ");
            else
            {
                LL sum = 0;
                for(i=1;i<=n;i++)
                    sum += a[i];
                cout << sum << endl;
            }
        }
        return 0;
    }
  • 相关阅读:
    7个最好的免费杀毒软件下载
    VMware虚拟机扩容
    tomcat的JK和JK2
    面向对象——接口
    JPA入门样例(採用JPA的hibernate实现版本号)
    JAVA数组的定义及用法
    Styles and Themes
    OpenSSL再曝CCS注入漏洞-心伤未愈又成筛子
    纯文本抽出程序库DMC TEXT FILTER
    数据结构课程设计之通讯录管理系统
  • 原文地址:https://www.cnblogs.com/raincle/p/10389809.html
Copyright © 2011-2022 走看看