bzoj1133: [POI2009]Kon

链接

https://www.lydsy.com/JudgeOnline/problem.php?id=1133

思路

f[i][k]表示前i个,选了k个,其中必选i的最大值

f[i][k]=f[j][k-1]+贡献

这个贡献就是j到i之间的边界碰到i的人数(可以预处理个前缀和)

复杂度O(nnk)

错误

貌似输出方案错了还是神马的,90分

不过bzoj数据都过了呀,bzoj还会改数据吗

错误代码

#include <bits/stdc++.h>
using namespace std;
const int N=607,M=57;
int read() {
int x=0,f=1;char s=getchar();
for(;s>'9'||s<'0';s=getchar()) if(s=='-') f=-1;
for(;s>='0'&&s<='9';s=getchar()) x=x*10+s-'0';
return x*f;
}
int n,K,f[N][M],sum[N][N],frm[N][M];
int stak[N],top;
int main() {
n=read(),K=read();
for(int i=1;i<=n;++i)
for(int j=i+1;j<=n;++j)
sum[i][j]=sum[i][j-1]+read();
for(int k=1;k<=K;++k) for(int i=1;i<=n;++i){
int tot=0;
for(int j=i;j>=1;--j) {
tot+=sum[j][n]-sum[j][i];
if(f[i][k]==f[j-1][k-1]+tot) frm[i][k]=min(frm[i][k],j-1);
if(f[i][k]<f[j-1][k-1]+tot) {
f[i][k]=f[j-1][k-1]+tot;
frm[i][k]=j-1;
}
}
}
int ma=0,x_x=0;
for(int i=1;i<=n;++i) {
if(ma<f[i][K]) ma=f[i][K],x_x=i;
}
while(K) {
stak[++top]=x_x;
x_x=frm[x_x][K--];
}
while(top--) printf("%d ",stak[top+1]);
return 0;
}

bzoj1133: [POI2009]Kon的更多相关文章

  1. bzoj 1133: [POI2009]Kon dp

    1133: [POI2009]Kon Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 242  Solved: 81[Submit][Status][D ...

  2. [POI2009]Kon

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

  3. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  4. BZOJ 1115: [POI2009]石子游戏Kam

    1115: [POI2009]石子游戏Kam Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 883  Solved: 545[Submit][Stat ...

  5. BZOJ 1142: [POI2009]Tab

    1142: [POI2009]Tab Time Limit: 40 Sec  Memory Limit: 162 MBSubmit: 213  Solved: 80[Submit][Status][D ...

  6. 【BZOJ】【1115】【POI2009】石子游戏KAM

    博弈论 这个题……一看就觉得很捉急啊= =肿么办? 灵光一现:差分一下~ 那么我们看一下差分以后,从第 i 堆中拿走 k 个石子变成了:a[i]-=k; a[i+1]+=k; 嗯这就转化成了阶梯博弈! ...

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

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

  8. BZOJ1135: [POI2009]Lyz

    1135: [POI2009]Lyz Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 264  Solved: 106[Submit][Status] ...

  9. BZOJ1119: [POI2009]SLO

    1119: [POI2009]SLO Time Limit: 30 Sec  Memory Limit: 162 MBSubmit: 379  Solved: 181[Submit][Status] ...

随机推荐

  1. 4 html文件引用问题

    通常在写html文件的时候会遇到需要引入样式文件,或者图片等问题,对于有一定开发经验的人来说,这些都不是问题,做为初学者,还是有必要理解html文件引用的“思路”的 当html文件和要引用的文件在同一 ...

  2. kill、killall、pkill杀手三人组

    1.1 kill.killall.pkill杀手三人组 1.利用kill 进程号 方式杀掉rsync进程 [root@backup ~]# ps -ef |grep rsync root 3500 1 ...

  3. vscode添加vue格式化插件

    1.安装Vetur插件 2.ctrl+,打开用户设置,找到"vetur.format.defaultFormatter.html": "none",

  4. JavaScript基础知识(字符串的方法)

    字符串的方法 1.字符串: 在js中被单引号或双引号包起来的内容都是字符串: var t = "true"; console.log(typeof t);// "stri ...

  5. I2C写时序图[转]

    1. I2C写时序图: 注意:最后一个byte后,结束标志在第十个CLK上升沿之后: 2. I2C读时序图: 注意:restart信号格式:读操作结束前最后一组clk的最后一个上升沿,主机应发送NAC ...

  6. [daily][python2] int型IP地址与string型IP地址互转

    使用python2,类似如下操作. >>> import socket >>> import struct >>> socket.ntohl(]) ...

  7. 简单的可以跑起来的dubbo例子

    原文地址:https://blog.csdn.net/jingyangV587/article/details/78901937 项目结构: maven项目,内部三个module. <?xml ...

  8. linux下查看网卡速率

    转自:http://blog.csdn.net/liugongfeng/article/details/50263733 我们都知道ifconfig -a 可以列出所有网卡,但是怎么判读是千兆网卡还是 ...

  9. [OpenCV]直线拟合

    OpenCV实现了直线的拟合. CV_IMPL void cvFitLine( const CvArr* array, int dist, double param, double reps, dou ...

  10. python基础之 列表,元组,字典

    other help(str.strip) #查看是否有返回值以及返回值类型[] :称为索引操作符 1.列表 列表相比字符串来说能存储大量数据的python的基本数据类型,并且也拥有字符串的一些方法( ...