zoukankan      html  css  js  c++  java
  • Codeforces Round #345 (Div. 2)

    Codeforces Round #345 (Div. 2)


    A.
    题意:a,b进行游戏,游戏机的电量分别剩余n,m;充电器只能给一个人充电,一分钟充1%的电,不充电的一分钟掉电2%。问两个人能同时进行几分钟游戏。

    思路:模拟就好了。

    #include<bits/stdc++.h>
    using namespace std;
    #define inf 0x3f3f3f3f
    typedef long long LL;
    
    int n,m;
    int main()
    {
        while(scanf("%d%d",&n,&m)!=EOF)
        {
            int ans=0;
            if(n==1 && m==1 ) {printf("0
    "); continue;}
            while(n>0 && m>0)
            {
                if(n<m)
                {
                    int temp=n;
                    n=m;
                    m=temp;
                }
                n-=2;
                m++;
                ans++;
                //printf("%d
    ",ans);
            }
            printf("%d
    ",ans);
        }
        return 0;
    


    B.
    题意: 如果遇到比前一个更漂亮的画心情就会好一些。

    思路:xjb搞过的,蜜汁~

    #include<bits/stdc++.h>
    using namespace std;
    #define inf 0x3f3f3f3f
    typedef long long LL;
    
    int n;
    int b[1200];
    vector<int > a[1200];
    int main()
    {
        while(scanf("%d",&n)!=EOF)
        {
            int mm=0;
            int ans=0;
            memset(b,0,sizeof(b));
            for(int i=0; i<1200; i++)
                a[i].clear();
            for(int i=1; i<=n; i++)
            {
                int x;
                scanf("%d",&x);
                b[x]++;
                a[b[x]].push_back(x);
                mm=max(mm,b[x]);
            }
            //for(int i=1; i<=mm; i++)
           //     for(int j=0; j<a[i].size(); j++)
             //       cout << a[i][j] << ' ';
            //cout << endl;
            for(int i=1; i<=mm; i++)
            {
                //cout << a[i].size() << endl;
                if(a[i].size()>0)
                ans+=a[i].size()-1;
            }
            printf("%d
    ",ans);
        }
        return 0;
    }  
    


    C.
    题意:
    传统的路程计算方式是:sqrt( (xi-yi)^2+(xj-yj) );
    贝尔曼路程的计算方式是:|xi-xj|+|yi-yj|;
    然后有一群点,找到两种计算方式得到的结果一样的对数,(就是xixj || yiyj);

    思路:
    如果单独计算x或者y的话会产生多余对数,可以先记录在一个位置的点然后对x,y排序计算。

    #include<bits/stdc++.h>
    using namespace std;
    #define inf 0x3f3f3f3f
    typedef long long LL;int n;
    struct node
    {
        LL x,y;
    };
    node a[200000+100];
    bool cmp1(node aa,node bb)
    {
        if(aa.x==bb.x)
            return aa.y<bb.y;
        else
            return aa.x<bb.x;
    }
    bool cmp2(node aa,node bb)
    {
        if(aa.y==bb.y)
            return aa.x<bb.x;
        else
            return aa.y<bb.y;
    }
    int main()
    {
        while(scanf("%d",&n)!=EOF)
        {
            LL ans=0;
            LL sum=0;
            memset(a,inf,sizeof(a));
    
            for(int i=0; i<n; i++)
            {
                scanf("%I64d %I64d", &a[i].x, &a[i].y);
            }
    
            sort(a,a+n,cmp1);
            for(int i=0; i<n; i++)
            {
                if(a[i].x==a[i+1].x && a[i].y==a[i+1].y)
                {
                   sum++;
                }
                else
                {
                    ans-=sum*(sum+1)/2;
                    sum=0;
                }
            }
    
            sum=0;
            for(int i=0; i<n; i++)
            {
                if(a[i].x==a[i+1].x)
                {
                    sum++;
                }
                else
                {
                    ans+=sum*(sum+1)/2;
                    sum=0;
                }
            }
            sum=0;
            sort(a,a+n,cmp2);
            for(int i=0; i<n; i++)
            {
                if(a[i].y==a[i+1].y)
                {
                    sum++;
                }
                else
                {
                    ans+=sum*(sum+1)/2;
                    sum=0;
                }
            }
            printf("%I64d
    ",ans);
        }
        return 0;
    }  
    


  • 相关阅读:
    2019牛客暑期多校训练营(第三场)B题、H题
    2019牛客暑期多校训练营(第四场)k题、j题
    Manacher算法 & Palindrome
    HDU 3336——Count the string
    判断一个点是否在三角形内
    P1052 过河
    P1353 [USACO08JAN]跑步Running
    hdu 1686 Oulipo
    Cyclic Nacklace HDU
    高精地图技术分析
  • 原文地址:https://www.cnblogs.com/zzulipomelo/p/5263896.html
Copyright © 2011-2022 走看看