题目:

loj#10078. 新年好

解析:

亲戚只有五个,可以把它们看成2,3,4,5,6号点,分别跑最短路,记录一下距离,然后DFS一下

这题非常玄学,我开了一个\(12*12\)的数组,没有离散化,竟然过了,开到\(5050*5050\)就RE,玄学

代码:

#include <bits/stdc++.h>
using namespace std; const int N = 1e6 + 10;
const int INF = 0x3f3f3f3f; int n, m, num, cnt, ans = INF;
int head[N], dis[N], home[N], d[12][12]; bool vis[N], mark[N]; struct node {
int v, nx, w;
} e[N]; struct edge {
int id, dis;
bool operator <(const edge &oth) const {
return this -> dis > oth.dis;
}
}; inline void add(int u, int v, int w) {
e[++num] = (node) {v, head[u], w}, head[u] = num;
} priority_queue<edge>q;
void dijkstra(int S) {
memset(dis, INF, sizeof dis);
memset(vis, 0, sizeof vis);
dis[S] = 0;
q.push((edge) {S, 0});
while (!q.empty()) {
edge d = q.top();
q.pop();
int u = d.id;
if (vis[u]) continue;
vis[u] = 1;
for (int i = head[u]; ~i; i = e[i].nx) {
int v = e[i].v;
if (dis[v] > dis[u] + e[i].w)
q.push((edge) {v, dis[v] = dis[u] + e[i].w});
}
}
} void dfs(int u, int sum, int cnt) {
if (cnt == 5) {
ans = min(ans, sum);
return;
}
if (sum > ans) return;
for (int i = 2; i <= 6; ++i) {
if (!mark[i]) {
mark[i] = 1;
dfs(i, sum + d[u][i], cnt + 1);
mark[i] = 0;
}
}
} int main() {
memset(head, -1, sizeof head);
cin >> n >> m;
for (int i = 1; i <= 5; ++i) cin >> home[i];
for (int i = 1, x, y, z; i <= m; ++i)
cin >> x >> y >> z, add(x, y, z), add(y, x, z);
dijkstra(1);
for (int i = 1; i <= 5; ++i)
d[1][i + 1] = d[i + 1][1] = dis[home[i]];
for (int i = 1; i <= 5; ++i) {
dijkstra(home[i]);
for (int j = i + 1; j <= 5; ++j)
d[i + 1][j + 1] = d[j + 1][i + 1] = dis[home[j]];
} mark[1] = 1;
dfs(1, 0, 0);
cout << ans << endl;
}

loj#10078. 新年好(最短路)的更多相关文章

  1. CJOI 05新年好 (最短路+枚举)

    CJOI 05新年好 (最短路+枚举) 重庆城里有n个车站,m条双向公路连接其中的某些车站.每两个车站最多用一条公路连接,从任何一个车站出发都可以经过一条或者多条公路到达其他车站,但不同的路径需要花费 ...

  2. 20101010 exam

    目录 2018 10.10 exam 解题报告 T1:LOJ #10078 新年好 题目描述(原题来自:CQOI 2005): 输入格式: 输出格式: 样例输入: 样例输出: 数据范围与提示: 思路: ...

  3. loj 1379(最短路变形)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=27087 思路:题目的意思是求S->T的所有路径中花费总和小于 ...

  4. loj 1099(最短路)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25956 思路:dist[v][0]代表走到点v的最短路,dist[ ...

  5. LOJ#6354. 「CodePlus 2018 4 月赛」最短路[最短路优化建图]

    题意 一个 \(n\) 个点的完全图,两点之间的边权为 \((i\ xor\ j)*C\) ,同时有 \(m\) 条额外单向路径,问从 \(S\) 到 \(T\) 的最短路. \(n\leq 10^5 ...

  6. LOJ#3087. 「GXOI / GZOI2019」旅行者(最短路)

    题面 传送门 题解 以所有的感兴趣的城市为起点,我们正着和反着各跑一边多源最短路.记\(c_{0/1,i}\)分别表示正图/反图中离\(i\)最近的起点,那么对于每条边\((u,v,w)\),如果\( ...

  7. LOJ P3953 逛公园 NOIP dp 最短路 拓扑排序

    https://www.luogu.org/problemnew/show/P3953 开o2过了不开o2re一个点...写法如题 顺便一提这道题在我校oj是a不了的因为我校土豆服务器速度奇慢1s时限 ...

  8. [BZOJ5109][LOJ #6252][P4061][CodePlus 2017 11月赛]大吉大利,今晚吃鸡!(最短路+拓扑排序+传递闭包+map+bitset(hash+压位))

    5109: [CodePlus 2017]大吉大利,晚上吃鸡! Time Limit: 30 Sec  Memory Limit: 1024 MBSubmit: 107  Solved: 57[Sub ...

  9. @loj - 6354@「CodePlus 2018 4 月赛」最短路

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 企鹅国中有 N 座城市,编号从 1 到 N . 对于任意的两座城 ...

随机推荐

  1. LOJ 3120: 洛谷 P5401: 「CTS2019 | CTSC2019」珍珠

    题目传送门:LOJ #3120. 题意简述: 称一个长度为 \(n\),元素取值为 \([1,D]\) 的整数序列是合法的,当且仅当其中能够选出至少 \(m\) 对相同元素(不能重复选出元素). 问合 ...

  2. Java多线程编程核心技术-第7章-拾遗增补-读书笔记

    第 7 章 拾遗增补 本章主要内容 线程组的使用. 如何切换线程状态. SimpleDataFormat 类与多线程的解决办法. 如何处理线程的异常. 7.1 线程的状态 线程对象在不同的运行时期有不 ...

  3. flask获取get请求传过来的数组

    robots = request.args.getlist("robots[]")

  4. js数组详解,js数组操作

    转自 http://www.cnblogs.com/qiantuwuliang/archive/2011/01/08/1930499.html 1.数组的创建 var arrayObj = new A ...

  5. 第二阶段团队冲刺(个人)——One

    今天的任务:修改登录界面.将原有的登录界面全部改掉,仿照千图网,做界面.

  6. Ant Design的Form

    Ant Design的Form 使用onFieldsChange时不要与 mapPropsToFields一起使用,将导致表单校验等失效

  7. 2.8/4/6/8mm/12mm焦距的镜头分别能监控多大范围?

    2.8/4/6/8mm/12mm焦距的镜头分别能监控多大范围? 相关介绍 一.焦距和监控距离的关系 我司IPC镜头焦距有2.8/4mm/6mm/8mm等多种选择,可以满足室内外各种环境的拍摄需求.IP ...

  8. Android 开发基础入门篇: 动态权限申请

    说明: 咱们在安装APP的时候经常会看到,类似于下面的提示 goolge为了保护用户隐私,在android 6.0开始,某些隐私权限,必须用户允许以后,内部程序方可使用 这就涉及到权限动态申请问题. ...

  9. Django+uWSGI+Nginx 部署网站

    Django 1.11设置 保证Django在本地调试没有问题: 当然这是前提^_^ 收集静态文件至指定文件夹 Django静态文件设置具体参考:https://docs.djangoproject. ...

  10. Seminar Schedule

    Seminar Schedule (C2017 | 2019.9-12 | 3rd semester S0500783) *************************************** ...