BZOJ 1133 [POI2009]Kon
来源:互联网 发布:淘宝十大黑店 编辑:程序博客网 时间:2024/05/16 14:15
Description
火车沿途有N个车站,告诉你从每一站到每一站的人数,现在查票员只能查K次票,每次查票可以控制目前在车上的所有乘客的车票。求一个查票方案,使得控制的不同的乘客尽量多。 (显然对同一个乘客查票多次是没有意义的,只算一次)
【题目分析】
动态规划。
【代码】
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;int dp[51][601],ans[601][601];int n,a[601][601],outi,outj,outmax=-0x3f3f3f3f;int pre[601][601];int out[51];int main(){ int n,k;scanf("%d%d",&n,&k); for (int i=1;i<n;++i) for (int j=i+1;j<=n;++j) { scanf("%d",&a[i][j]); a[i][j]+=a[i-1][j]+a[i][j-1]-a[i-1][j-1]; }// for (int i=0;i<=n;++i)// {// for (int j=0;j<=n;++j)// printf("%4d",a[i][j]);// printf("\n");// } for (int i=0;i<n;++i) for (int j=i+1;j<=n;++j) if (i==0) ans[i][j]=a[j][n]-a[j][j]; else ans[i][j]=a[j][n]-a[i][n]-a[j][j]+a[i][j];// for (int i=0;i<=n;++i)// {// for (int j=0;j<=n;++j)// printf("%d ",ans[i][j]);// printf("\n");// } memset(dp,-0x3f,sizeof dp);// printf("%d\n",dp[0][0]); dp[0][0]=1; for (int i=1;i<=k;++i) for (int j=1;j<n;++j) for (int l=0;l<j;++l) { if (dp[i-1][l]+ans[l][j]>dp[i][j]) { dp[i][j]=max(dp[i][j],dp[i-1][l]+ans[l][j]); pre[i][j]=l; } else if (dp[i-1][l]+ans[l][j]==dp[i][j]&&l<=pre[i][j]) pre[i][j]=l; if (dp[i][j]>outmax||i>outi) { outmax=dp[i][j]; outi=i; outj=j; } } int top=outi; while (outi) { out[outi]=outj; outj=pre[outi][outj]; outi--; } for (int i=1;i<=top;++i) printf("%d%c",out[i],i==top?'\n':' ');// printf("out i= %d out j=%d max is %d\n",outi,outj,outmax);}
0 0
- [BZOJ 1133]POI2009 Kon
- BZOJ 1133 [POI2009]Kon
- BZOJ 1133 [POI2009]Kon DP
- BZOJ 1133 POI2009 Kon 动态规划
- BZOJ 1133: [POI2009]Kon|动态规划
- bzoj 1133: [POI2009]Kon(DP)
- bzoj-1133 Kon
- 【BZOJ1133】[POI2009]Kon【DP】
- BZOJ1133: [POI2009]Kon
- 【bzoj1133】[POI2009]Kon
- [BZOJ 1119]POI2009 slo
- [BZOJ 1120]POI2009 str
- BZOJ 1141 POI2009 Slw
- BZOJ 1120: [POI2009]STR
- BZOJ 1142 POI2009 Tab Hash
- BZOJ 1142 [POI2009]Tab 模拟
- BZOJ 1142: [POI2009]Tab 模拟
- [乱搞] BZOJ 1141 [POI2009]Slw
- <4>save
- android 自定义导航条
- 微信公众号开发过程及对微信公众号内容的认识
- 从数据库读取数据。在页面用表格显示,并实现隔行换色
- Nutch搜索引擎_ Nutch简介及安装
- BZOJ 1133 [POI2009]Kon
- keil提示仿真器SWD/JTAG Communication Failure的问题解决
- Android后台-登录实例(1)
- BoundsChecker是一个Run-Time错误检测工具,它主要定位程序在运行时期发生的各种错误;
- jbpm(未涉及到业务的操作)
- Visual Studio 2010 快捷键
- iOS开发笔记 — 常用到的固定格式
- lib 和 dll 的区别、生成以及使用详解
- javaScript中匿名函数的传参及赋值