DIJK,最短路,建两个图就好了。

#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <string>
using namespace std; const int N = ;
const int inf = 0x3f3f3f3f;
int n, m, D1, D2, A, B;
vector<string>vs[];
int mp1[N][N];
int mp2[N][N]; void conn(int mp[][N], const string & s, int val) {
int t = ;
vector<int>vt;
for (int i = ; i < s.length(); ++i) {
if (s[i] != '+') t = t * + s[i] - '';
else {
vt.push_back(t);
t = ;
}
}
vt.push_back(t);
for (int i = ; i < (int)vt.size(); ++i) {
for (int j = i+; j < (int)vt.size(); ++j) {
mp[vt[i]][vt[j]] = min(mp[vt[i]][vt[j]], val*(j-i));
}
}
} int dis[N];
char vis[N]; int dijkstra(int mp[][N]) {
memset(dis, 0x3f, sizeof (dis));
memset(vis, , sizeof (vis));
dis[A] = ;
for (int i = ; i < n; ++i) {
int Min = inf, p;
for (int j = ; j <= n; ++j) {
if (!vis[j] && Min > dis[j]) {
Min = dis[j];
p = j;
}
}
if (p == B) break;
vis[p] = ;
for (int j = ; j <= n; ++j) {
if (!vis[j] && dis[p]+mp[p][j] < dis[j]) {
dis[j] = dis[p] + mp[p][j];
}
}
}
return dis[B];
} void solve() {
memset(mp1, 0x3f, sizeof (mp1));
memset(mp2, 0x3f, sizeof (mp2));
for (int i = ; i < (int)vs[].size(); ++i) {
conn(mp1, vs[][i], D1);
}
for (int i = ; i < (int)vs[].size(); ++i) {
conn(mp1, vs[][i], D1);
conn(mp2, vs[][i], D2);
}
int ans = min(dijkstra(mp1), dijkstra(mp2));
printf(ans == inf ? "-1\n" : "%d\n", ans);
} int main() {
int T, k;
char str[];
scanf("%d", &T);
while (T--) {
vs[].clear();
vs[].clear();
scanf("%d %d", &n, &m);
for (int i = ; i < m; ++i) {
scanf("%s %d", str, &k);
if (k == ) vs[].push_back(str);
else vs[].push_back(str);
}
scanf("%d %d %d %d", &D1, &D2, &A, &B);
solve();
}
return ;
}

HDU 4522的更多相关文章

  1. HDU 4522 (恶心建图)

    湫湫系列故事——过年回家 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total ...

  2. hdu 4522(图论,构图)

    湫湫系列故事——过年回家 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total ...

  3. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  4. 【HDU 3037】Saving Beans Lucas定理模板

    http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...

  5. hdu 4859 海岸线 Bestcoder Round 1

    http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...

  6. HDU 4569 Special equations(取模)

    Special equations Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

  7. HDU 4006The kth great number(K大数 +小顶堆)

    The kth great number Time Limit:1000MS     Memory Limit:65768KB     64bit IO Format:%I64d & %I64 ...

  8. HDU 1796How many integers can you find(容斥原理)

    How many integers can you find Time Limit:5000MS     Memory Limit:32768KB     64bit IO Format:%I64d ...

  9. hdu 4481 Time travel(高斯求期望)(转)

    (转)http://blog.csdn.net/u013081425/article/details/39240021 http://acm.hdu.edu.cn/showproblem.php?pi ...

随机推荐

  1. 浅析SpringDataJpa继承结构

    一.SpringDataJpa的含义: SpringDataJpa: 是Spring基于ORM框架.JPA规范封装的一套JPA应用框架,是SpringData中的一个子模块,可让开发者用极简的代码即可 ...

  2. 【原创】Vue项目中各种功能的实现

    已完成: 后台的管理功能: 这里用的组件是 element-UI  ====> NavMenu ◆首先是排版 : <div class="manage-page fillcont ...

  3. poi导出excel改变标题颜色

    在excelutil类里面添加 public class ExcelUtil { public static Workbook fillExcelData(ResultSet rs, Workbook ...

  4. layout 自适应详解

    @{    ViewBag.Title = "人员查找";    ViewBag.LeftWidth = "200px";    ViewBag.MiddleW ...

  5. linux 查看内存和cpu

    Linux查看CPU和内存使用情况 在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要.在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况.运行 ...

  6. flask 初始

    一.flask安装 这里提供两种安装方式: 第一种: pip3 install flask 第二种: pip3 install -i https://pypi.douban.com/simple/ f ...

  7. hibernate annotation 之 一对多、多对一双向外键关联

    假设,一个农场产出多种植物,具体的某一植物产于某一农场. 3 import java.io.Serializable; 4 import java.util.Set; 5 import javax.p ...

  8. 名词解释http隧道、https、SSL层、http代理、在线代理、socks代理区别

    以前听到这几个名词时,总是搞混淆,今天花点时间来记录这几个名词的大概区别,方便以后自己查看. http隧道与https http隧道:“HTTP隧道技术”就是把所有要传送的数据全部封装到HTTP协议里 ...

  9. iic通讯 FPGA实现 mpu6050为例

    IIC最常用的通讯协议,但普遍用于单片机.arm这些,用FPGA实现大材小用,但对于菜鸡水平练练手很不错,考验串并转换和时序的控制.今天我就以mpu6050陀螺仪为例,实现FPGA的iic通信. 1. ...

  10. PAT_A1066#Root of AVL Tree

    Source: PAT A1066 Root of AVL Tree (25 分) Description: An AVL tree is a self-balancing binary search ...