1133: [POI2009]Kon

Time Limit: 10 Sec  Memory Limit: 162 MB
Submit: 242  Solved: 81
[Submit][Status][Discuss]

Description

火车沿途有N个车站,告诉你从每一站到每一站的人数,现在查票员只能查K次票,每次查票可以控制目前在车上的所有乘客的车票。求一个查票方案,使得控制的不同的乘客尽量多。 (显然对同一个乘客查票多次是没有意义的,只算一次)

Input

第一行正整数 N K (1≤K<N≤600, K≤50). 接下来N-1行,第i行第j个数描述第i站上,到第i+j站下的乘客个数。总乘客数≤2*10^9

Output

单调增的K个整数,用空格隔开,表示经过哪些站以后查票。

Sample Input

7 2
2 1 8 2 1 0
3 5 1 0 1
3 1 2 2
3 5 6
3 2
1

Sample Output

2 5
 
  还是对这种字典序dp的实现方法非常不熟悉,以后看到字典序首先思考dp方向,然后注意废状态的处理,我由于dp数组最开始没有把状态赋为-INF,从而有些状态由一些废状态转移过来了,wa了很久。
 
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define MAXN 660
#define INF 0x3f3f3f3f
int dp[][MAXN];
int tot[MAXN][MAXN];
int stot[MAXN][MAXN];
int tot2[MAXN][MAXN];
int stot2[MAXN][MAXN];
int pv[MAXN][MAXN]; int main()
{
//freopen("input.txt","r",stdin);
int n,m;
scanf("%d%d",&n,&m);
for (int i=;i<=n;i++)
for (int j=i+;j<=n;j++)
scanf("%d",&tot[i][j]),tot2[j][i]=tot[i][j];
for (int i=;i<=n;i++)
for (int j=i+;j<=n;j++)
stot[i][j]=stot[i][j-]+tot[i][j];
for (int i=;i<=n;i++)
for (int j=;j<i;j++)
stot2[i][j]=stot2[i][j-]+tot2[i][j];
for (int i=;i<MAXN;i++)
for (int j=;j<MAXN;j++)
dp[i][j]=-INF;
for (int i=;i<=n;i++)
dp[][i]=;
for (register int p=;p<=m;p++)
{
for (int i=;i<=n;i++)
{
int v=;
for (int k=i;k<n;k++)
{
v+=stot[k][n];
v-=stot2[k][k-]-stot2[k][i-];
if (dp[p][i]<dp[p-][k+]+v)
{
dp[p][i]=dp[p-][k+]+v;
pv[p][i]=k+;
}
}
}
}
//printf("%d\n",dp[m][1]);
int cur=;
for (int i=;i<m-;i++)
{
cur=pv[m-i][cur];
printf("%d ",cur-);
}
cur=pv[m-(m-)][cur];
printf("%d",cur-);
printf("\n");
}

