题目链接:http://codeforces.com/problemset/problem/711/C

DP

#include<bits/stdc++.h>
using namespace std;#define debug puts("YES");
#define rep(x,y,z) for(int (x)=(y);(x)<(z);(x)++)
#define ll long long#define lrt int l,int r,int rt
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
#define root l,r,rt
#define mst(a,b) memset((a),(b),sizeof(a))
#define pii pair<int,int>
#define fi first
#define se second
#define mk(x,y) make_pair(x,y)
const int mod=1e9+7;
const int maxn=1e2+10;
const int ub=1e6;
ll powmod(ll x,ll y){ll t; for(t=1;y;y>>=1,x=x*x%mod) if(y&1) t=t*x%mod; return t;}
ll gcd(ll x,ll y){if(y==0) return x;return gcd(y,x%y);
}
int n,m,k,v[maxn];
int val[maxn][maxn];
ll dp[maxn][maxn][maxn];
int main(){cin>>n>>m>>k;rep(i,1,n+1) cin>>v[i];rep(i,1,n+1) rep(j,1,m+1) cin>>val[i][j];mst(dp,0xf);if(v[1]==0) rep(i,1,m+1) dp[1][i][1]=val[1][i];else dp[1][v[1]][1]=0;rep(i,2,n+1){if(v[i]){rep(j,1,m+1) rep(p,1,i+1){if(j!=v[i]) dp[i][v[i]][p]=min(dp[i][v[i]][p],dp[i-1][j][p-1]);else dp[i][v[i]][p]=min(dp[i][v[i]][p],dp[i-1][j][p]);}}else{rep(j,1,m+1) rep(p,1,m+1) rep(q,0,i+1){if(j!=p){dp[i][j][q]=min(dp[i][j][q],dp[i-1][p][q-1]+val[i][j]);}else{dp[i][j][q]=min(dp[i][j][q],dp[i-1][j][q]+val[i][j]);}}}}ll ans=dp[0][0][0];rep(i,1,m+1)  ans=min(ans,dp[n][i][k]);if(ans==dp[0][0][0]) puts("-1");else cout<<ans<<endl;return 0;
}

CodeForces 711C Coloring Trees (三维DP)相关推荐

  1. CodeForces 711C.Coloring Trees【DP】

    看上去就是DP的一个题,由于自己太菜了,还是不会做 先给个提交的地方:cf 711C 这个题看到数据,很明显是dp,因为n,m,k的值都不大,我们可以建立矩阵来推理 很明显答案跟dp[n][k]有关 ...

  2. CF 711C Coloring Trees(三维dp)

    原题地址: https://codeforces.com/problemset/problem/711/C 题意:有nnn棵树,mmm种颜色,让你分成kkk段,数字000代表该树没没有进行染色,需要你 ...

  3. codeforces 711C Coloring Trees(DP)

    题目链接:http://codeforces.com/problemset/problem/711/C O(n^4)的复杂度,以为会超时的 思路:dp[i][j][k]表示第i棵数用颜色k涂完后bea ...

  4. CodeForces 711C - Coloring Trees DP

    /*http://codeforces.com/problemset/problem/711/C http://codeforces.com/blog/entry/46830官方题解:We compu ...

  5. CodeForces - 1312E Array Shrinking(区间dp)(通俗易懂)

    CodeForces - 1312E Array Shrinking(区间dp) 题目链接: 没做出来,看了一下别人的题解,才A掉.但网上没发现一篇讲得比较易懂的题解,所以就准备写一篇再加上我自己的理 ...

  6. VOJ - Did he drop any good loot? (三维DP)

    Did he drop any good loot? 题目链接:A - Did he drop any good loot? Gym - 100694A 题意 n种物品,每种物品有价值p[i].重量w ...

  7. 【状态dp】poj 1185 炮兵阵地(三维dp)

    poj 1185 炮兵阵地 http://poj.org/problem?id=1185 问题描述:给你一个n行m列的P-H矩阵,H表示不能安置炮兵,1可以安置炮兵,要求炮兵攻击管辖内不能在安置其他炮 ...

  8. 【CodeForces 1253C --- Sweets Eating】DP

    [CodeForces 1253C --- Sweets Eating]DP Description Tsumugi brought n delicious sweets to the Light M ...

  9. 【CF 149D】Coloring Brackets(dp)

    [CF 149D]Coloring Brackets(dp) D. Coloring Brackets time limit per test 2 seconds memory limit per t ...

最新文章

  1. [洛谷3811]【模板】乘法逆元
  2. AutoX江苏超级工厂首曝光!机械臂随处可见,车辆出厂就能完全无人驾驶
  3. lookup函数和vlookup_LOOKUP函数与VLOOKUP函数,你总会喜欢一个的
  4. 指标统计:基于流计算 Oceanus(Flink) 实现实时 UVPV 统计
  5. easyui datagrid java_EasyUI DataGrid 显示不了数据????
  6. 联想服务器系统安装bios设置,Windows 8操作系统如何通过Legacy BIOS与UEFI两种模式安装...
  7. 13个免费的开源GIS软件
  8. 【MatLab fdatool】Butterworth 低通 带阻 滤波器 (MatLab C++)
  9. AI魔幻行为大赏:细数机器视觉的9大应用场景
  10. 魔百盒CM201-2_朝歌ZG_主板版号M8291_强刷固件包
  11. 腾讯云创建二级域名并解析
  12. Linux--gcc的基本用法
  13. 【STM32】LCD液晶显示
  14. 刀剑乱舞极化图片_【刀剑乱舞】极化刀速查攻略
  15. Java堆空间(Heap Space)
  16. 小红书api_【实习精选】oppo、小红书等名企实习汇总(96)
  17. 离散时间信号与系统-频域:5
  18. 360浏览器过滤网站广告解决办法
  19. 【项目管理】项目成本管理
  20. 小小Python爬虫一

热门文章

  1. 卡普的21个NP完全问题-问题描述
  2. word文档太大怎么压缩到最小
  3. OracleTechnologyNetwork
  4. [Linux]: 开机运行指定的命令/自动运行命令-Ubuntu亲测
  5. hcna学习小结第一天
  6. android ota权限,Android手机Root后不能接收OTA?
  7. 欠采样(undersampling)和过采样(oversampling)
  8. 《趣味知识博文》小W与小L带你聊天式备考CDA Level Ⅰ(六)
  9. Linux下TBB安装及编译
  10. 百度提交死链的官方标准格式