Description

 
一个人口统计办公室要绘制一张地图。由于技术的原因只能使用少量的颜色。两个有相同或相近人口的区域在地图应用相同的颜色。例如一种颜色k,则A(k) 是相应的数,则有:
  • 在用颜色k的区域中至少有一半的区域的人口不大于A(k)
  • 在用颜色k的区域中至少有一半的区域的人口不小于A(k)
区域颜色误差是该区域的人口与A(k)差的绝对值。累计误差是所有区域颜色误差的总和。我们要求出一种最佳的染色方案(累计误差最小)。
任务
写一个程序:
  • 读入每个区域的人口数
  • 计算最小的累计误差
  • 将结果输出

Input

第一行有一个整数n,表示区域数,10< n <3000。在第二行中的数m表示颜色数,2 <= m <= 10。在接下来的n中每行有一个非负整数,表示一个区域的人口。人口都不超过2^30

Output

输出一个整数,表示最小的累计误差

Sample Input

11
3
21
14
6
18
10
2
15
12
3
2
2

Sample Output

15
首先将各个区域按人口大小排序,这样就可以一段一段取,那么问题就变成了将n个区域分成m段,使各段区域颜色误差之和最小,可以用动归来实现:
     i表示当前j这一段的结尾,k表示上一段j-1段的结尾,f[i][j]前i个数分为j段的最小值
     f[i][j]=min(f[i][j],f[k][j-1]+   k+1到i的区域区域颜色误差);
至于区域颜色误差,这里用前缀和来实现,s[i]表示到i为止的人数总和
    k+1到i的误差=a[(i+k+1)/2]*((i+k+1)/2-k)-s[(i+k+1)/2]+s[k]    +   s[i]-s[(i+k+1)/2]-a[(i+k+1)/2]*(i-(k+i+1)/2)
A[k]左半边的误差                                                      A[k]右半边的误差
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int a[3333]={0},f[3333][11]={0},s[3333]={0};int main()
{int n=0,m=0;cin>>n>>m;for (int i=1;i<=n;i++)cin>>a[i];sort(a+1,a+1+n);for (int i=1;i<=n;i++)s[i]=s[i-1]+a[i];memset(f,2^30+1,sizeof(f));f[0][0]=0;for (int i=1;i<=n;++i)for (int j=1;j<=m;++j)for (int k=0;k<i;++k)f[i][j]=min(f[i][j],f[k][j-1]+a[(i+k+1)/2]*((i+k+1)/2-k)-s[(i+k+1)/2]+s[k]+s[i]-s[(i+k+1)/2]-a[(i+k+1)/2]*(i-(k+i+1)/2));cout<<f[n][m]<<endl;return 0;
}

  

转载于:https://www.cnblogs.com/Maxxzy/p/6224564.html

