zoukankan      html  css  js  c++  java
  • 2019.9.21个人赛

    Stat # Origin Title
    Solved 26 / 36 A AtCoder 4822 Alchemist
    Solved 21 / 54 B AtCoder 4894 Build Stairs
    Solved 26 / 28 C AtCoder 4858 One Clue
    Solved 9 / 28 D AtCoder 4862 Green Bin
    Solved 27 / 31 E AtCoder 4887 Red or Not
    Solved 18 / 36 F AtCoder 4891 City Savers
    Solved 19 / 37 G AtCoder 4873 ModSum
    3 / 9 H AtCoder 4877 Summer Vacation

    A – Alchemist

    题目大意:

    对n堆成分进行处理,每两堆混合后只会剩下两堆质量的1/2,混合后的质量再与其他堆进行混合,求解怎么混合使得剩下的质量是最多,求最多剩余质量

    解题思路:

    通过样例很清楚质量越多越排后进行混合处理,那么就可以使得最后剩余的质量最多,简单排序模拟即可

    通过代码:

    #include <bits/stdc++.h>
    #define REP(i, a, b) for(int i = a; i < b; i++)
    #define REP_(i, a, b) for(int i = a; i <= b; i++)
    #define sl(n) scanf("%lld", &n);
    #define si(n) scanf("%d", &n);
    #define RepAll(a) for(auto x: a)
    #define cout(ans) cout << ans << endl;
    typedef long long ll;
    double a[10010];
    using namespace std;
    int main(){
        int n;
        cin >> n;
    
        REP(i, 0, n){
            cin >> a[i];
        }
        sort(a, a+n);
        double sum = 0;
        REP(i, 1, n){
            a[i] = (double)(a[i-1] + a[i])/2;
        }
        //cout << a[n - 1] << '
    ';
        printf("%.5f
    ", a[n - 1]);
    }
    

    B – Build Stairs

    题目大意

    有n个正方形,且已知高度,对于每个正方形,您将执行一次以下任一操作:

    • 将正方形的高度减少1
    • 没做什么。

    如果可以执行使正方形的高度从左到右不减小的操作,请打印Yes;否则,打印No

    解题思路:

    每次输入的时候判断一下就好了,,一旦输入的高度本来就小于上一回的高度的话,那么直接输出“No”就好了

    解题代码:

    #include <bits/stdc++.h>
    #define REP(i, a, b) for(int i = a; i < b; i++)
    #define REP_(i, a, b) for(int i = a; i <= b; i++)
    #define sl(n) scanf("%lld", &n);
    #define si(n) scanf("%d", &n);
    #define RepAll(a) for(auto x: a)
    #define cout(ans) cout << ans << endl;
    typedef long long ll;
    
    using namespace std;
    int main()
    {
    
        int n, h, m=0;
        cin >> n;
        for(int i = 1; i <= n; i++)
        {
            cin >> h;
            if(h<m)
            {
                cout<<"No";
                return 0;
            }
            m=max(m,h-1);
        }
        cout<<"Yes";
    }

    C – One Clue

    题目大意:

    给石头涂色

    解题思路:

    注意数据范围和例子即可,所涂的石头可能在三个位置,所以不妨从最右考虑起,先输出最左边的

    解题代码

    #include <bits/stdc++.h>
    #define REP(i, a, b) for(int i = a; i < b; i++)
    #define REP_(i, a, b) for(int i = a; i <= b; i++)
    #define sl(n) scanf("%lld", &n);
    #define si(n) scanf("%d", &n);
    #define RepAll(a) for(auto x: a)
    #define cout(ans) cout << ans << endl;
    typedef long long ll;
    
    using namespace std;
    int main(){
    	int k,x;
    	cin >> k >> x;
    	for(int i=x-k+1;i<=x+k-1;i++)
            cout<<i<<endl;
    }

    D – Green Bin

    题目大意:

    给你n个字符串,判断这n个字符串能配成几对字谜,当字符串中字母出现的个数以及出现的字母相同时即互为字谜

    解题思路:

    当你排序之后,按字典序互为字谜的字符串是一定相同的,那么在用map存一下出现个数即可,后自增保证每次增加的是对数(如果用for循环比较的话会答案错误,因为只能算出相同字符串而不能直接得到对数,所以用map显然更加合适)

    解题代码:

    #include <bits/stdc++.h>
    #define REP(i, a, b) for(int i = a; i < b; i++)
    #define REP_(i, a, b) for(int i = a; i <= b; i++)
    #define sl(n) scanf("%lld", &n);
    #define si(n) scanf("%d", &n);
    #define RepAll(a) for(auto x: a)
    #define cout(ans) cout << ans << endl;
    typedef long long ll;
    using namespace std;
    map <string,int> m;
    string s;
    long long ans=0;
    using namespace std;
    int main()
    {
        int n;
        cin >> n;
        while ( n--)
        {
            cin >> s;
            sort(s.begin(), s.end());
            //cout << m[s];
            ans += m[s]++;
        }
        cout << ans;
    }
    

    E – Red or Not

    题目大意:

  • 相关阅读:
    AbsoluteLayout 相框
    Cursor getContentResolver
    Diary DiaryDbAdapter 日记本程序
    Linkify
    Installation error: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
    exampleuse SharedPreferences
    Gallery
    AbsoluteLayout xiantu
    PRD
    android 拨打电话 号码判断
  • 原文地址:https://www.cnblogs.com/ygbrsf/p/12583003.html
Copyright © 2011-2022 走看看