bzoj 1133: [POI2009]Kon dp的更多相关文章

  1. bzoj1133: [POI2009]Kon

    bzoj1133: [POI2009]Kon 链接 https://www.lydsy.com/JudgeOnline/problem.php?id=1133 思路 f[i][k]表示前i个,选了k个 ...

  2. [BZOJ 1135][POI2009]Lyz

    [BZOJ 1135][POI2009]Lyz 题意 初始时滑冰俱乐部有 \(1\) 到 \(n\) 号的溜冰鞋各 \(k\) 双.已知 \(x\) 号脚的人可以穿 \(x\) 到 \(x+d\) 的 ...

  3. bzoj 1138: [POI2009]Baj 最短回文路 dp优化

    1138: [POI2009]Baj 最短回文路 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 161  Solved: 48[Submit][Sta ...

  4. [BZOJ 3791] 作业 【DP】

    题目链接:BZOJ - 3791 题目分析 一个性质:将一个序列染色 k 次,每次染连续的一段,最多将序列染成 2k-1 段不同的颜色. 那么就可以 DP 了,f[i][j][0|1] 表示到第 i ...

  5. [BZOJ 2165] 大楼 【DP + 倍增 + 二进制】

    题目链接:BZOJ - 2165 题目分析: 这道题我读了题之后就想不出来怎么做,题解也找不到,于是就请教了黄学长,黄学长立刻秒掉了这道题,然后我再看他的题解才写出来..Orz 使用 DP + 倍增 ...

  6. BZOJ.3425.[POI2013]Polarization(DP 多重背包 二进制优化)

    BZOJ 洛谷 最小可到达点对数自然是把一条路径上的边不断反向,也就是黑白染色后都由黑点指向白点.这样答案就是\(n-1\). 最大可到达点对数,容易想到找一个点\(a\),然后将其子树分为两部分\( ...

  7. BZOJ 4380 [POI2015]Myjnie | DP

    链接 BZOJ 4380 题面 有n家洗车店从左往右排成一排,每家店都有一个正整数价格p[i]. 有m个人要来消费,第i个人会驶过第a[i]个开始一直到第b[i]个洗车店,且会选择这些店中最便宜的一个 ...

  8. BZOJ.5311.贞鱼(DP 决策单调)

    题目链接 很容易写出\(O(n^2k)\)的DP方程.然后显然决策点是单调的,于是维护决策点就可以了.. 这个过程看代码或者别的博客吧我不写了..(其实是忘了) 这样复杂度\(O(nk\log n)\ ...

  9. 【BZOJ 3090】 树形DP

    3090: Coci2009 [podjela] Description 有 N 个农民, 他们住在 N 个不同的村子里. 这 N 个村子形成一棵树.每个农民初始时获得 X 的钱.每一次操作, 一个农 ...

随机推荐

  1. 关于hover没有效果的问题

    今天用vs2012写一个页面的是时候,用到hover的效果,原本是没有难度的事情,后来因为一个细节,导致浪费了点时间. 原来是我在css文件里面写完样式后,用了ctrl+k+D进行了格式化,然后vs在 ...

  2. MFC程序实现窗口分割,视图快捷插入控件和插入列表

    将视图中插入列表: 1.创建一个MFC应用程序,在MFC Wizard中,生成的类选项,如图 2.选择CListView作为基类 3.在CXXView.cpp(XX为你的程序名)重写虚函数OnInit ...

  3. 对 ASP.NET 页面进行跟踪(Control Tree)

    在页面头部加入属性 : Trace="True" 参考MSDN: https://msdn.microsoft.com/zh-cn/library/94c55d08(v=vs.10 ...

  4. C语言文件读写

    1.用fopen打开文件 该函数的原型为FILE *fopen(const char *filename, const char *mode),第一个参数是文件名,第二个参数是打开文件的模式. 打开文 ...

  5. 05_例子讲解:rlCollisionDemo.exe

    碰撞检测的例子: "E:\Program Files (x86)\rl-0.6.2\bin\rlCollisionDemo.exe" "E:\Program Files ...

  6. a标签根据js返回值判断页面是否跳转

    a标签再跳转之前先判断是否符合条件,符合可以跳转,不符合不可以跳转. 自己遇到的问题是:在js方法中根据条件就return结果,但是不行. 原因是:在js方法中return后不会结束整个js方法(ac ...

  7. 专题三、ArrayList遍历方式以及效率比较

    一.遍历方式 ArrayList支持三种遍历方式. 1.第一种,随机访问,它是通过索引值去遍历 由于ArrayList实现了RandomAccess接口,它支持通过索引值去随机访问元素. 代码如下: ...

  8. linux下screen工具的简单使用

    有时候,希望即使退出终端了,下次登录linux的时候,还能回到程序的控制界面,这个时候,screen工具就很有用了例如,写了一个从控制台读取屏幕输入的程序input_test,如果从终端退出了,下次登 ...

  9. Executors 构建线程池

    Executors包含一系列静态方法,可以用于构建线程池. 返回实现了 ExecutorService 接口的对象: newCachedThreadPool newFixedThreadPool(in ...

  10. asp.net弹出框后页面走样

    1.去掉language='javascript' ,问题依旧 2.后面加上Response.Write("<script>document.location=document. ...