HDU 5092 Seam Carving (dp)
2024-10-21 13:34:23
题意,给一个数字矩阵,要求从上往下的一条路径,使这条路径上数字之和最小,如有多条输出最靠右的一条。
数字三角形打印路径。。。
一般打印路径有两种选择,一是转移的时候加以记录,二是通过检查dp值回溯。
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
const int maxn = ;
int g[maxn+][maxn];
int d[maxn+][maxn];
int pa[maxn+][maxn];
int m,n;
const int INF = 1e9;
void init(){
memset(*pa,-,sizeof(*pa));
for(int i = ; i < maxn; i++)
d[i][] = INF;
} vector<int> ans;
void print_ans(int s){
ans.clear();
ans.push_back(s);
for(int i = m-; i > ; i--){
s = pa[i][s];
ans.push_back(s);
}
for(int i = ans.size()-; i > ;i--){
printf("%d ",ans[i]);
}
printf("%d\n",ans[]);
} void work()
{
for(int i = ; i <= n; i++ )
d[][i] = g[][i];
for(int i = ; i < m; i++){
d[i][n+] = INF;
}
for(int i = ; i < m ;i++){
for(int j = ; j <= n ; ++j ){
int Min = -;
for(int k = ; k <=; k++){
if(d[i-][j+k] <= d[i-][j+Min]){
Min = k;
}
}
pa[i][j] = j+Min;
d[i][j] = d[i-][j+Min] + g[i][j];
}
}
int Min = ;
for(int i = ; i <= n; i++ ){
if(d[m-][Min] >= d[m-][i]){
Min = i;
}
}
print_ans(Min);
} int main()
{
int T;
init();
scanf("%d",&T);
for(int i = ; i <= T; i++){
printf("Case %d\n",i);
scanf("%d%d",&m,&n);
for(int i = ; i < m; i++)
for(int j = ; j <= n; j++)
scanf("%d",g[i]+j);
work();
}
return ;
}
最新文章
- unix shell命令
- C语言程序设计第九次作业
- css z-index属性使用过程中遇到的问题
- leetcode-【中等题】3. Longest Substring Without Repeating Characters
- Bootstrap 模态框 + iframe >; 打开子页面 >; 数据传输/关闭模态框
- Spring-Context之八:一些依赖注入的小技巧
- MyBatis 一级缓存与二级缓存
- Java继承和多态实例
- POJ 1062 ( dijkstra )
- mysql模拟rownum的一个方法
- linux 显示当前用户信息
- 模拟TAB键
- JSP技术
- C#中的反射原理及应用(转)
- iOS之 Category 属性 的理解
- Spring之DAO一
- Excel表格中依据某一列的值,将这列中一样的数据放在一个文件中。
- LeetCode——295. Find Median from Data Stream
- E: Unable to correct problems, you have held broken packages
- 一次完整的从webshell到域控的探索之路
热门文章
- 2018年第九届蓝桥杯国赛试题(JavaA组)
- 模拟一则ORA-600 [4194][][]故障并处理
- Angular中依赖注入方式的几种写法
- 你需要了解的有关.NET日期时间的必要信息
- Widows下Faster R-CNN的MATALB配置(GPU)
- HBase中报错 java.lang.NoClassDefFoundError: com/google/protobuf/LiteralByteString
- Oracle树查询总结
- JAVAFX-2 开发应用
- python进阶10 MySQL补充 编码、别名、视图、数据库修改
- Codeforces 161D(树形dp)