洛谷 U78696 图书馆馆长的考验 题解
1. 图书馆馆长的考验(library)
红魔馆的拥有者蕾米莉亚的好友帕秋莉是红魔馆的大图书馆的馆长。擅长操纵五行,名言是“万物都有属性。所谓的属性,和弱点是一样的”。
一天,因为魔理沙看了神之右大臣的视频却不投硬币不点收藏不加关注导致受到了幽幽子的追杀。在博丽灵梦的引荐下,魔理沙来到红魔馆去向帕秋莉学习暗黑魔法来打败幽幽子。
但帕秋莉不想这么轻易的教她,所以身为图书馆馆长的她发动了禁术,改变了图书馆的结构,让其变为了一个巨大的迷宫。这个迷宫一共有n个房间,m条通道。开始时魔理沙在1号房间,帕秋莉在n号房间。有的房间之间存在一个通道(双向),表示可以从ui号房间到达vi号房间(反过来也可以)。如果想通过该通道,魔理沙就需要使用一个消耗魔法值为wi的魔法来抵抗该通道的攻击。
为了能够提高魔理沙到达n号房间的可能性,帕秋莉将改变后的图书馆地图发送给了魔理沙。
魔理沙懒得不像样,直接把地图递给了你,让你告诉她如何前进才能到达。(任意一条路线都可以)。
这太简单了!身为要AK noip的你一看就已经知道了一条路径,但魔理沙接下来又说,“既然看都看了,就直接告诉我到那最轻松(消耗魔法值最少)的路吧 DA☆ZE!”
那也很简单啊!你刚打算说答案,帕秋莉的声音从你的脑中响起:“原来的图书馆中含有p个暗道,如今这些暗道依然存在。这些暗道在地图上没有体现,现在告诉你,这或许会影响你的答案。但如果要走从a到b的暗道(双向),不仅要消耗ti的魔法值来维持传送,而且一定要到c房间去读一本书(不消耗魔法值)来找到打开这个暗道的机关,不同暗道所需读的书不同且可能不在同一房间。”
这还是很简单啊!!!你经过少许计算后得出了结果,告诉了魔理沙。
为了简便,你只告诉她该方案所消耗的魔法值(答案在int范围内)。
输入格式:
第一行输入n,m,p;
接下来m行每行格式为ui,vi,wi;
接下来p行每行输入ci,ai,bi,ti;
输出格式:
输出一行:消耗魔法值最少的路所消耗的魔法值。
数据范围:
对于10%的数据,n<=300,m<=500且p=0。
对于另20%的数据,仅保证p=0;
对于另20%的数据,保证n<=300,m<=500,且该图是一棵树;wi>0,ti>0
对于100%的数据,n<=1000,m<=2000,p<=10;(普遍情况下n比m要小得多)
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
输入样例1:
10 9 0
1 2 2
2 3 29
3 4 3
4 5 124
5 6 123
6 7 45
7 8 21
8 9 211
9 10 48
输出样例1:
606
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
输入样例2:
10 11 1
1 2 213
2 3 134
2 4 112
4 3 113
3 9 145
9 5 311
4 5 421
4 6 112
6 7 341
7 8 121
8 10 461
4 9 10 121
输出样例2:
704
题解:

#include <iostream>
#include <cstdio>
#pragma GCC optimize(2)
using namespace std;
int n,m,p;
struct littlestar{
int to;
int nxt;
int w;
}star[];
int head[],cnt;
void add(int u,int v,int w)
{
star[++cnt].to=v;
star[cnt].w=w;
star[cnt].nxt=head[u];
head[u]=cnt;
}
int floor,tot;
int have[];
int ans=;
int dis[],vis[],q[];
void spfa()
{
for(register int i=;i<=tot;i++)
{
dis[i]=;
}
dis[]=;
vis[]=;
int h=,t=;
q[]=;
while(h<=t){
int u=q[h];
for(register int j=head[u];j;j=star[j].nxt){
int v=star[j].to;
if(dis[v]>dis[u]+star[j].w){
dis[v]=dis[u]+star[j].w;
if(!vis[v]){
q[++t]=v;
vis[v]=;
}
}
}
vis[u]=;
++h;
}
}
int main ()
{
//freopen("library.in","r",stdin);
cin>>n>>m>>p;
floor=<<p;
tot=n*floor;
for(register int i=;i<=m;i++){
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
for(register int j=;j<floor;j++){
add(n*j+x,n*j+y,z);
add(n*j+y,n*j+x,z);
}
}
for(register int k=;k<=p;k++){
int x,u,v,w;
scanf("%d%d%d%d",&x,&u,&v,&w);
for(register int i=;i<floor;i++){
for(register int j=;j<=p;j++){
if(i&(<<(j-))){
have[j]=;
}
else have[j]=;
}
if(have[k]==){
add(n*i+u,n*i+v,w);
add(n*i+v,n*i+u,w);
}
int tmp=i^(<<(k-));
add(n*tmp+x,n*i+x,);
}
}
spfa();
for(register int i=;i<floor;i++){
ans=min(ans,dis[i*n+n]);
}
cout<<ans<<endl;
}
/*
10 11 1
1 2 213
2 3 134
2 4 112
4 3 113
3 9 145
9 5 311
4 5 421
4 6 112
6 7 341
7 8 121
8 10 461
4 9 10 121 10 9 0
1 2 2
2 3 29
3 4 3
4 5 124
5 6 123
6 7 45
7 8 21
8 9 211
9 10 48
*/

