题面

1. 图书馆馆长的考验(library)

红魔馆的拥有者蕾米莉亚的好友帕秋莉是红魔馆的大图书馆的馆长。擅长操纵五行,名言是“万物都有属性。所谓的属性,和弱点是一样的”。

一天,因为魔理沙看了神之右大臣的视频却不投硬币不点收藏不加关注导致受到了幽幽子的追杀。在博丽灵梦的引荐下,魔理沙来到红魔馆去向帕秋莉学习暗黑魔法来打败幽幽子

帕秋莉不想这么轻易的教她,所以身为图书馆馆长的她发动了禁术,改变了图书馆的结构,让其变为了一个巨大的迷宫。这个迷宫一共有n个房间,m条通道。开始时魔理沙在1号房间,帕秋莉在n号房间。有的房间之间存在一个通道(双向),表示可以从ui号房间到达vi号房间(反过来也可以)。如果想通过该通道,魔理沙就需要使用一个消耗魔法值为wi的魔法来抵抗该通道的攻击。

为了能够提高魔理沙到达n号房间的可能性,帕秋莉将改变后的图书馆地图发送给了魔理沙。

   魔理沙懒得不像样,直接把地图递给了你,让你告诉她如何前进才能到达。(任意一条路线都可以)。

这太简单了!身为AK noip的你一看就已经知道了一条路径,但魔理沙接下来又说,“既然看都看了,就直接告诉我到那最轻松(消耗魔法值最少)的路吧 DAZE

那也很简单啊!你刚打算说答案,帕秋莉的声音从你的脑中响起:“原来的图书馆中含有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 图书馆馆长的考验 题解的更多相关文章

  1. 洛谷P1854 花店橱窗布置 分析+题解代码

    洛谷P1854 花店橱窗布置 分析+题解代码 蒟蒻的第一道提高+/省选-,纪念一下. 题目描述: 某花店现有F束花,每一束花的品种都不一样,同时至少有同样数量的花瓶,被按顺序摆成一行,花瓶的位置是固定 ...

  2. HAOI2006 (洛谷P2341)受欢迎的牛 题解

    HAOI2006 (洛谷P2341)受欢迎的牛 题解 题目描述 友情链接原题 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所有奶 牛都是自恋狂,每头奶牛总是喜欢自己的.奶牛之 ...

  3. 【洛谷】P4883 mzf的考验

    [洛谷]P4883 mzf的考验 最近忽然放弃治疗开始随机跳题了 感觉还行 就是必须吸氧感觉有点糟糕... 这题翻转和求和都是平衡树基本操作,那个异或可以通过维护树中\(2\)进制下第\(2^{i}\ ...

  4. 洛谷P3412 仓鼠找$Sugar\ II$题解(期望+统计论?)

    洛谷P3412 仓鼠找\(Sugar\ II\)题解(期望+统计论?) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1327573 原题链接:洛谷P3412 ...

  5. 洛谷P3502 [POI2010]CHO-Hamsters感想及题解(图论+字符串+矩阵加速$dp\&Floyd$)

    洛谷P3502 [POI2010]CHO-Hamsters感想及题解(图论+字符串+矩阵加速\(dp\&Floyd\)) 标签:题解 阅读体验:https://zybuluo.com/Junl ...

  6. BZOJ4946 & 洛谷3826 & UOJ318:[NOI2017]蔬菜——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4946 https://www.luogu.org/problemnew/show/P3826 ht ...

  7. 洛谷1578:[WC2002]奶牛浴场——题解

    https://www.luogu.org/problemnew/show/P1578#sub 由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少.为了讨好奶牛,John决定在牛场中建 ...

  8. 洛谷P2460 [SDOI2007]科比的比赛(题解)(贪心+搜索)

    科比的比赛(题解)(贪心+搜索) 标签:算法--贪心 阅读体验:https://zybuluo.com/Junlier/note/1301158 贪心+搜索 洛谷题目:P2460 [SDOI2007] ...

  9. 洛谷 P1146 【硬币翻转】题解

    很久很久之前做过的一道题 翻n-1枚硬币,就是有一枚不翻,也可以理解为翻一枚 直接上程序,看程序说话 #include<iostream> using namespace std; ; b ...

随机推荐

  1. unittest详解(三) 测试套件(TestSuite)

    在前面一章中示例了如何编写一个简单的测试,但有两个问题: 我们知道测试用例的执行顺序是根据测试用例名称顺序执行的,在不改变用例名称的情况下,我们怎么来控制用例执行的顺序呢? 一个测试文件,我们直接执行 ...

  2. 在线PDU格式编码/解码

    在线PDU格式编码/解码 使用GSM/GPRS AT指令发送中文短信,汉字时,需要先将短信内容编码成PDU格式,然后通过AT+CMGS AT+CMGW等指令发送.     注意:需要先通过AT+CMG ...

  3. MongoDB4和MysSQL5.7的读/写和事务处理速度简单对比

    系统环境: Ubuntu 18.04 数据库 MysSQL5.7/MongoDB4.0 插入的数据为随机生产,不重复. MySQL使用的连接库是 sqlalchemyMongoDB使用的连接库是pym ...

  4. 怎么理解一个规模大且结构复杂的c工程源码

    很久以前,当要着手一个规模很大,结构复杂的c工程源码时,总是感觉无从下手.这个时候,一般google一下”XX源码分析“.当这个源码是很广泛使用的时,这样到也能得到不少启发:很不幸,经常要接触一些很少 ...

  5. 监控部署nagios+snmp

    参看是否有安装:rpm -q gcc glibc glibc-common gd gd-devel xinetd openssl-devel 未安装基础支持套件的先安装: yum install -y ...

  6. jquery用formada发送文件到服务器

    var formdata = new FormData(); formdata.append("file", $("#Input")[0].files[0]); ...

  7. Python文件重命名代码

    import os def re_name(path): for file in os.listdir(path): file_path = os.path.join(path, file) # 判断 ...

  8. Delphi导出Excel的设置操作

    procedure CreatRepSheet(SheetName:String;PageSize,PageLay:Integer); {新建Excel工作簿.进行页面设置} begin {新建Exc ...

  9. nanomsg安装和测试

    最近在构建一个中间层的通信架构,本来想用dbus,在实验过程中发现dbus对于国产系统支持版本比较低,安装比较麻烦,今天无意中看中了nanomsg,尽管没有dbus那么强悍的生态,但基本能满足需求. ...

  10. Day01:对象和类(上)

    对象的概念 Java 是面向对象的编程语言,对象就是面向对象程序设计的核心.所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念.对象有以 ...