codevs4203山区建小学
/* 状态:f[i][j] 前i个村庄已经建了j个学校 转移:f[i][j]=min(f[i][j],f[ii][j-1]+s[ii+1][i]) 1<=ii<=i-1 */ #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include <algorithm> using namespace std; int n,m,a[505],h[505],s[505][505],f[505][505],ans; int Dfs(int nn,int mm) {int i,j,k;if(f[nn][mm]<0x3f3f3f3f)return f[nn][mm];//记忆化(如果10000000 会TLE) if(nn<=mm)return f[nn][mm]=0;//每个村都可以建 返回0 if(mm==1)return f[nn][mm]=s[1][nn];//只建一个 返回最大(此时建在中点) for(i=1;i<=nn-1;i++)f[nn][mm]=min(f[nn][mm],Dfs(i,mm-1)+s[i+1][nn]);// 转移式表示在区间i+1..nn的中点建立一所学校使这个区间内的所有村庄都到这里上学,其中s为最小距离之和。return f[nn][mm]; } int main() {int i,j,k,mm;cin>>n>>m;for(i=1;i<=n-1;i++)cin>>a[i];for(i=1;i<=n;i++)h[i]=h[i-1]+a[i-1];//前缀和 memset(f,0x3f,sizeof(f));for(i=1;i<=n;i++)for(j=i;j<=n;j++){mm=(i+j)/2;for(k=i;k<=j;k++)s[i][j]+=abs(h[mm]-h[k]);//i-->j建一个学校最少路程和(默认建在(i+j)/2处) }ans=Dfs(n,m);cout<<ans;return 0; }
转载于:https://www.cnblogs.com/yanlifneg/p/5424926.html
codevs4203山区建小学相关推荐
- 信息学奥赛一本通(1197:山区建小学)
1197:山区建小学 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 3900 通过数: 2713 [题目描述] 政府在某山区修建了一条道路,恰好穿越总共m ...
- 【披着递推皮的动态规划】 山区建小学 题解
今天小编随意写了一道老师布置的题,这是一道看起来很普通的题,我却不明白它为什么放在递推中-- 废话不多说,直接看题. ▍1197:山区建小学 [题目描述] 政府在某山区修建了一条道路,恰好穿越总共m个 ...
- 1197 山区建小学
1197 山区建小学 读题20分钟,想题10分钟,看代码20分钟,理解代码20分钟,写代码10分钟,调代码40分钟-(逃 个人感觉是练的递推里面比较复杂的,应该是一道绿题吧,光递推式就很难找 设状态a ...
- 【Open Judge】7624 山区建小学
** 7624:山区建小学 ** ** 描述 ** 政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任意两个村庄只能通过这条路来往.已知任意两个相邻的村庄之间的距离为d ...
- 动态规划——openjudge7624山区建小学
题目: 描述 政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任意两个村庄只能通过这条路来往.已知任意两个相邻的村庄之间的距离为di(为正整数),其中,0 < i ...
- 7624:山区建小学
题目链接 描述 政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任意两个村庄只能通过这条路来往.已知任意两个相邻的村庄之间的距离为di(为正整数),其中,0 < ...
- 【OpenJudge - noi - 7624】山区建小学(dp)
题干: 总时间限制: 1000ms 内存限制: 65536kB 描述 政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任意两个村庄只能通过这条路来往.已知任意两个相邻的 ...
- 山区建小学(信息学奥赛一本通-T1197)
[题目描述] 政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任意两个村庄只能通过这条路来往.已知任意两个相邻的村庄之间的距离为didi(为正整数),其中,0<i ...
- openjudge7624:山区建小学
描述 政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任意两个村庄只能通过这条路来往.已知任意两个相邻的村庄之间的距离为di(为正整数),其中,0 < i < ...
最新文章
- 微软MCITP系列课程(二七)管理域和林信任
- pacman安装php的位置,PacMan 01——地图的搭建
- Office 2010 Multi-language Pack download
- HTML5表单的创建及与PHP的交互
- Android_(菜单)选项菜单
- python算法题_python基本算法题(一)
- VS2019 禁止Web项目停止调试后自动关闭浏览器(在浏览器窗口关闭时停止调试程序,在调试停止时关闭浏览器)
- java地图 热力图,腾讯地图数据可视化之热力图
- 个人作业-Week1
- 亟待学习的内容 提醒贴
- Android fragment原因,Android总结之Fragment
- 2021大学网课答案搜题公众号
- 笔记本外接显示器之后扩展屏分辨率问题
- html 向上滑动,jQuery - 使用.slideUp()方法向上滑动HTML元素
- 现在应该继续投资公链?还是投资应用级协议?
- python根据日期生成动态密码
- 计算机安全会议2017,科学网-第四届中国密码学与数据安全学术会议(CCDS2017)在衡阳师院召开-李浪的博文...
- 计算机中负数和正数的二进制表示
- java做一个日历程序_java实现的一个简单日历
- Halcon视觉软件库介绍
热门文章
- linux arm下硬件驱动程序放哪里,Arm-Linux摄像头驱动程序的移植
- STM32-时钟-时钟树-时钟初始化配置
- 编写有效用例电子版_软件测试人员必须编写代码吗?
- promise的状态以及api介绍_2019年,盘点一些我出过的前端面试题以及对求职者的建议
- android+录像中截图软件下载,录屏截图大师app
- java final 变量只读_java final的使用总结
- oracle10g支持数据泵么,Oracle 10g使用数据泵(EXPDP和IMPDP)。
- 利用代码分别实现jdk动态代理和cglib动态代理_面试之动态代理
- php商城的购物车功能,php实现购物车功能(以大苹果购物网为例)
- Git clone的使用方法