题面太鬼,这是链接

首先,此题正解LCT。。。。。。先%%%一发,不会LCT

然后玄学解法是Superfast。。。

把边按A守护精灵升序,用Superfast记录仪B守护精灵

然后不断加边,每加一条边就松弛两个端点然后记录答案(答案==这条边A守护精灵数量(因为是最大的)+1~n的最短距离(距离是B守护精灵数)),然后加完边答案就统计出来了。。。

然后就能AC此题。。。。。。。。。。。。。。。。。

算法正确性的证明:不会

 1 // It is made by XZZ
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<queue>
 5 using namespace std;
 6 #define rep(a,b,c) for(rg int a=b;a<=c;a++)
 7 #define drep(a,b,c) for(rg int a=b;a>=c;a--)
 8 #define erep(a,b) for(rg int a=fir[b];a;a=nxt[a])
 9 #define il inline
10 #define rg register
11 #define vd void
12 #define t (dis[i])
13 typedef long long ll;
14 il int gi(){
15     rg int x=0;rg char ch=getchar();
16     while(ch<'0'||ch>'9')ch=getchar();
17     while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
18     return x;
19 }
20 #define X E[i].x
21 #define Y E[i].y
22 #define A E[i].a
23 #define B E[i].b
24 #define inf 123456
25 struct edge{int x,y,a,b;}E[100001];
26 bool operator < (edge a,edge b){return a.a<b.a;}
27 const int maxn=50002,maxm=200011;
28 int fir[maxn],dis[maxm],nxt[maxm],a[maxm],b[maxm],id=0;
29 il vd add(int fr,int to,int aa,int bb){
30     nxt[++id]=fir[fr],fir[fr]=id,dis[id]=to,a[id]=aa,b[id]=bb;
31 }
32 queue<int>que;bool inque[maxn]={0};
33 int Dis[maxn],n;
34 il int spfa(){
35     while(!que.empty()){
36         int now=que.front();
37         erep(i,now)
38             if(Dis[t]>max(Dis[now],b[i])){
39                 Dis[t]=max(Dis[now],b[i]);
40                 if(!inque[t])que.push(t),inque[t]=1;
41             }
42         que.pop(),inque[now]=0;
43     }return Dis[n];
44 }
45 int main(){
46     n=gi();
47     rg int m=gi(),ans=inf;
48     rep(i,1,m)X=gi(),Y=gi(),A=gi(),B=gi();
49     sort(E+1,E+m+1);
50     rep(i,2,n)Dis[i]=inf;
51     rep(i,1,m)
52         add(X,Y,A,B),add(Y,X,A,B),
53         que.push(X),que.push(Y),
54         inque[X]=inque[Y]=1,ans=min(ans,spfa()+A);
55     if(ans==inf)puts("-1");
56     else printf("%d\n",ans);
57     return 0;
58 }

View Code

转载于:https://www.cnblogs.com/xzz_233/p/7217004.html

【NOI2014】魔法森林相关推荐

  1. BZOJ 3669: [Noi2014]魔法森林( LCT )

    排序搞掉一维, 然后就用LCT维护加边MST. O(NlogN) ------------------------------------------------------------------- ...

  2. [LCT动态树] [NOI2014]魔法森林,[ZJOI2018]历史

    [NOI2014] 魔法森林 题目 按照aaa精灵从小到大排序 按顺序插入每一条边 加入第iii条边后的最小代价为a[i]a[i]a[i]加上从111到nnn的所有路径中最大bbb最小的路径代价 维护 ...

  3. loj2245 [NOI2014]魔法森林 LCT

    [NOI2014]魔法森林 链接 loj 思路 a排序,b做动态最小生成树. 把边拆成点就可以了. uoj98.也许lct复杂度写假了..越卡常,越慢 代码 #include <bits/std ...

  4. 【bzoj3669】[Noi2014]魔法森林【LCT】

    [Noi2014]魔法森林 Description 为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士.魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1 ...

  5. 神spfa [Noi2014]魔法森林

    问题 G: [Noi2014]魔法森林 时间限制: 30 Sec  内存限制: 512 MB 题目描述 为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士.魔法森林可以被看成一个包含个 ...

  6. 【bzoj 3669】[Noi2014]魔法森林

    Description 为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士.魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1..M.初始时小E同学在号节 ...

  7. 图论 BZOJ 3669 [Noi2014]魔法森林

    Description 为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士.魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1..M.初始时小E同学在号节 ...

  8. [BZOJ]3669: [Noi2014]魔法森林 lct

    Description 为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士.魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1..M.初始时小E同学在号节 ...

  9. [NOI2014]魔法森林题解

    这道题正解其实是LCT,然而貌似SPFA也可以成功水过,所以根本不知道LCT的我只能说SPFA了. 这道题最大的限制是两种精灵就意味着一条道可能有两个权值,因此我们需要去将其中一个固定,然后再推另一个 ...

  10. P2387 [NOI2014]魔法森林

    传送门 如果一条边只要考虑 $a$ 的限制,那么显然最小生成树 但是现在有 $a,b$ 两个限制,所以考虑按 $a$ 从小到大枚举边,动态维护 $b$ 的最小生成树 考虑新加入的一条边 $x,y$ , ...

最新文章

  1. 求数组当中子数组最大和
  2. intellij idea 如何一键清除所有断点
  3. 中国SaaS死或生之五:目标、方法、钱,一个都不能少
  4. iOS多线程开发(三)---Run Loop(一)
  5. vb.net2019-上传文件
  6. C++中逆向迭代器的说明及使用
  7. 机器学习部分国内牛人
  8. GIS工具篇(一):2000大地坐标系转换指南
  9. LeetCode两数相除java
  10. C语言小知识---递归函数的使用
  11. block,inline和inline-block
  12. PHPExcel基本使用(2) 导入图片
  13. 【毕业求职季】-听说你想去大厂看学妹,带你看看字节广告运营岗面试长啥样?
  14. 使用ENVI对遥感图像进行图像镶嵌、图像裁剪。
  15. 2017年网易校招Java面试题
  16. JAVA常用加密解密算法Encryption and decryption
  17. FlashFXP v4.4.2.2019 绿色版
  18. 我们使用 Kafka 生产者在发消息的时候我们关注什么(Python 客户端 1.01 broker)...
  19. python批量修改图片的分辨率dpi值
  20. [2022 强网杯] devnull 复现

热门文章

  1. python条件语句代码例子_Python 炫技操作:条件语句的七种写法
  2. 第一章节 c#面向对象
  3. leetcode 78.子集 dfs解法
  4. 动态规划-----(思路详解)
  5. ZOJ 3993 2017CCPC秦皇岛 M:Safest Buildings
  6. SpringBoot--自动装配原理详解及应用之Conditional注解
  7. [Python] 将两个列表合并为字典
  8. [Python] * 和 ** 的用法
  9. AD19原理图背景栅格去掉(改为纯色)
  10. theadClasses设置Bootstrap Table表头样式