uva 1025 A Spy in the Metro dp状态转移
来源:互联网 发布:js中单双引号 编辑:程序博客网 时间:2024/05/29 04:52
#include <cstdio>#include <iostream>#include <algorithm>#include <queue>#include <stack>#include <cstdlib>#include <cmath>#include <set>#include <map>#include <vector>#include <cstring>#define INF 100000000using namespace std;int n,T,m1,m2;int t[100];int A1[100];int A2[100];int B1[100][100];int B2[100][100];int dp[300][100];int find(int key,int *a,int len){int ma = -1;for(int i = 0;i < len;i++){if(a[i] <= key && a[i] > ma){ma = a[i];}}return ma;}int main(){int q = 1;while(cin >> n,n){scanf("%d",&T);for(int i = 1;i < n;i++){scanf("%d",&t[i]);}scanf("%d",&m1);for(int i = 0;i < m1;i++){scanf("%d",&A1[i]);B1[1][i] = A1[i]; }scanf("%d",&m2);for(int i = 0;i < m2;i++){scanf("%d",&A2[i]); B2[n][i] = A2[i];}for(int i = 2 ;i <= n;i++){for(int j = 0;j < m1;j++){B1[i][j] = B1[i-1][j] + t[i-1];}}for(int i = n-1;i >= 1;i--){for(int j = 0;j < m2;j++){B2[i][j] = B2[i+1][j] + t[i];}}for(int i = 0;i <= T;i ++){for(int j = 0;j <= n;j++ ){dp[i][j] = INF; }}//dp[i][j]的意思是第i时刻到达j站点的最小时间,只有三种状态能到达该状态//1 原先就在这个位置然后再多等了1分钟 ,dp[i][j] = dp[i-1][j] //2 从他前一个站点到达然后开始等待,dp[i][j] = dp[x-t[j-1]][j-1] + i - x; //3 从他后一个站点到达然后才开始等待,dp[i][j] = dp[y-t[j]][j+1] + i - y;//取这三种之间最小的那个就是这个最小的时间了 dp[0][1] = 0;for(int i = 1;i <= T;i++){for(int j = 1;j <= n;j++){int a,c,d;a = dp[i-1][j] + 1;int x = find(i,B1[j],m1);int y = find(i,B2[j],m2);if(x < 0){c = INF;}else{if((j-1)> 0)c = dp[x-t[j-1]][j-1]+i-x;elsec = INF;}if(y<0){d = INF;}else{if((j+1) <= n)d = dp[y-t[j]][j+1]+i-y;elsed = INF;}dp[i][j] = min(a,min(c,d));}}if(dp[T][n] != INF)printf("Case Number %d: %d\n",q++,dp[T][n]);elseprintf("Case Number %d: impossible\n",q++);}return 0;}
0 0
- uva 1025 A Spy in the Metro dp状态转移
- A Spy in the Metro UVA 1025 DP
- A Spy in the Metro - UVa 1025 dp
- UVA 1025 A Spy in the Metro(DP)
- UVA 1025 A Spy in the Metro DP
- uva 1025 A Spy in the Metro (DP)
- UVa 1025 A Spy in the Metro(DP)
- UVA 1025 A Spy in the Metro (DP)
- UVa 1025 - A Spy in the Metro [DP]
- UVa 1025 - A Spy in the Metro(DP)
- UVA - 1025 A Spy in the Metro DP + 分析
- UVa 1025:A Spy in the Metro(DP)
- DP--UVA - 1025 A Spy in the Metro
- UVA 1025 A Spy in the Metro - 简单dp
- UVa 1025 A Spy in the Metro (dp)
- UVA 1025A Spy in the Metro (简单DP)
- UVA 1025 A Spy in the Metro(DP)
- UVA 1025 A Spy in the Metro(DP)
- 对图像的腐蚀与膨胀
- 通过dblink使用expdp能不能导出9i库的数据?
- 初始化和释放模块
- PHP效率提高及优化的常见方法
- PHP简单防注入
- uva 1025 A Spy in the Metro dp状态转移
- 20150518
- 重拾高数——多元函数的隐函数
- #笔记#圣思园 JavaSE 第45讲——Set接口,hashCode方法,equals方法
- 安卓进阶之多击事件
- leetcode Balanced Binary Tree
- define的有趣用法
- 我的第一篇博客
- busybox脚本的函数