UVA 1025 A Spy in the Metro DP水题

简单DAG,每个状态有三种决策,原地傻等,上往左开的车,上往右开的车。

#include <cstdio>
#include <cstring>
#include <iostream>
#include <map>
#include <set>
#include <vector>
#include <string>
#include <queue>
#include <deque>
#include <bitset>
#include <list>
#include <cstdlib>
#include <climits>
#include <cmath>
#include <ctime>
#include <algorithm>
#include <stack>
#include <sstream>
#include <numeric>
#include <fstream>
#include <functional>using namespace std;#define MP make_pair
#define PB push_back
typedef long long LL;
typedef unsigned long long ULL;
typedef vector<int> VI;
typedef pair<int,int> pii;
const int INF = INT_MAX / 3;
const double eps = 1e-8;
const LL LINF = 1e17;
const double DINF = 1e60;
const int maxn = 55;
const int maxt = 400;
int f[maxt][maxn], N, T;
int cost[maxn], M1, M2, d1[maxn], d2[maxn];
bool left_bus[maxn][maxt], right_bus[maxn][maxt];int main() {int kase = 1;while(scanf("%d",&N), N) {memset(f,0x3f,sizeof(f));memset(cost,0,sizeof(cost));memset(left_bus,0,sizeof(left_bus));memset(right_bus,0,sizeof(right_bus));int inf = f[0][0];scanf("%d",&T);for(int i = 1;i < N;i++) scanf("%d",&cost[i]);scanf("%d",&M1);for(int i = 1;i <= M1;i++) scanf("%d",&d1[i]);scanf("%d",&M2);for(int i = 1;i <= M2;i++) scanf("%d",&d2[i]);for(int i = 1;i <= M1;i++) {int nowtime = d1[i];for(int j = 1;j <= N;j++) {left_bus[j][nowtime] = true;nowtime += cost[j];}}for(int i = 1;i <= M2;i++) {int nowtime = d2[i];for(int j = N;j >= 1;j--) {right_bus[j][nowtime] = true;nowtime += cost[j - 1];}}f[0][1] = 0;for(int i = 0;i <= T;i++) {for(int j = 1;j <= N;j++) {//waitf[i + 1][j] = min(f[i + 1][j],f[i][j] + 1);//go left_busif(right_bus[j][i] && j > 1 && i + cost[j - 1] <= T) {f[i + cost[j - 1]][j - 1] = min(f[i + cost[j - 1]][j - 1],f[i][j]);}//go right_busif(left_bus[j][i] && j < N && i + cost[j] <= T) {f[i + cost[j]][j + 1] = min(f[i + cost[j]][j + 1],f[i][j]);}}}printf("Case Number %d: ",kase++);if(f[T][N] == inf) puts("impossible");else printf("%d\n",f[T][N]);}return 0;
}

  

转载于:https://www.cnblogs.com/rolight/p/3966017.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/407185.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS3之Transform

Transform字面上就是变形&#xff0c;改变的意思。在CSS3中transform主要包括以下几种&#xff1a;旋转rotate、扭曲skew、缩放scale和移动translate以及矩阵变形matrix 语法&#xff1a;transform: rotate | scale | skew | translate |matrix 1.旋转rotate rotate(<ang…

解决 “数据大屏“ 展示的屏幕适配问题

现在非常流行的大数据可视化方案&#xff0c;不过要做数据大屏有一个很重要的问题就是屏幕适配。 vue项目使用flexible.js和rem适配 vue中使用flexible.js实现屏幕自适应 一、引入flexible文件 flexible是移动端屏幕适配非常著名的的插件&#xff0c;能够帮助我们修改rem的值&…

论图书营销中的“托”

论图书营销中的“托” 一、引言 提到“托”&#xff0c;让我想起了小时候&#xff08;1987年左右&#xff09;发生在汉正街的一些关于“拖”的故事。这些故事大致的模式都差不多&#xff1a;若干人一伙&#xff0c;一部分人充当卖主&#xff0c;在街边摆个地摊&#xff08;不知…

共享内存---shmget shmat shmdt

From: http://fengxue103.blog.hexun.com/32303320_d.html 要使用共享内存&#xff0c;应该有如下步骤&#xff1a; 1.开辟一块共享内存 shmget() 2.允许本进程使用共某块共享内存 shmat() 3.写入/读出 4.禁止本进程使用这块共享内存 shmdt() 5.删除这块共享内存 shmctl()或者命…

React开发(127):引入icon的方式

新增 icon 步骤&#xff1a;1&#xff0c;找到对应icon库&#xff0c;然后点击下载至本地按钮。2&#xff0c;解压下载的文件&#xff0c;找到 iconfont.css 3&#xff0c;打开该文件&#xff0c;从第三个类开始复制&#xff0c;然后集体替换这个文件的第三个类

“入洞房与度蜜月”的来历

中华民族文明史距今已有五千多年了&#xff0c;人们把结婚仍然称为“入洞房”&#xff0c;尽管人类从洞穴式居住过渡到今天的高楼大厦&#xff0c;但入洞房这一名词至今仍未改变。从来没见过谁把“入洞房”改为“入楼房”。 传说&#xff0c;这是我们祖先轩辕黄帝规定下来的…

STL容器的capacity()和reserve()演示-----vector

#include <iostream>#include <vector>using namespace std;int main(){vector<int> v;cout<<v.size()<<", "<< v.capacity()<<endl;v.reserve(12);for(int i 0; i < 13; i) // 超出vector本身容量后&#xff0c;会导…

lua 的语法糖

tb {} function tb:fun1()self ---tb endfunction tb.fun2()self ---->无 endtb:fun1()tb.fun2()------self 相当于 this lua函有 tb.fun2() 这样的定义 没有this(self) tolua 加了对象定义 转载于:https://www.cnblogs.com/mattins/p/3967018.html

vue设置页面标题title

每个页面设置相同标题 index.html 直接修改title标签里面的标题 (ps: 这个html文件中也可以引入一些js文件) 每个页面设置不同标题 router - index.js const router new Router({mode: history,routes: [{path: /index,name: index,component: Index,meta:{// 页面标题ti…

CSS之background-size属性

语法&#xff1a;background-size: auto || <length> || <percentage> || cover || contain 取值说明&#xff1a; 1.auto:此值为默认值&#xff0c;保持背景图片的原始高度和宽度 2.<length>此值设置具体的值&#xff0c;可以改变背景图片的大小 3.<…

魔界的青蔷薇也能在人间开放了

under the moon和いじわる my master里面提到过&#xff0c;青蔷薇是一种只能在魔界盛开的花&#xff0c;花语是&#xff1a;不可能。青蔷薇姬的故事是&#xff1a;我不要你的珠宝&#xff0c;只要你的真心。[separator][quote]11月1日闭幕的东京国际花卉博览会上&#xff0c;全…

javascript学习系列(19):数组中的Array.from方法

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的鼓励 1前言 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说…

本地套接字示例[来源:Advanced Linux Programming]

本地套接字示例[来源:Advanced Linux Programming] 要通过套接字连接同一台主机上的进程&#xff0c;可以使用符号常量 PF_LOCAL 和 PF_UNIX所代表的本地命名空间。它们被称为本地套接字&#xff08;local sockets&#xff09;或者 UNIX 域套接字&#xff08;UNIX-domain socke…

在JAVA中如何跳出当前的多重嵌套循环

在Java中&#xff0c;要想跳出多重循环&#xff0c;可以在外面的循环语句前定义一个标号&#xff0c;然后在里层循环体的代码中使用带有标号的break 语句&#xff0c;即可跳出外层循环。例如&#xff0c; ok: for(int i0;i<10;i) { for(int j0;j<10;j) { System.out.prin…

CSS之background-position属性

1.作用&#xff1a;background-position是用来控制元素背景图片的位置。以图片的左上角顶点为原点&#xff0c;属性值为正就代表图片下移或右移&#xff0c;属性值为负就代表图片上移或左移。它接受三种值 - 关键词&#xff0c;比如top、right、bottom、left和center - 长度值…

vue-cli3.0之vue.config.js的配置项(注解)

module.exports {// 部署应用时的基本 URL(从 Vue CLI 3.3 起已弃用&#xff0c;请使用publicPath。)baseUrl: process.env.NODE_ENV production ? 192.168.60.110:8080 : 192.168.60.110:8080,// 部署应用包时的基本 URL。用法和 webpack 本身的 output.publicPath 一致pub…

用户登录成功后才进入主窗口进行其他操作

应用前景&#xff1a;面对一个应用程序&#xff0c;用户只有输入正确的用户名和密码后&#xff0c;才能进入主窗口进行其他的操作&#xff1b;否则&#xff0c;提示登录失败&#xff0c;重新输入。 开发环境&#xff1a;Windows XP VC6.0 新建一个基于MFC的单文档应用程序(项…

javascript学习系列(20):数组中的bind,apply,call

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的鼓励 1前言 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说…