传送门:点我

中文题面。

思路:拿spfa对卧铺和硬铺分别跑spfa,然后找两个的最短路。体感堆优化的dij也可以,不过spfa跑跑就过去了。有个细节是最后得用long long 存数据,其他的没啥。

去重边是拿set存的邻接表。判断是否是数字用的isdigit函数。懒的要命系列。

#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <sstream>
#include <string>
#include <vector>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <utility>
#include <bitset> using namespace std;
#define LL long long
#define pb push_back
#define mk make_pair
#define pill pair<int, int>
#define mst(a, b) memset(a, b, sizeof a)
#define REP(i, x, n) for(int i = x; i <= n; ++i)
int vis[],dis[],n,m;
set<int>v1[];
set<int>v2[];
void spfa(int st,int key){
queue<int>q;
memset(vis,,sizeof(vis));
for(int i = ; i <= n ; i++){
dis[i] = ;
}
q.push(st);
vis[st] = ;
dis[st] = ;
while(!q.empty()){
int v = q.front();
vis[v] = ;
q.pop();
if(key == ){
set<int>::iterator it = v1[v].begin();
for(;it != v1[v].end(); it++){
int to = *it;
if(dis[to] > dis[v] + ){
dis[to] = dis[v] + ;
if(!vis[to]){
q.push(to);
vis[to] = ;
}
}
}
}
else{
set<int>::iterator it = v2[v].begin();
for(;it != v2[v].end(); it++){
int to = *it;
if(dis[to] > dis[v] + ){
dis[to] = dis[v] + ;
if(!vis[to]){
q.push(to);
vis[to] = ;
}
}
}
}
}
}
int main(){
int t;
for(scanf("%d",&t);t--;){
char s[];
scanf("%d %d",&n,&m);
for(int i = ; i <= n ; i++){
v1[i].clear();
v2[i].clear();
}
while(m--){
int num;
scanf("%s %d",s,&num);
int k = , y = -;
int len = strlen(s);
for(int i = ; i < len ; i++){
if(isdigit(s[i])){
k = k * + (s[i] - '');
}
else{
if(y == -) y = k;
else{
v1[y].insert(k);
if(num > ){
v2[y].insert(k);
}
y = k;
}
k = ;
}
}
v1[y].insert(k);
if(num > ){
v2[y].insert(k);
}
}
long long ans1 = ,ans2 = ;
int d1,d2,st,ed;
scanf("%d %d %d %d",&d1,&d2,&st,&ed);
spfa(st,);
ans1 = dis[ed];
spfa(st,);
ans2 = dis[ed];
if(ans1 == && ans2 == ){
puts("-1");continue;
}
//printf("%d %d\n",ans1,ans2);
printf("%lld\n",min(ans1*d1*1LL,ans2*d2*1LL));
}
}

HDU4522 湫湫系列故事——过年回家的更多相关文章

  1. HDU 4532 湫秋系列故事——安排座位 (组合+DP)

    湫秋系列故事——安排座位 Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)To ...

  2. HDU-4522 湫湫系列故事——过年回家 最短路

    题意:很乱 分析:把数据处理下,dijkstra下就行了,floyd超时了,我还想着优化一下输入,因为使用了vector和string等等,但是计算数据规模后,处理输入的时间复杂度比floyd要低一个 ...

  3. HDU-4532 湫秋系列故事——安排座位 组合数学DP

    题意:有来自n个专业的学生,每个专业分别有ai个同学,现在要将这些学生排成一行,使得相邻的两个学生来自不同的专业,问有多少种不同的安排方案. 分析:首先将所有专业的学生视作一样的,最后再乘以各自学生的 ...

  4. [HDU4532]湫秋系列故事——安排座位

    题面在这里 description 有\(n\)种颜色的小球,每种颜色的小球有\(a_i\)个: 要把它们摆成一排,求相邻小球颜色不相同的摆放方案数. 任意两个合理的安排方法,只要有一个位置的同学不同 ...

  5. HDUOJ----4509湫湫系列故事——减肥记II

    湫湫系列故事——减肥记II Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Tot ...

  6. 完全背包问题:湫湫系列故事――减肥记I(HDU 4508)

    湫湫系列故事――减肥记I  HDU 4508 一道裸的完全背包 #include<iostream> #include<algorithm> #include<stdio ...

  7. hdu4508 完全背包,湫湫系列故事——减肥记I

    湫湫系列故事——减肥记I 对于01背包和完全背包,昨晚快睡着的时候,突然就来了灵感 区别:dp[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值 在第二重循环,01 是倒着循环的,因 ...

  8. hdu-----(4514)湫湫系列故事——设计风景线(树形DP+并查集)

    湫湫系列故事——设计风景线 Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Tot ...

  9. Hdu 4514 湫湫系列故事——设计风景线

    湫湫系列故事--设计风景线 Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total ...

随机推荐

  1. Project2016下载安装密钥激活教程破解

    project2016发布增加了许多功能.Microsoft Office 2016 官方正式版发布!这是微软发布的全新办公软件套件,相比现有Office 2013的变化也不是很大,界面和功能都只是微 ...

  2. linux 常用命令记录&& xsheel 使用记录

    cp -r x1 x2                     复制文件x1到x2 ls                                   当前目录下的文件列表 ll         ...

  3. 分布式ID生成学习

    唯一 && 趋势有序 数据库auto_increment,多个写库时,每个写库不同的初始值和相同的步长(A(0,2)B(1,2)) 缺点:非绝对递增,写库压力大 DB只保存序列最大值, ...

  4. js模板引擎初级

    模板引擎:模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的html文档. 模板引擎的实现方式有 ...

  5. 遍历DOM树,过滤节点

    jQuery还提供以下方法来过滤节点.  方法  说明  first()  获取第一个,示例 $('li').last()  last()  获取最后一个,示例$('li').last()  eq() ...

  6. LISTVIEW显示JPEG缩略图

    http://www.ctsys.cn/files/SHOW_FILES.ASPX?ID=22 许多的JPEG图片浏览器(如由我设计的<JPEG浏览缩放器>),都可以将JPEG缩略图放置到 ...

  7. Webservice之axis

    根据wsdl的url,使用axis1.4生成客户端,并且对webservice进行调用   1.到www.apache.org上去下载axis-bin-1_4.zip,如要关联源代码就把axis-sr ...

  8. 第七次Scrum冲刺

    第七次Scrum冲刺 1.今日完成的任务 队员 今日完成任务 刘佳 前端与后端对接 李佳 后端与数据库对接 周世元 数据库与后端对接 杨小妮 博客编写 许燕婷 管理团队当日及次日任务 陈水莲 综合测试 ...

  9. Signing Your Applications(Android签名相关)

    In this document Signing Overview Signing in Debug Mode Signing in Release Mode Signing Android Wear ...

  10. php设置头部让任何域名请求

    header("Access-Control-Allow-Origin: *"); // 允许任意域名发起的跨域请求...