URAL1900 Brainwashing Device(dp)
二维dp挺好推 dp[i][j] = max(dp[i][j],dp[g][j-1]+o[i][i+1]-o[g][i+1])(i>g>=j-1) dp[i][j]表示第i个站台开放第j次设备 预处理出来通过i-j的人数 包括 i-1~j+1等等的 用o[i][j]表示的
没睡好 %>_<%
因为有可能全部都为0 初始化时dp设为-1.
#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
#include<vector>
#include<queue>
using namespace std;
#define LL long long
int dp[][],q[];
int w[][],o[][],pa[][];
int main()
{
int i,j,n,k;
cin>>n>>k;
for(i = ; i < n ;i++)
{
for(j = ; j <= n-i ; j++)
{
int x;
cin>>x;
w[i][i+j] = x;
}
}
for(i = ; i <= n ; i++)
{
for(j = n ; j > i ; j--)
o[i][j] = o[i][j+]+w[i][j]+o[i-][j]-o[i-][j+];
}
memset(dp,-,sizeof(dp));
for(i = ; i < n ;i++)
dp[i][] = o[i][i+];
for(j = ; j <= k ; j++)
for(i = j; i < n; i++)
{
int kk;
for(int g = ; g < i ; g++)
{
if(dp[g][j-]+o[i][i+]-o[g][i+]>dp[i][j])
{
dp[i][j] = dp[g][j-]+o[i][i+]-o[g][i+];
kk = g;
}
}
pa[i][j] = kk;
}
int maxz=-,x;
for(i = k; i < n ; i++)
{
if(maxz<dp[i][k])
{
maxz = dp[i][k];
x = i;
}
}
cout<<maxz<<endl;
int e = ;
q[e] = x;
while(k>)
{
x = pa[x][k];
q[++e] = x;
k--;
}
sort(q+,q+e+);
for(i = ; i < e ; i++)
cout<<q[i]<<" ";
cout<<q[e]<<endl;
return ;
}
/*
5 3
5 0 6 5
5 3 7
5 3
10
44
1 2 4
4 2
5 0 6
5 3
5
19
1 2 4 3
5 0 6
5 3
5
24
1 2 3
*/
URAL1900 Brainwashing Device(dp)的更多相关文章
- URAL - 1900 Brainwashing Device
While some people travel in space from planet to planet and discover new worlds, the others who live ...
- 1900. Brainwashing Device
http://acm.timus.ru/problem.aspx?space=1&num=1900 题目大意: 有N个车站,相邻车站之间形成一个段,这样就有N-1个段,每个段最多可以放一个洗脑 ...
- ADIv5.2
ADI:ARM Debug Interface,出到现在共有五代: 1)version1 and version 2:只针对ARM7TDMI和ARM9的processor: 2)version 3:只 ...
- 自动创建字符设备,不需mknod
自动创建设备文件 1.自动创建设备文件的流程 字符设备驱动模块 -->创建一个设备驱动class--->创建属于class的device--->调用mdev工具(自动完成)--> ...
- 构建自己的 Smart Life 私有云(一)-> 破解涂鸦智能插座
博客搬迁至https://blog.wangjiegulu.com RSS订阅:https://blog.wangjiegulu.com/feed.xml 原文链接:https://blog.wang ...
- px、dp与sp的区别以及换算
1.px 即像素,1px代表屏幕上的一个物理像素点. 2.dp dip:device independent pixels(设备独立像素),dp与dip一样,不同的设备有不同的显示效果,一般为了支持W ...
- 【Android学习】android布局中几个距离单位的区别:px、dp、sp
一.px 像素,我们经常说的400*800这种的就是像素,这个比较好理解. 二.dp 要理解dp,首先要先引入dpi这个概念,dpi全称是dots per inch,对角线每英寸的像素点的个数,所以, ...
- 关于dp dip dpi px
在Android开发中,屏幕适配是一件非常让人头疼的事情.有时候在这个机型上调试的漂漂亮亮的UI界面,换一部手机就丑的不忍直视.但为了我们软件更好的用户体验,我们必须适应Android市场上形形色色的 ...
- dp、px、dpi、ppi
概念: dpi(Dots Per Inch):每英寸上的点数,最初用于衡量打印物上每英寸的点数密度,打印机在一英寸内打多少个点.DPI值越小越不精细. ppi(Pixels Per Inch):每英寸 ...
随机推荐
- AngularJs学习笔记--html compiler
原文再续,书接上回...依旧参考http://code.angularjs.org/1.0.2/docs/guide/compiler 一.总括 Angular的HTML compiler允许开发者自 ...
- ios 获取n个月前或者n个月后的日期
NSCalendar *calendar = [NSCalendar currentCalendar]; NSRange range = [calendar rangeOfUnit:NSDayCale ...
- xml string 相互转换
一.使用最原始的javax.xml.parsers,标准的jdk api // 字符串转XMLString xmlStr = /"....../";StringReader sr ...
- 利用dsniff的tcpkill杀TCP连接
利用dsniff的tcpkill杀TCP连接 Linux连接久久不能释放的现象不常见,但偶然也会发生.进程虽不复存在,但是客户端的连接咬定青山不放松,死活也不肯吐出连接,导致重启进程时因操作系统判断监 ...
- POJ 3185
The Water Bowls Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4088 Accepted: 1609 D ...
- POJ 2141
#include<iostream> #include<stdio.h> using namespace std; int main() { //freopen("1 ...
- 离开csdn来到blog园
csdn里没有限制阅读访问的功能,所以我选择来到cnblog 但是不得不说,cnblog做的界面很丑,我个人很不喜欢,但是没办法
- Lua的require和module小结
Lua的require和module小结 module特性是lua5.1中新增的,用于设置Lua文件自己的模块,最常用的方式是module(name,package.seeall),有时候lua文件 ...
- gridview 绑定方法中带参数
OnClientClick='javascript:OrderDetailShow("<%# Eval('OrderType')%>")' 上面这种方式是错的法一: & ...
- ssh超时断开的解决方法
当用SSH Secure Shell连接Linux时,如果几分钟没有任何操作,连接就会断开,必须重新登陆才行,每次都重复相同的操作,很是烦人,本文总结了两种解决的方法. 方法1:更改ssh服务器的配置 ...