51nod 1110 距离之和最小 V3
来源:互联网 发布:java截取汉字字符串 编辑:程序博客网 时间:2024/06/05 17:04
把权值为x的一个点,当成x个权值为1的点。
#include <bits/stdc++.h>using namespace std;typedef long long LL;const int MAXN = 10010;struct Point{ LL x,val; bool operator < (const Point& b) const { return x < b.x; }};Point ps[MAXN];int main(){ LL n; LL all = 0; scanf("%lld",&n); for(LL i = 0; i < n; ++i) { scanf("%lld %lld",&ps[i].x,&ps[i].val); all += ps[i].val; } sort(ps,ps+n); LL mint; LL sindex = 0,eindex = n-1,cnt = 0,res = 0; all /= 2; while(cnt < all && sindex <= eindex) { mint = min(ps[sindex].val,ps[eindex].val); cnt += mint; res += mint*(ps[eindex].x-ps[sindex].x); ps[sindex].val -= mint; ps[eindex].val -= mint; if(ps[sindex].val == 0) ++sindex; if(ps[eindex].val == 0) --eindex; } printf("%lld\n",res); return 0;}
阅读全文
0 0
- 【51Nod 1110 】距离之和最小 V3
- 51nod 1110 距离之和最小 V3
- 51nod-【1110 距离之和最小 V3】
- 51nod 1110 距离之和最小 V3
- 51nod 1110 距离之和最小 V3
- 51nod 1110 距离之和最小 V3
- 51NOD 1110 距离之和最小 V3(中位数 + 技巧)
- 51Nod-1110-距离之和最小 V3
- 51nod-1110 距离之和最小 V3(中位数)
- 51NOD 1110 距离之和最小 V3 三分法
- 51Nod 1110 带权距离之和最小V3
- [51Nod 1110 距离之和最小 V3]三分
- 51 nod 1110 距离之和最小 V3(中位数)
- 51nod 1096 距离之和最小 && 1108-距离之和最小 V2(简单数学)&& 1110 距离之和最小 V3(逆思维)
- 51Nod 1110 距离之和最小 V3(中位数+权值转化为个数)
- 距离之和最小 V3
- 距离之和最小 V3
- 51nod1110 距离之和最小 V3
- STM32时钟配置方法详解
- js 把线性的数据结构改成树形结构
- android 标题栏颜色渐变和阴影
- 如何将本地项目上传至GitHub(so easy!!!)
- redis之基本命令
- 51nod 1110 距离之和最小 V3
- Mybatis-generator 逆向工程
- Flume实战(实时导入日志内容进ODPS)
- Makefile四书写命令
- js调用原生方法解决办法
- HDFS的java客户端编写
- Java:增强型for循环,
- java字符串判断是不是数字
- HDU 6108 小C的倍数问题(数学)