最优路径问题 mod 4 的最小值
来源:互联网 发布:淘宝超a鞋店推荐 编辑:程序博客网 时间:2024/09/21 08:54
mod 4 最优路径问题
在上图中找出从第1点到第4点的一条路径,要求路径长度mod 4的余数最小。
分析:这个图是一个多段图,而且是一个特殊的多段图。虽然这个图的形式比一般的多段图要简单,但是这个最优路径问题却不能用动态程序设计方法来做。因为一条从第1点到第4点的最优路径,在它走到第2点、第3点时,路径长度mod 4的余数不一定是最小,也就是说最优策略的子策略不一定最优——这个问题不满足最优化原理。但是我们可以把它转换成判定性问题,用递推法来解决。设
fk(sk)——从第1点到第k点的长度mod 4为sk的路径是否存在的标志。显然
(边界条件)
#include<stdio.h>#include<string.h>#include<math.h>int len[110][11];int f[110][4];int count[110];int abs(int a){return a>0?a:-a;}int main(){ int n; int i,j,s,k,u; while(scanf("%d",&n)!=EOF){ for(i = 2;i<=n;i++){ scanf("%d",&count[i]); for(j = 1;j<=count[i];j++){ scanf("%d",&len[i][j]); } } memset(f,0,sizeof(f)); f[1][0] = 1; for(k = 2;k<=n;k++){ for(s = 0;s<=3;s++){ int test = 0; for(u = 1;u<=count[k];u++){ if(f[k-1][abs(s-len[k][u])] )test = 1; } if(test) f[k][s] = 1; } } for(i = 0;i<3;i++) if(f[n][i]) { printf("%d\n",i);break; } } return 0;}
0 0
- 最优路径问题 mod 4 的最小值
- 模4 最优路径问题
- mod4最优路径问题
- 路径最优问题
- C的最优路径
- 迷宫的最优路径
- 计算最大最小值的最优算法
- 同时得到最大最小值的最优算法
- Dijkstra最优路径的算法
- 推箱子的最优路径
- Dijkstra最优路径的算法
- 最优方向法(MOD)
- Minimum Path Sum 最小值的路径
- uva1267Network 树上的最优问题
- 集合的最优分组问题
- 旋转数组的最小值问题
- 滑动窗口的最小值问题
- 基本数论问题,mod的逆运算
- 基于格子的AOI算法
- 【Leetcode】Merge Two Sorted Lists
- Codefoces 432C Prime Swaps(数论+贪心)
- 黑马程序员-Java基础09
- 微博阅读器demo(二) 微博列表
- 最优路径问题 mod 4 的最小值
- javascript/js的ajax请求方式:GET与POST
- 安卓ContentObserver模式获取短信用正则自动填充验证码
- Codeforces 432B Football Kit(水题)
- C++优化考虑
- 上传代码到谷歌
- 两个栈共享一块存储空间新解
- 黑马程序员.if语句小结
- Qt5.2的串口类接收不到串口数据,和事件机制