Codeforces Round #503 (by SIS, Div. 2) C. Elections
气死我了人生中第一次打cf就掉分了
A题大水题浪费太多时间囧明明都是A两题亮老师还上分了。。
表示C题打的时候就想到正解啊(而且还更加优秀,因为家里老爷机暴力跑的超龟以为不行 其实是没认真算复杂度),虽然不会证三分性,但是最后还是AC了,暴力1000ms+ 三分40ms+
看着就很奇淫的题,猛然脑海里就想到二分政党的最后得到的选票,然后发现没有单调性,但好像满足三分
然后每次就贪心,for一遍把那些比1政党本来就有的选票+要多拿的选票还要多的拿到比这个值少1
假如还不够要多拿的,那就在剩下的拿最小的凑够
#include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> #include<queue> using namespace std; typedef long long LL;int m; LL d[3100][3100],s[3100][3100]; struct node {LL d;int i,j;node(){}node(LL D,int I,int J){d=D,i=I,j=J;}friend bool operator >(node n1,node n2){return n1.d>n2.d;}friend bool operator <(node n1,node n2){return n1.d<n2.d;} }; priority_queue<node,vector<node>,greater<node> >q; LL check(int mid) {while(!q.empty())q.pop();LL ret=0;int cc=0;mid+=d[1][0];if(mid==0)return (1LL<<62);for(int i=2;i<=m;i++){if(d[i][0]>=mid){int u=d[i][0]-mid+1;ret+=s[i][u];if(u+1<=d[i][0])q.push(node(d[i][u+1],i,u+1));cc+=u;}else if(d[i][0]>0)q.push(node(d[i][1],i,1));}if(cc+d[1][0]<mid){int p=mid-(cc+d[1][0]);while(p--){node t=q.top();q.pop();ret+=t.d;if(t.j+1<=d[t.i][0])q.push(node(d[t.i][t.j+1],t.i,t.j+1));}}return ret; } int main() { // freopen("1.in","r",stdin); // freopen("1.out","w",stdout);int n,x;LL k;scanf("%d%d",&n,&m);for(int i=1;i<=m;i++)d[i][0]=0;for(int i=1;i<=n;i++){scanf("%d%I64d",&x,&k);d[x][++d[x][0]]=k;}for(int i=2;i<=m;i++){sort(d[i]+1,d[i]+d[i][0]+1);s[i][0]=0;for(int j=1;j<=d[i][0];j++)s[i][j]=s[i][j-1]+d[i][j];}int l=0,r=n-d[1][0];while(r-l>3){int mid=(l+r)/2;int mmid=(mid+r)/2;LL sum1=check(mid),sum2=check(mmid);if(sum1>sum2)l=mid+1;else r=mmid-1;}LL ans=check(l);for(int i=l+1;i<=r;i++){LL dd=check(i);if(dd<ans)ans=dd;}printf("%I64d\n",ans); return 0; }
转载于:https://www.cnblogs.com/AKCqhzdy/p/9464063.html
Codeforces Round #503 (by SIS, Div. 2) C. Elections相关推荐
- Codeforces Round #503 (by SIS, Div. 2) D. The hat(交互题)
题目链接:http://codeforces.com/contest/1020/problem/D 题意描述: 这是一个交互题,互交题就是你要输出一些问题,评测机就会回答你一些问题 你要在规定的提问次 ...
- Codeforces Round #503 (by SIS, Div. 1)D. the hat
原题链接:B. The hat 题意:有n(偶数)个人围成一个圈,每个人身上有一个数字,保证相邻两个人的数字差为1, 现在要把第i个人和第i+n/2个人面对面站着,例如现在有8个人,站好后如下: 1 ...
- Educational Codeforces Round 114 (Rated for Div. 2) (A ~ F)全题解
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Educational Codeforces Round 114 (Rated for Div. 2) ...
- Educational Codeforces Round 106 (Rated for Div. 2)(A ~ E)题解(每日训练 Day.16 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 Educational Codeforces Round 106 (Rated for Div. ...
- Educational Codeforces Round 37 (Rated for Div. 2) 1
Educational Codeforces Round 37 (Rated for Div. 2) A.Water The Garden 题意:Max想给花园浇水.花园可被视为长度为n的花园床,花园 ...
- 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这个时候两 ...
- 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, ...
- Educational Codeforces Round 114 (Rated for Div. 2) D. The Strongest Build 暴力 + bfs
传送门 文章目录 题意: 思路: 题意: 你有nnn个装备槽,每个槽里面有cic_ici个力量加成,对于每个槽只能选一个力量加成,现在给你mmm个力量组合[b1,b2,...,bn][b_1,b_2 ...
- Educational Codeforces Round 72 (Rated for Div. 2) D. Coloring Edges dfs树/拓扑找环
传送门 文章目录 题意: 思路: 题意: 给你一张图,你需要给这个图的边染色,保证如果有环那么这个环内边的颜色不全相同,输出染色方案和用的颜色个数. n,m≤5e3n,m\le5e3n,m≤5e3 思 ...
最新文章
- 一个n位的数,去掉其中的k位,问怎样去使得留下来的(n-k)位数按原来的前后顺序组成的数最小...
- C# CheckBox与RadioButton
- python编写篮球_Python编程2——Python实现计算篮球比赛是否领先安全的程序
- Electron是个啥?
- 解决 sessionStroage 无法在多个标签页共享数据的问题
- centos7下安装python3.7.0以上版本时报错ModuleNotFoundError: No module named ‘_ctypes‘的解决办法
- Python 简单网页爬虫学习
- top 100 liked Q (26-)
- 批量删除和修改特定前缀的mysql表
- python azure-storage-blob库 使用SAS key下载blob文件实例
- Matlab 中文版下载,安装图文教程
- c语言考研真题及答案pdf,中财信息学院C语言程序设计2002年考研真题及答案.pdf...
- 离散数学西电版复习笔记——第一章:命题逻辑
- 为什么很多视频一模一样,也没有被判定为搬运?
- 校园IPTV数字电视教学直播系统方案-淮安生态文旅区实验小学
- el-table中使用el-popover点击取消按钮时popover框的显示与隐藏问题
- AD中出现off grid pin问题的解决方法
- 思维导图怎么画?思维导图快速绘制教程
- A*寻路中第四种烘培寻路方法Recast Mesh方法:
- 测试电视是不是4k的软件,如何检测自家的电视是真4K还是假4K?当贝市场告诉你...