acdream 1025 简单dp
2015-08-01 20:25
501 查看
最基本的在DAG上求最短路。
#include <iostream> #include <cstring> #include <cstdio> using namespace std; const int INF = 999999; const int N = 100001; int dp ; int main () { int a, b; while ( scanf("%d%d", &a, &b) != EOF ) { if ( a > b ) { printf("-1\n"); continue; } dp[a] = 0; for ( int i = a + 1; i <= b; i++ ) { dp[i] = INF; } for ( int i = a; i < b; i++ ) { int j; for ( j = 1; j * j < i; j++ ) { if ( i % j ) continue; int x = i + j; if ( x <= b ) { dp[x] = min( dp[x], dp[i] + 1 ); } int y = i + i / j; if ( y <= b ) { dp[y] = min( dp[y], dp[i] + 1 ); } } if ( i % j == 0 ) { int z = i + j; if ( z <= b ) { dp[z] = min( dp[z], dp[i] + 1 ); } } } printf("%d\n", dp[b]); } return 0; }
相关文章推荐
- swift之函数式编程(四)
- LeetCode#24 Swap Nodes in Pairs
- Hashtable和HashMap类的区别
- setlocale()函数使用
- SVM(Support Vector Machine)
- UILabel
- DEX 方法超过64K限制和gradle编译OOM问题解决
- 【暑假集训】之被ACM金牌大神虐的第二天之图论篇
- 两个Integer值比较不相等问题
- leetCode 106.Construct Binary Tree from Inorder and Postorder Traversal (根据中序遍历和后序遍历构造二叉树)
- struts原理
- XJOI-NOIP2015提高组模拟题1 day1
- iOS开发-项目 知识分享与经验积累(一)
- Android 中保存数据到文件中
- acm-uva10653解题报告
- IOS中Json解析的四种方法
- cygwin不能执行make
- 设计模式之Factory----经典
- C语言:非减链表的合并
- leetCode 105.Construct Binary Tree from Preorder and Inorder Traversal (根据前序遍历和中序遍历构造二叉树)