博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA12904 Load Balancing(中途相遇法)
阅读量:6709 次
发布时间:2019-06-25

本文共 1094 字,大约阅读时间需要 3 分钟。

虽然这题可以用暴力n^3过,但是还有有种n^2的方法的,枚举b,对于b,分别枚举a和c,得到对于这个b的最优解,然后从所以b中选一个最优的。

要保证字典序最小,只要从小往大枚举就好了

感谢moonflyer

#include
#include
#include
#include
using namespace std;const int maxn = 160+5;int cnt[maxn];int sum[maxn];int main(){ //freopen("in.txt","r",stdin); int T; scanf("%d",&T); int Cas = 0; while(T--){ int n; memset(cnt,0,sizeof(cnt)); scanf("%d",&n); for(int i = 0; i < n; i++){ int t; scanf("%d",&t); cnt[t]++; } memcpy(sum,cnt,sizeof(cnt)); for(int i = 1; i <= 160; i++) sum[i] += sum[i-1]; double ave = n/4.0; double bdif = 1e30; int besta = 0,bestb = 1,bestc = 2; for(int b = 1; b < 160; b++){ double dif1 = fabs(sum[0]-ave) + fabs(sum[b]-sum[0]-ave); int pba = 0; for(int a = 1; a < b; a++){ double ndif = fabs(sum[a]-ave)+fabs(sum[b]-sum[a]-ave); if(ndif

 

转载于:https://www.cnblogs.com/jerryRey/p/4655919.html

你可能感兴趣的文章
linux之nginx
查看>>
使用Python自带difflib模块进行文件内容差异对比
查看>>
echarts版本折线图
查看>>
JDK1.8源码(六)——java.util.LinkedList 类
查看>>
理解UIView的绘制
查看>>
如何做好iOS应用安全?这有一把行之有效的“三板斧”
查看>>
maven 如何给web项目添加jar包依赖
查看>>
41岁中兴员工:这可能是我第5次失业_中兴被美国制裁的思考
查看>>
[LeetCode] Basic Calculator IV 基本计算器之四
查看>>
Gitlab自动触发Jenkins构建打包
查看>>
玩转可视化--来聊聊地图投影的学问
查看>>
使用 JS 关闭警告框及监听自定义事件(amaze ui)
查看>>
WebSocket和Socket
查看>>
编程实现将一个N进制数转换成M进制数
查看>>
linux下elasticsearch 安装、配置及示例
查看>>
html常用样式margin、border怎么使用
查看>>
Objective-C 中Socket常用转换机制(NSData,NSString,int,Uint8,Uint16,Uint32,byte[])
查看>>
win10 git bash 闪退
查看>>
读书笔记
查看>>
mysql分库分表方案之sharding-jdbc使用(非demo示例)
查看>>