1084: [SCOI2005]最大子矩阵 (动态规划)
来源:互联网 发布:seo 快速收录 编辑:程序博客网 时间:2024/05/29 17:46
#include<iostream>#include<cstdio>#define inf 0x7fffffffusing namespace std;inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}int n,m,K,s[101],s1[101],s2[101],g[101][11],f[101][101][11];inline void solve1(){for(int i=1;i<=n;i++) s[i]=s[i-1]+read();for(int i=1;i<=n;i++)for(int j=1;j<=K;j++){g[i][j]=g[i-1][j];for(int k=i-1;k>=0;k--)g[i][j]=max(g[i][j],g[k][j-1]+s[i]-s[k]);}printf("%d",g[n][K]);}inline void solve2(){for(int i=1;i<=n;i++)s1[i]=s1[i-1]+read(),s2[i]=s2[i-1]+read();for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)for(int k=1;k<=K;k++){f[i][j][k]=max(f[i-1][j][k],f[i][j-1][k]);for(int x=i-1;x>=0;x--)f[i][j][k]=max(f[i][j][k],f[x][j][k-1]+s1[i]-s1[x]);for(int y=j-1;y>=0;y--) f[i][j][k]=max(f[i][j][k],f[i][y][k-1]+s2[j]-s2[y]); if(i==j)for(int x=i-1;x>=0;x--) f[i][j][k]=max(f[i][j][k],f[x][x][k-1]+s1[i]-s1[x]+s2[j]-s2[x]); }printf("%d",f[n][n][K]);}int main(){n=read();m=read();K=read();if(m==1)solve1();else solve2();return 0;}
0 0
- 1084: [SCOI2005]最大子矩阵 (动态规划)
- 动态规划 BZOJ1084 [SCOI2005]最大子矩阵
- BZOJ 1084 SCOI2005 最大子矩阵 动态规划
- 1084: [SCOI2005]最大子矩阵
- 1084: [SCOI2005]最大子矩阵
- 1084: [SCOI2005]最大子矩阵
- 1084: [SCOI2005]最大子矩阵
- [SCOI2005] 最大子矩阵
- [SCOI2005]最大子矩阵
- [SCOI2005]最大子矩阵
- [SCOI2005]最大子矩阵
- [SCOI2005]最大子矩阵
- [SCOI2005]最大子矩阵
- 动态规划 最大子矩阵
- 【动态规划】最大子矩阵
- 动态规划-最大子矩阵
- 动态规划:最大子矩阵
- 动态规划 最大子矩阵
- sql语言like模糊查询–通配符
- MDI/MDIX接口
- 第二章 SQL数据库操作和查询
- 【Ubuntu】[VIM]:vim 的配置单
- C# KeyUp事件中MessageBox的回车(Enter)键问题
- 1084: [SCOI2005]最大子矩阵 (动态规划)
- Ubuntu 12.04安装Qt 5.3后开发出现的问题
- 中间件是什么?
- 正则表达式
- getline
- Android文件的保存(本地和SD卡)与读取
- 东软实训(十七)
- 笔记:Android Studio adb无法启动解决方案
- Python核心编程之序列