• Codeforces Round #429 (Div. 2)


    A. Generous Kefa
     

    One day Kefa found n baloons. For convenience, we denote color of i-th baloon as si — lowercase letter of the Latin alphabet. Also Kefa has k friends. Friend will be upset, If he get two baloons of the same color. Kefa want to give out all baloons to his friends. Help Kefa to find out, can he give out all his baloons, such that no one of his friens will be upset — print «YES», if he can, and «NO», otherwise. Note, that Kefa's friend will not upset, if he doesn't get baloons at all.

    Input

    The first line contains two integers n and k (1 ≤ n, k ≤ 100) — the number of baloons and friends.

    Next line contains string s — colors of baloons.

    Output

    Answer to the task — «YES» or «NO» in a single line.

    You can choose the case (lower or upper) for each letter arbitrary.

    题意: 让你分配东西,然后每个人不能分配相同的东西   就是看看东西的种类 和 总人数的比较

    #include<bits/stdc++.h>
    using namespace std;
    int p[300];
    char s[120];
    int main ()
    {
        int n,k;
        cin >> n >>k;
        int sum=0,ans=0;
        for(int i=0;i<n;i++)
        {
            cin>>s[i];
            if(!p[s[i]])
                sum++;
            p[s[i]]++;
            ans = max(ans,p[s[i]]);
        }
        if(ans <= k)
            puts("YES");
        else
            puts("NO");
    }
    B. Godsend
     

    Leha somehow found an array consisting of n integers. Looking at it, he came up with a task. Two players play the game on the array. Players move one by one. The first player can choose for his move a subsegment of non-zero length with an odd sum of numbers and remove it from the array, after that the remaining parts are glued together into one array and the game continues. The second player can choose a subsegment of non-zero length with an even sum and remove it. Loses the one who can not make a move. Who will win if both play optimally?

    Input

    First line of input data contains single integer n (1 ≤ n ≤ 106) — length of the array.

    Next line contains n integers a1, a2, ..., an (0 ≤ ai ≤ 109).

    Output

    Output answer in single line. "First", if first player wins, and "Second" otherwise (without quotes).

    题意:这个题  比较绕脑子,就是A可以挑一串连续的 和为奇数的子串

        B再挑和为偶数数的子串

    其实 :  看过样例,多想想就会明白  如果这个串是奇数的话,那么 A一下子拿走 A就赢了

         如果串是偶数的话,那么 分两种情况 因为奇数+奇数==偶数  偶数+偶数==偶数

        考虑如果整个串都是偶数的话,那么必然 A不能拿  B能拿  B就赢了

        如果不是的话  肯定是A要取奇数  B再取偶数  然后A在取奇数     然后A就赢了

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn = 1e6+10;
    typedef long long ll;
    int s[maxn];
    ll sum[maxn];
    
    int main ()
    {
        int n;
        cin >> n;
        for(int i=1;i<=n;i++){
            cin>>s[i];
            sum[i] =s[i]+sum[i-1];
        }
        if(sum[n]&1)
        {
            cout<<"First"<<endl;
            return 0;
        }
        else
        {
            int ans = 0;
            for(int i=1;i<=n;i++)
                if(sum[i]%2==0)
                {
                    ans++;
                }
            if(ans == n)
            {
                cout<<"Second"<<endl;
            }
            else
            {
                cout<<"First"<<endl;
            }
        }
    }
    C. Leha and Function
     

    Leha like all kinds of strange things. Recently he liked the function F(n, k). Consider all possible k-element subsets of the set [1, 2, ..., n]. For subset find minimal element in it. F(n, k) — mathematical expectation of the minimal element among all k-element subsets.

    But only function does not interest him. He wants to do interesting things with it. Mom brought him two arrays A and B, each consists of mintegers. For all i, j such that 1 ≤ i, j ≤ m the condition Ai ≥ Bj holds. Help Leha rearrange the numbers in the array A so that the sum  is maximally possible, where A' is already rearranged array.

    Input

    First line of input data contains single integer m (1 ≤ m ≤ 2·105) — length of arrays A and B.

    Next line contains m integers a1, a2, ..., am (1 ≤ ai ≤ 109) — array A.

    Next line contains m integers b1, b2, ..., bm (1 ≤ bi ≤ 109) — array B.

    Output

    Output m integers a'1, a'2, ..., a'm — array A' which is permutation of the array A.

    题意 : 大概就是感觉  直接找B中最小的 和 A中最大的这样子

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn = 2e5+10;
    
    int n;
    struct p
    {
        int x;
        int pos;
    
    }a[maxn],b[maxn];
    
    int t[maxn];
    bool cmp(p a,p b)
    {
        return a.x>b.x;
    }
    bool cmp1(p a,p b)
    {
        return a.x < b.x;
    }
    bool cmp2(p a,p b)
    {
        return a.pos < b.pos;
    }
    int main ()
    {
        ios::sync_with_stdio(false);
        cin>>n;
        for(int i=1;i<=n;i++)
            cin>>a[i].x;
        for(int i=1;i<=n;i++){
            cin>>b[i].x;
            b[i].pos = i;
        }
        sort(a+1,a+n+1,cmp);//a从大到小已经排好
        sort(b+1,b+n+1,cmp1);//b从小到大排序
        for(int i=1;i<=n;i++)
        {
            a[i].pos = b[i].pos;
        }
        sort(a+1,a+n+1,cmp2);
        for(int i=1;i<=n;i++)
        {
            if(i==1)
                cout<<a[i].x;
            else
                cout<<" "<<a[i].x;
        }
        cout<<endl;
    
    }

     第一次能做出来三道题 有点儿小激动...虽然还是很菜,继续坚持就好

  • 相关阅读:
    中国广电工信战争
    围观一个People Search
    Popular榜单能做到小众化吗?
    校园招聘:内地大学生的视野和实践有问题吗?
    锐推榜的平衡策略
    PyQt 自定义信号带参数 emit
    Python pyinstaller
    Python 匿名函数 lambda
    PyQT5 绑定函数的传参(connect 带参数)
    Excel 一列文本变为数字
  • 原文地址:https://www.cnblogs.com/Draymonder/p/7396052.html
Copyright © 2020-2023  润新知