codeforces 711C Coloring Trees(DP)
来源:互联网 发布:安装java后怎么运行 编辑:程序博客网 时间:2024/05/17 02:11
题目链接:http://codeforces.com/problemset/problem/711/C
O(n^4)的复杂度,以为会超时的
思路:dp[i][j][k]表示第i棵数用颜色k涂完后beauty为j
#include<bits/stdc++.h>using namespace std;typedef long long ll;const ll inf=1e15;int c[105];int p[105][105];ll dp[105][105][105];int main(){ int n,m,b; scanf("%d%d%d",&n,&m,&b); for(int i=1;i<=n;i++) scanf("%d",&c[i]); for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) scanf("%d",&p[i][j]); } for(int i=1;i<=n;i++) { for(int j=1;j<=b;j++) { for(int k=1;k<=m;k++) dp[i][j][k]=inf; } } for(int i=1;i<=n;i++) { if(c[i]) { for(int j=1;j<=b&&j<=i;j++) { int k=c[i]; ll min1=inf,min2=inf; if(k>1&&j>1) min1=*min_element(dp[i-1][j-1]+1,dp[i-1][j-1]+k); if(k<m&&j>1) min2=*min_element(dp[i-1][j-1]+k+1,dp[i-1][j-1]+m+1); dp[i][j][k]=min(dp[i-1][j][k],min(min1,min2)); } } else { for(int j=1;j<=b&&j<=i;j++) { for(int k=1;k<=m;k++) { ll min1=inf,min2=inf; if(k>1&&j>1) min1=*min_element(dp[i-1][j-1]+1,dp[i-1][j-1]+k); if(k<m&&j>1) min2=*min_element(dp[i-1][j-1]+k+1,dp[i-1][j-1]+m+1); dp[i][j][k]=p[i][k]+min(dp[i-1][j][k],min(min1,min2)); } } } } ll ans=*min_element(dp[n][b]+1,dp[n][b]+m+1); if(ans<inf) printf("%I64d\n",ans); else printf("-1\n"); return 0;}
0 0
- codeforces 711C Coloring Trees(DP)
- CodeForces 711C.Coloring Trees【DP】
- Codeforces Problem 711C Coloring Trees(DP)
- CodeForces 711C - Coloring Trees DP
- CodeForces 711C.Coloring Trees【DP】
- CodeForces 711C Coloring Trees(DP)
- Codeforces 711C Coloring Trees DP
- codeforces 711C - Coloring Trees
- Codeforces 711C Coloring Trees
- CodeForces 711C Coloring Trees【dp*好题】
- Codeforces #369(Div.2) C.Coloring Trees【Dp】
- CodeForces 369 div2 C Coloring Trees DP
- Codeforces 369 C. Coloring Trees (dp)
- codeforces C.Coloring Trees
- codeforces C. Coloring Trees
- 【动态规划】Codeforces 711C Coloring Trees
- [Codeforces Round #369 (Div. 2) C. Coloring Trees] DP
- Codeforces Round #369 (Div. 2) C.Coloring Trees (基础DP)
- Python-第三方库requests详解
- 织梦小常识
- JVM调优总结(4):分代垃圾回收
- Android中延迟执行方法的几种方式
- # uditor-JAVA编辑器自定义图片存储路径和读取图片域名
- codeforces 711C Coloring Trees(DP)
- iOS开发CocoPods支持报错: [!] Unable to accept duplicate entry for: XXXXX (0.0.1)
- R+openNLP︱openNLP的六大可实现功能及其在R语言中的应用
- JVM调优总结(5):典型配置
- 单例模式的懒汉式
- Android 日常开发总结的技术经验 60 条
- Instruments使用
- JavaScript 笔记 --- 语法结构
- JVM调优总结(6):新一代的垃圾回收算法