v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
MicrosoftInternetExplorer4
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}
洛谷 U78696 图书馆馆长的考验 题解的更多相关文章
- 洛谷P1854 花店橱窗布置 分析+题解代码
洛谷P1854 花店橱窗布置 分析+题解代码 蒟蒻的第一道提高+/省选-,纪念一下. 题目描述: 某花店现有F束花,每一束花的品种都不一样,同时至少有同样数量的花瓶,被按顺序摆成一行,花瓶的位置是固定 ...
- HAOI2006 (洛谷P2341)受欢迎的牛 题解
HAOI2006 (洛谷P2341)受欢迎的牛 题解 题目描述 友情链接原题 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所有奶 牛都是自恋狂,每头奶牛总是喜欢自己的.奶牛之 ...
- 【洛谷】P4883 mzf的考验
[洛谷]P4883 mzf的考验 最近忽然放弃治疗开始随机跳题了 感觉还行 就是必须吸氧感觉有点糟糕... 这题翻转和求和都是平衡树基本操作,那个异或可以通过维护树中\(2\)进制下第\(2^{i}\ ...
- 洛谷P3412 仓鼠找$Sugar\ II$题解(期望+统计论?)
洛谷P3412 仓鼠找\(Sugar\ II\)题解(期望+统计论?) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1327573 原题链接:洛谷P3412 ...
- 洛谷P3502 [POI2010]CHO-Hamsters感想及题解(图论+字符串+矩阵加速$dp\&Floyd$)
洛谷P3502 [POI2010]CHO-Hamsters感想及题解(图论+字符串+矩阵加速\(dp\&Floyd\)) 标签:题解 阅读体验:https://zybuluo.com/Junl ...
- BZOJ4946 & 洛谷3826 & UOJ318:[NOI2017]蔬菜——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=4946 https://www.luogu.org/problemnew/show/P3826 ht ...
- 洛谷1578:[WC2002]奶牛浴场——题解
https://www.luogu.org/problemnew/show/P1578#sub 由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少.为了讨好奶牛,John决定在牛场中建 ...
- 洛谷P2460 [SDOI2007]科比的比赛(题解)(贪心+搜索)
科比的比赛(题解)(贪心+搜索) 标签:算法--贪心 阅读体验:https://zybuluo.com/Junlier/note/1301158 贪心+搜索 洛谷题目:P2460 [SDOI2007] ...
- 洛谷 P1146 【硬币翻转】题解
很久很久之前做过的一道题 翻n-1枚硬币,就是有一枚不翻,也可以理解为翻一枚 直接上程序,看程序说话 #include<iostream> using namespace std; ; b ...
随机推荐
- 快速搭建 Serverless 人脸识别离线服务
简介 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute):函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传.函数计算准 ...
- Redis总结 C#中如何使用redis
转载自:https://www.cnblogs.com/zhangweizhong/p/4972348.html 本篇着重讲解.NET中如何使用redis和C#. Redis官网提供了很多开源的C#客 ...
- Max Sum Plus Plus(最大m字段和,优化)
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Description Now I t ...
- 2002: [Hnoi2010]Bounce 弹飞绵羊(分块)
2002: [Hnoi2010]Bounce 弹飞绵羊 时间限制: 10 Sec 内存限制: 259 MB 题目描述 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他 ...
- JIRA7.13版本创建项目:字段和界面(三)
这是我从网上找的资料和最新版的相差不大,可以借鉴原文链接:http://ju.outofmemory.cn/entry/367224 项目的版本号取决于修复版本,不是影响版本 字段 我们已经知道如何在 ...
- 使用 SpringBoot+Dubbo 搭建一个简单分布式服务
实战之前,先来看几个重要的概念 开始实战之前,我们先来简单的了解一下这样几个概念:Dubbo.RPC.分布式.由于本文的目的是带大家使用SpringBoot+Dubbo 搭建一个简单的分布式服务,所以 ...
- Java8 Optional && Guava Optional
Java8 -- Optional boolean isPresent():与obj != null()一样:调用get()前要调用isPresent()检查,不然会报错 Optional的三种构造方 ...
- 全面解读php-函数
一.静态变量 二.函数的参数 三.函数的引用返回 四.外部文件的导入 五.内置函数 1.时间日期函数 2.IP处理函数 3.打印函数: 分类 函数名 说明 语言结构 print() 只能打印一个变量 ...
- 鬼知道NOI会不会成为下一个奥数
认真写作文不可能的,这辈子不可能认真写作文的. (月考,期末考,高考即将到达战场,真香警告) 以下应该成为原稿!!! 真.喜欢写感悟,但我感觉我可能把它写的有点商业化,商业化的文章不可能放的,所以我尽 ...
- 阶段3 1.Mybatis_12.Mybatis注解开发_8 mybatis注解开发使用二级缓存
执行两次都查询userId为57的数据.测试一级缓存 返回true 新建测试类 ,测试二级缓存 二级缓存的配置 首先是全局配置,不配置其实也是可以的.默认就是开启的.这里为了演示配置上 dao类里面进 ...