一条街道的两侧各连续坐落着 N 座单元楼。现在要为这些单元楼划分居民校区。

规则如下:

  1. 每个小区只能由同一侧连续的若干座单元楼组成。且两侧都恰有 K 个小区(每个小区至少有一栋楼)。

  2. 两侧的小区划分规则应该相同,比如,若左边的房子被分成 {1,2},{3} 这两个小区,那么右边也应该如此。

这样两边合计一共有 K 对小区。

用 ai,bii​​,b​i​​ 表示左右两边每座楼的人口在同侧所有单元楼总人口中所占的百分比,定义一个小区的相对拥挤程度为其人口百分比之和(左边就是对应 aia_ia​i​​ 的和,右边是对应 bib_ib​i​​ 的和)。定义这条街道的总拥挤程度为左右两边 KKK 对小区的相对拥挤程度之差的绝对值之和。

现在,请你求出可能的最大拥挤程度。

输入格式

第一行两个整数 N 和 k。

第二行 N 个实数,第 i 个数为 ai​i​​。

第三行 N 个实数,第 i 个数位 bi​i​​。

输出格式

一个实数,表示这条街道的最大相对拥挤程度,保留到小数点后六位。

数据范围与约定

对于 30%的数据:n≤20。

对于 100% 的数据:n≤800,k≤80。

保证 ∑ai=1,∑bi=111i​​=1,∑b​i​​=1。

样例解释

1号楼一个小区,(2,3) 号楼 1个小区。

这样相对拥挤程度最大为 abs(0.1−0.4)+abs(0.75+0.15−(0.3+0.3))=0.6。

样例输入

3 2
0.1 0.75 0.15
0.4 0.3 0.3

样例输出

0.600000
dp水题
f[i][j]表示前i个楼,j个小区的最大值
dp方程式显然,因为数据不大
 #include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
using namespace std;
double x[],y[],sx[],sy[];
double f[][];
int n,k;
int main()
{
scanf("%d %d\n",&n,&k);
for (int i=;i<=n;i++)
{
scanf("%lf",&x[i]);
sx[i]=sx[i-]+x[i];
}
for (int i=;i<=n;i++)
{
scanf("%lf",&y[i]);
sy[i]=sy[i-]+y[i];
}
for (int i=;i<=n;i++)
{
f[i][]=fabs(sx[i]-sy[i]);
for (int j=;j<=i, j<=k;j++)
for (int l=;l<=i-;l++)
{
if (l>=j-)
{
double r=f[l][j-]+fabs(sx[i]-sx[l]-sy[i]+sy[l]);
if (r>f[i][j]) f[i][j]=r;
}
}
}
printf("%f\n",f[n][k]);
return ;
}