DSY2933*地图相关推荐

  1. 高精地图与自动驾驶(下)

    高精地图与自动驾驶(下) 二.高精地图与自动驾驶 谈到高精地图对自动驾驶的作用,可以对比自动驾驶和人类驾驶的流程的相通性. 人驾驶的时候以眼睛为主,耳朵辅助观察测量环境:自动驾驶车用多种传感器包括摄像 ...

  2. 高精地图与自动驾驶(上)

    高精地图与自动驾驶(上) 前言 自动驾驶的实现主要有三个步骤:感知.决策规划.行车控制.这与你走路上班/上学的逻辑是相似的:眼睛看到画面,告诉大脑,然后你就知道了自己在哪里,以及要往哪个方向走,并指挥 ...

  3. 地图构建两篇顶级论文解析

    地图构建两篇顶级论文解析 一.基于声纳的密集水下场景重建 标题:Dense, Sonar-based Reconstruction of Underwater Scenes 作者:Pedro V. T ...

  4. 高精地图中导航标识识别

    高精地图中导航标识识别 思路 主要介绍高精地图导航标识识别上的技术演进,这些技术手段在不同时期服务了高精地图产线需求. 高精地图介绍 当你开车导航的时候,导航地图会向我们推荐一条或几条路线,有些地图甚 ...

  5. 百度地图android室内定位,百度地图4.0正式发布,主打免费语音导航、室内定位、实时公交和生活搜索 (视频)...

    自2010年10月百度地图在塞班平台上线了第一个版本以后,陆续登陆了Android和iPhone平台,据百度地图团队介绍,其最新的用户数已达7000万.今天,百度地图4.0 正式发布(iPhone版 ...

  6. 微信小程序地图的实现

    实现效果图 不过我换是推荐看下官方文档,记得一定要看,很多属性要了解 实现代码: wxml <view class="page-body"><mapid=&quo ...

  7. 百度地图轨迹回放,自定义路书,边走边画线

    转自:https://www.cnblogs.com/syj2016/p/5685294.html 百度地图轨迹回放,自定义路书,边走边画线 在原有的百度路书的基础上,做了修改,使其能实现边走边画线的 ...

  8. 使用GeoServer导出地图数据GeoJSON并应用

    在项目中,需要使用乡镇街道的地图边界,之前一直使用的是百度地图或Echarts地图,其没有这部分行政区的数据,需要在第三方购买数据,其提供的是shp文件 主文件:counties.shp 索引文件:c ...

  9. 百度地图JavaScript API自定义覆盖物、自定义信息窗口增删时的显示问题

    项目中,需求:在百度地图上实时画出车辆,并能点击车辆弹出信息框查看实时信息. 实现:通过不停的画覆盖物并删除掉.点击覆盖物时弹出信息窗口. 问题:删除掉覆盖物后信息窗也删除掉了.因为信息窗是建立在覆盖 ...

最新文章

  1. 档案盒正面标签制作_2020昆明大学档案盒价格价格行情
  2. 【错误记录】Android NDK 错误排查记录 ( error: undefined reference to | Linking CXX shared library FAILED )
  3. 武大上交发布首篇「图像匹配」大领域综述!涵盖 8 个子领域,汇总近 20年经典方法
  4. 用过 mongodb 吧, 这三个大坑踩过吗?
  5. C#LeetCode刷题之#171-Excel表列序号(Excel Sheet Column Number)
  6. linux 卸载 patch,Oracle RAC 平台下 Patch 安装与卸载 步骤 收藏
  7. 人机交互大作业_为百亿级未来布局 徐工XG新一代高空作业设备全球首发
  8. java 中的异步回调
  9. 超级实况服务器维护中,超级实况最新版攻略
  10. 数学建模常用算法:人工鱼群算法(AFAS)求解二元函数最小值+限定x,y范围测试【java实现--详细注释+Matlab绘制小鱼游动过程】
  11. CUDA编程第五章: 共享内存常量内存
  12. 视频分析的非局部(non-local) 神经网络模块
  13. 坐标下载gRaphael——JavaScript 矢量图表库:两行代码实现精美图表
  14. oracle存储过程报错:ORA-06550: wrong number or types of arguments in call to
  15. DRM(一):什么是DRM
  16. HP大中华区总裁孙振耀退休感言---关于职场(值得深思)
  17. 矩阵转置相关公式_(机器学习示例)上证指数、深证指数相关性研究
  18. 基于PHP+MySQL的大学生交友社交网站
  19. 传入收据提报年月,某个时间段内哪些时间没有提报收据,传入list存入的格式(2017.01-2019.05)
  20. 华为G700升级鸿蒙,华为G700刷入recovery的教程(移动版)

热门文章

  1. c盘明明没装什么东西却爆满怎么办?
  2. 宽带上网加速器 免费
  3. 自动化专业中的c语言案例分析,案例教学法论文,关于案例教学法在《c语言程序设计》课程中的应用相关参考文献资料-免费论文范文...
  4. turn upturn offturn on用法
  5. 计算机知识学完就忘?快来和我一起进行随机复习
  6. 【android】音乐播放器之设计思路
  7. 艾司博讯:拼多多货源从哪里来
  8. win10下使用JMeter5进行压力测试
  9. ec箱式风扇 ec box fan
  10. 抽奖滚动效果 python_python实现转盘效果 python实现轮盘抽奖游戏