luoguP1281 书的复制

链接

https://www.luogu.org/problemnew/show/P1281

思路

简单dp,输出方案。

很明显dp记录路径对不对?

恭喜你死了。

求出dp值,倒叙贪心取最长

错误

好久之前咕咕的题目

下载数据才看出来不能记录路径

代码

#include <bits/stdc++.h>
using namespace std;
const int N=507;
const int inf=0x3f3f3f3f;
int read() {
int x=0,f=1;char s=getchar();
for(;s>'9'||s<'0';s=getchar()) if(s=='0') f=-1;
for(;s>='0'&&s<='9';s=getchar()) x=x*10+s-'0';
return x*f;
}
int n,K,sum[N],f[N][N],stak[N],top;
vector<pair<int,int> > a;
int main() {
n=read(),K=read();
for(int i=1;i<=n;++i) sum[i]=sum[i-1]+read();
memset(f,0x3f,sizeof(f));
f[0][0]=0;
for(int k=1;k<=K;++k)
for(int i=1;i<=n;++i)
for(int j=1;j<=i;++j)
f[i][k]=min(f[i][k],max(f[j-1][k-1],sum[i]-sum[j-1]));
int r=n,tot=0;
for(int i=n;i>=1;--i) {
tot+=sum[i]-sum[i-1];
if(tot>f[n][K]) {
a.push_back(make_pair(i+1,r));
tot=sum[i]-sum[i-1];
r=i;
}
}
if(tot) a.push_back(make_pair(1,r));
for(vector<pair<int,int> >::iterator it=a.end()-1;it!=a.begin()-1;it--)
printf("%d %d\n",it->first,it->second);
return 0;
}

最新文章

  1. SQL 行转列和列转行2
  2. Nivo Slider - 世界上最棒的 jQuery 图片轮播插件
  3. 20169212《Linux内核原理与分析》第二周作业
  4. Swift Standard Library: Documented and undocumented built-in functions in the Swift standard library – the complete list with all 74 functions
  5. Javascript 笔记与总结(2-16)事件对象
  6. MySQL在ROW模式下通过binlog提取SQL语句
  7. 假设动态运行java文字,当在脚本式配置,这是非常方便的
  8. .net core 13
  9. 【BZOJ2134】单位错选(数学期望,动态规划)
  10. 分布式缓存组件Hazelcast
  11. Linux(CentOS7)下如何配置多个JDK环境变量
  12. Python第八天 模块 包 全局变量和内置变量__name__ Python path
  13. DAY 23 面向对象(二)
  14. Java 平时作业六
  15. oracle存储过程调试报错  ORA-0131 Insufficient privileges 处理
  16. dskinlite(uieasy mfc界面库)使用记录3:绘制动态元素(按钮控件通过隐藏方式修改图片显示)
  17. Confluence 6 数据中心的缓存
  18. node+ts的心得与坑
  19. C3P0配置实战
  20. 手机Gmail上用Exchange协议配置收发QQ邮箱

热门文章

  1. maven的tomcat插件启动报错
  2. V8 javascript 引擎
  3. windows安装tomcat
  4. Android100【申明:来源于网络】
  5. Cardinal and Ordinal Numbers
  6. Http协议Status状态代码
  7. File 文件
  8. python_字符串的格式化输出
  9. ubuntu常用软件命令
  10. JavaScript 事件之event.preventDefault()与event.stopPropagation()简单介绍