计蒜客NOIP模拟赛(3)D2T1 小区划分的更多相关文章

  1. 计蒜客NOIP模拟赛4 D2T1 鬼脚图

    鬼脚图,又称画鬼脚,在日本称作阿弥陀签,是一种经典游戏,也是一种简易的决策方法,常常用来抽签或决定分配组合. 下图就是一张鬼脚图,其包含若干条竖线和若干条横线.请注意,横线只能水平连接相邻的两条竖线, ...

  2. 计蒜客NOIP模拟赛(2) D2T1 劫富济贫

    [问题描述] 吕弗·普自小从英国长大,受到骑士精神的影响,吕弗·普的梦想便是成为一位劫富济贫的骑士. 吕弗·普拿到了一份全国富豪的名单(不在名单上的都是穷人),上面写着所有富豪的名字以及他们的总资产, ...

  3. 计蒜客NOIP模拟赛6 D1T1Diamond-square

    Diamond-square 算法是一种能够用于生成噪声的算法,现在我们考虑这个算法的一个变种. 你有一个 2^n\times 2^n2​n​​×2​n​​ 的网格,一共有 (2^n+1)^2(2​n ...

  4. 计蒜客 NOIP模拟赛(3) D1T1火山喷发

    火山喷发对所有附近的生物具有毁灭性的影响.在本题中,我们希望用数值来模拟这一过程. 在环境里有 nnn 个生物分别具有 A1,A2,⋯,An​​点生命值,一次火山喷发总计 M轮,每轮造成 1点伤害,等 ...

  5. 计蒜客NOIP模拟赛(2) D1T1邻家男孩

    凡是一个具有领导力的孩子.现实生活中他特别喜欢玩一个叫做 UNO 的纸牌游戏,他也总是带着其他小朋友一起玩,然后战胜他们.慢慢地,他厌倦了胜利,于是准备发明一种新的双人纸牌游戏. 初始时,每个人手中都 ...

  6. 计蒜客NOIP模拟赛5 D1T1 机智的 AmyZhi

    那年一个雨季,AmyZhi 在校门外弯身买参考书. 这时 SiriusRen 走过来,一言不合甩给她一道“自认为”很难的题: --------------- 给你一个数字 NN(NN 的范围是 11  ...

  7. 计蒜客NOIP模拟赛4 D2T2 跑步爱天天

    YOUSIKI 在 noip2016 的一道<天天爱跑步>的题爆零后,潜心研究树上问题,成为了一代大师,于是皮皮妖为了测验他,出了一道题,名曰<跑步爱天天>. 有一个以 1 为 ...

  8. 计蒜客NOIP模拟赛4 D1T3 小X的佛光

    小 X 是远近闻名的学佛,平日里最喜欢做的事就是蒸发学水. 小 X 所在的城市 X 城是一个含有 N 个节点的无向图,同时,由于 X 国是一个发展中国家,为了节约城市建设的经费,X 国首相在建造 X ...

  9. 计蒜客NOIP模拟赛4 D1T2小X的密室

    小 X 正困在一个密室里,他希望尽快逃出密室. 密室中有 N 个房间,初始时,小 X 在 1 号房间,而出口在 N 号房间. 密室的每一个房间中可能有着一些钥匙和一些传送门,一个传送门会单向地创造一条 ...

随机推荐

  1. python day1 基本语法作业

    一.过7 start =1 while start<=10: if start !=7: print(start) start +=1 二.100以内的和 sum = 0 start = 1 w ...

  2. bzoj 2962 序列操作

    2962: 序列操作 Time Limit: 50 Sec  Memory Limit: 256 MB[Submit][Status][Discuss] Description 有一个长度为n的序列, ...

  3. bzoj 4399 魔法少女LJJ

    4399: 魔法少女LJJ Time Limit: 20 Sec  Memory Limit: 162 MBhttp://www.lydsy.com/JudgeOnline/problem.php?i ...

  4. 从PRISM开始学WPF(二)Prism?

    目录: 从PRISM开始学WPF(一)WPF? 从PRISM开始学WPF(二)Prism? 从PRISM开始学WPF(三)Prism-Region? 从PRISM开始学WPF(四)Prism-Modu ...

  5. AS 实机测试 ADB.exe 提示

    adb fail to open error: could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037: 通常每 ...

  6. Angular开发实践(八): 使用ng-content进行组件内容投射

    在Angular中,组件属于特殊的指令,它的特殊之处在于它有自己的模板(html)和样式(css).因此使用组件可以使我们的代码具有强解耦.可复用.易扩展等特性.通常的组件定义如下: demo.com ...

  7. LeetCode & Q66-Plus One-Easy

    Array Description: Given a non-negative integer represented as a non-empty array of digits, plus one ...

  8. STM32读取温湿度传感器DHT11和DHT21(AM2301)系列问题

    1.DHT11和DHT21传感器 这两种传感器都是奥松公司的产品,具体的传感器说明书在其官网上有(www.aosong.com). DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合 ...

  9. Python内置函数(57)——print

    英文文档: print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) Print objects to the text str ...

  10. Spring知识点回顾(08)spring aware

    Spring知识点回顾(08)spring aware BeanNameAware 获得容器中的bean名称 BeanFactoryAware 获得当前的bean factory Applicatio ...