acm-(贪心)Codeforces Raif Round 1 (Div. 1 + Div. 2) E. Carrots for Rabbits
传送门
本题的贪心十分巧妙,我们考虑将所有数字的划分状态表示为(x,cur,v)(x,cur,v)(x,cur,v)的形式,xxx代表数字值,curcurcur为当前xxx被分成的份数,vvv代表从cur−1cur-1cur−1份到curcurcur份的时候对ansansans的减少量。
ansansans初始化为所有数字的平方和,那么我们每次都选择减去最大的vvv即可,总共可以减k−nk-nk−n次,顺便更新(x,cur,v)(x,cur,v)(x,cur,v)到(x,cur+1,v′)(x,cur+1,v')(x,cur+1,v′)。
vvv也很好计算,设函数g(x,cur)g(x,cur)g(x,cur)代表将xxx划分为curcurcur份的时候对应的平方和的最小值,那么vvv就是g(x,cur−1)−g(x,cur)g(x,cur-1)-g(x,cur)g(x,cur−1)−g(x,cur)。
struct Node{ll x,cur,v;bool operator <(const Node a)const{return v<a.v;}
};
int n,k,nk;priority_queue<Node>q;
ll g(int x,int k){ll d=x/k,res=x%k;return d*d*(k-res)+(d+1)*(d+1)*res;
}
int main(){n=rd(),k=rd();nk=k-n;ll ans=0;FOR(i,1,n+1){ll u=rd();q.push(Node{u,2,g(u,1)-g(u,2)});ans+=u*u;}FOR(i,0,nk){Node u=q.top();q.pop();ans-=u.v;u.v=g(u.x,u.cur)-g(u.x,u.cur+1);u.cur++;q.push(u);}printf("%lld\n",ans);
}
acm-(贪心)Codeforces Raif Round 1 (Div. 1 + Div. 2) E. Carrots for Rabbits相关推荐
- Codeforces Raif Round 1 (Div. 1 + Div. 2) E. Carrots for Rabbits(贪心)
传送门 题目大意 给出nnn个萝卜,现在需要分成长度为正整数的若干个萝卜,定义每个长度为xxx的胡萝卜贡献为x2x^2x2,问最小的贡献是多少. 解题思路 手玩一下样例,还是不难得出对于一个胡萝卜若需 ...
- Codeforces Raif Round 1 (Div. 1 + Div. 2) E. Carrots for Rabbits(优先队列+贪心)
原题链接 题意 有N个萝卜,K只兔子,要求把N个萝卜分成K份,一个兔子吃一个长为X的萝卜的时间为X*X,求怎么分能使最后的时间最短. 思路 刚看到这个题的时候,刚开始的思路是,把所有的萝卜都存在一个大 ...
- 贪心 ---- Codeforces Global Round 8,B. Codeforces Subsequences[贪心,贪的乘法原理]
题目链接 给出字符串,统计子串(子串字母可以跳跃)是codeforces的数量. 本题要求,给出子串最少数量k,构造字符串s,要求字符串s包含的字母数量最少,输出这个最少的字符串s. 题目要求是至少有 ...
- Codeforces Edu Round 68 (Rated for Div. 2)
比较水的一场. 题目链接:https://codeforces.com/contest/1194 A: 秒懂跟x没关系,答案就是2n. B: 因为n*m<=4e5,统计每行每列点的数量后直接O( ...
- Codeforces Edu Round 64 (Rated for Div. 2)
本来在快乐写题的,突然A数据炸了,全场重测,unrated-- 昨晚的题也有点毒,不过总体来说还算简单. A: 一开始我也wa on 3了,仔细想想就会发现有重点的情况. 比如n==3, 3 1 2. ...
- Educational Codeforces Round 75 (Rated for Div. 2) E2. Voting (Hard Version) 贪心
传送门 文章目录 题意: 思路: 题意: n≤2e5,m≤n,p≤1e9n\le2e5,m\le n,p\le 1e9n≤2e5,m≤n,p≤1e9 思路: 首先需要发现一些性质,假设preipre_ ...
- Educational Codeforces Round 106 (Rated for Div. 2)(A ~ E)题解(每日训练 Day.16 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 Educational Codeforces Round 106 (Rated for Div. ...
- Educational Codeforces Round 114 (Rated for Div. 2) (A ~ F)全题解
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Educational Codeforces Round 114 (Rated for Div. 2) ...
- 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这个时候两 ...
最新文章
- 第一次接觸sbt會遇到的
- linux 自动连接无限,hotplug应用实例:自动连接无线网
- React v16版本 源码解读
- 12006.eeprom之M24C02
- Float Protocol将于5月7日至10日进行FLOAT代币创世发布
- Docker方式安装SonarQube
- Java 实现邮箱验证
- MQL5由简到繁系列一
- 教你如何在github上提交代码(Window10示例,内含2021年github提交机制的更新变动)
- 中国牛市还会来吗,中国牛市啥时候到?
- linux 7.5防火墙配置,Centos7.5 firewalld防火墙配置
- Roaring Bitmap 更好的位图压缩算法
- APP Bomb Lab
- EMCP 物联网云平台萤石云密钥功能使用手册
- 响应式圣经:10W字,实现Spring响应式编程自由
- Vue项目实战 —— 后台管理系统( pc端 )
- 解决adobe reader XI 打开后闪退问题,亲测有效
- Java基础之map总结
- xposed插件微信机器人
- git push 之后如何不用回滚或者abandoned方式等修改已提交代码呢?
热门文章
- 【K8S】ctr和crictl的区别
- 推荐系统-排序层:主流CTR模型综述【Click-Through-Rate,点击率预估,指精排层的排序】【CTR 模型的输入(即训练数据)是:大量成对的 (features, label)数据】
- 浏览器全屏和pc显示器全屏
- 发光二极管的keil代码c语言,用Keil点亮一个发光二极管
- 合肥python培训周末
- matlab中文帮助_MATLAB数据及图像处理与机器学习培训
- 电脑黑屏只有鼠标能动怎么办???
- 【计算机二级等级考试】公共基础知识-学习笔记
- 纯原生 js 简易 实现 鼠标拖尾效果
- web,java,poi导出excel