题目

题意:有n个学生,m个政党,每个学生有支持的政党,但是如果你给他一些钱,他就可以给你想让他投的党投票,现在想付出最少的钱使得1政党有绝对优势(票数严格大于其他党)。

分析:运用一种枚举贪心的思想,枚举胜利的必要条件,就是枚举改变了I个人,就可以达到胜利

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
struct sss
{int id;int cost;
}a[3001];
int f[3001];
int g[3001];
int cmp(struct sss x,struct sss y)
{return x.cost<y.cost;
}
int main()
{int n,m;scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){scanf("%d%d",&a[i].id,&a[i].cost);f[a[i].id]++;//计入最开始的投票情况
    }long long sum=999999999999,sum2=0,ans;sort(a+1,a+n+1,cmp);//按价格排好序for(int i=f[1];i<=n;i++)//枚举获胜状态
    {sum2=0;ans=0;for(int j=2;j<=m;j++){if(f[j]>=i){g[j]=f[j]-i+1;//记录要赢得此选手要在他这买几票sum2+=g[j];//记录总共要在比他高的选手这买几票
            }else g[j]=0;}if(i-f[1]<sum2) continue;//如果我在比他高的选手这买的票比我总共买的还多说明情况不存在sum2=i-f[1]-sum2;//记录要在比我低的选手这买几票for(int j=1;j<=n;j++){if(g[a[j].id]!=0)//比我高
            {g[a[j].id]--;ans+=a[j].cost;}else{if(sum2!=0&&a[j].id!=1)//比我低,并且我还需要买票
                {sum2--;ans+=a[j].cost;}}}sum=min(sum,ans);//取最优
    }cout<<sum;
}

View Code

转载于:https://www.cnblogs.com/shuaihui520/p/9474411.html

Codeforces Round #503 (by SIS, Div. 2) C. Elections相关推荐

  1. Codeforces Round #503 (by SIS, Div. 2) C. Elections

    气死我了人生中第一次打cf就掉分了 A题大水题浪费太多时间囧明明都是A两题亮老师还上分了.. 表示C题打的时候就想到正解啊(而且还更加优秀,因为家里老爷机暴力跑的超龟以为不行 其实是没认真算复杂度), ...

  2. Codeforces Round #503 (by SIS, Div. 2) D. The hat(交互题)

    题目链接:http://codeforces.com/contest/1020/problem/D 题意描述: 这是一个交互题,互交题就是你要输出一些问题,评测机就会回答你一些问题 你要在规定的提问次 ...

  3. Codeforces Round #503 (by SIS, Div. 1)D. the hat

    原题链接:B. The hat 题意:有n(偶数)个人围成一个圈,每个人身上有一个数字,保证相邻两个人的数字差为1, 现在要把第i个人和第i+n/2个人面对面站着,例如现在有8个人,站好后如下: 1 ...

  4. Educational Codeforces Round 114 (Rated for Div. 2) (A ~ F)全题解

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Educational Codeforces Round 114 (Rated for Div. 2) ...

  5. Educational Codeforces Round 106 (Rated for Div. 2)(A ~ E)题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 Educational Codeforces Round 106 (Rated for Div. ...

  6. Educational Codeforces Round 37 (Rated for Div. 2) 1

    Educational Codeforces Round 37 (Rated for Div. 2) A.Water The Garden 题意:Max想给花园浇水.花园可被视为长度为n的花园床,花园 ...

  7. Educational Codeforces Round 90 (Rated for Div. 2)(A, B, C, D, E)

    Educational Codeforces Round 90 (Rated for Div. 2) Donut Shops 思路 分三种情况: a==c/ba == c / ba==c/b这个时候两 ...

  8. Educational Codeforces Round 89 (Rated for Div. 2)(A, B, C, D)

    Educational Codeforces Round 89 (Rated for Div. 2) A. Shovels and Swords 思路 题意非常简单,就是得到最多的物品嘛,我们假定a, ...

  9. Educational Codeforces Round 114 (Rated for Div. 2) D. The Strongest Build 暴力 + bfs

    传送门 文章目录 题意: 思路: 题意: 你有nnn个装备槽,每个槽里面有cic_ici​个力量加成,对于每个槽只能选一个力量加成,现在给你mmm个力量组合[b1,b2,...,bn][b_1,b_2 ...

  10. Educational Codeforces Round 72 (Rated for Div. 2) D. Coloring Edges dfs树/拓扑找环

    传送门 文章目录 题意: 思路: 题意: 给你一张图,你需要给这个图的边染色,保证如果有环那么这个环内边的颜色不全相同,输出染色方案和用的颜色个数. n,m≤5e3n,m\le5e3n,m≤5e3 思 ...

最新文章

  1. woff, 在网页中嵌入任意字体的解决方案
  2. 算法 --- 二叉树查找树的先序(中序、后序)遍历的js实现
  3. struct interface_golang 避坑指南(1)interface 之坑多多 | 文末深圳 Meetup
  4. linux服务器 网速测试
  5. 网络安全管理规章制度
  6. 番茄时间管理法(Pomodoro Technique):一个番茄是如何让你工作更有效率的
  7. vi/vim显示行号
  8. 计算机等级保护 备案,信息安全等级保护备案实施细则
  9. 致移动开发的后10年
  10. 万物皆可DAO?一文带你全方位解读DAO类型
  11. 五分钟掌握SEO入门实用优化技巧
  12. 【干货】PS超实用功能:美化照片
  13. 如何快速有效的推广微信公众帐号
  14. ⽤户去输⼊⼀个⼈民币⾦额,然后程序会计算如何去⽤20元纸币,10元纸币,5元纸币和⼀元纸币去表⽰这个⼈民币⾦额。要求使⽤最⼩数⽬的纸币。
  15. 【3分钟高效制作PPT】ChatGPT搭配闪击PPT生成PPT,你只需要输入一个标题
  16. python实现用伏羲八卦对ASCII码进行加密
  17. 【JAVA8】快速理解Consumer、Supplier、Predicate与Function
  18. 【CSS】线性渐变、径向渐变
  19. ubuntu:软件包
  20. 通过两个坐标系对应点计算转换关系

热门文章

  1. 汇编学习--7.12--总结
  2. android home 销毁 activity,android 触发home之后activity销毁问题
  3. webpack配置_webpack的配置
  4. 四川农大2020计算机专业录取分数线,四川农业大学2020年在全国各省市分专业录取分数线!含艺体类!...
  5. YII with()
  6. fdisk、parted无损调整普通分区大小
  7. DWR入门教程(http://www.cnblogs.com/cyjch/archive/2012/02/16/2353758.html)
  8. 文本处理命令系列——cut
  9. [代码片断]SQL中解析XML数据
  10. 家居有线网络布线方案(转)