• p1904 p1903


    昨天同桌为我推荐了p1904这道水题,然后他就写不出来了……本来不想写,但是看他写得很麻烦,为了给他展示我的代码能力就写了一下。

      即使类型为“其他”,但还是掩盖不了模拟的事实。那么直接sort Ai,再在前k个牛中找到Bi最高的就行。复杂度为N*logN+k

    #include<iostream>
    #include<iomanip>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    struct woc
    {
        int a;
        int b;
        int num;
    }cow[50010];
    bool mycmp(woc x,woc y)
    {
        return x.a>y.a;
    }
    int n,k,i,ans=1;
    int main()
    {
    ios::sync_with_stdio(false);
        cin>>n>>k;
        for(i=1;i<=n;i++)
        {    
            cin>>cow[i].a>>cow[i].b;
            cow[i].num=i;
        }
        sort(cow+1,cow+1+n,mycmp);
             for(i=2;i<=k;i++)
        {
            if(cow[i].b>cow[ans].b)
                ans=i;
        }
        cout<<cow[ans].num;
            return 0;     
    }  

      往上看了一眼,p1903好像也挺简单。

     如果双重循环应该是要超时的,n=20000,说小不小了。他们说要sort后二分,哇二分,代码有点复杂的,决心想一种简单点的方法。好像s也不大,我决定搞一个计数排序。

    #include<iostream>
    #include<iomanip>
    #include<cstdio>
    #include<algorithm>
    using namespace std;  
    int i;
    int num[1000010],t,n,s,ans,sum[1000010];
    int C[10010];
    int main()
    {  
    ios::sync_with_stdio(false);
        cin>>n>>s;
        for(i=1;i<=n;i++)
        {
            cin>>t;
            num[t]++;
        }
        for(i=1;i<=10000;i++)C[i+1]=C[i]+i;
        for(i=1;i<=s;i++)
            sum[i]=sum[i-1]+num[i];
        
        for(i=1;i<=s/2;i++)
            ans+=C[num[i]]+num[i]*(sum[s-i]-sum[i]);
        cout<<ans;
    return 0;
    }

    整个看下来复杂度是10000+s*3/2,完全没问题。(其实实际我处理C数组的时候只循环到了20,然而也能过,说明数据中没有超过20个的)

    思路就是找到n头牛的长度对应的长度后num++,建立起一个前缀和(可能叫这玩意?)sum,以后方便算出i到s-i牛的数量,然后答案就是从num[i]中挑两个的方案数(C[num[i]]即为所求)加上num[i]*(sum[s-i]-sum[i]),输出。

  • 相关阅读:
    Linux下安装MySQL5.6
    Linux软件安装管理:rpm与yum
    Linux进程管理
    Linux网络配置
    Linux磁盘分区、挂载
    Django基础之模型层(models.py)、ORM查询之单表查询、多表查询和跨表查询
    Django基础之视图层(views.py)和模板层
    数据的编辑和删除、Django基础之路由层(urls.py)
    小白必会三板斧、静态文件配置、request对象及方法、pycharm和django连接数据库、字段的增删改查和数据的增查
    初识web框架和Django框架
  • 原文地址:https://www.cnblogs.com/qywyt/p/9002299.html
Copyright © 2020-2023  润新知