bzoj2662: [BeiJing wc2012]冻结 最短路 建图
好久没有1A题啦♪(^∇^*)
一个sb建图,我居然调样例调了10min
看起来是双向边,其实在建图的时候要当成有向图,
否则他会时间倒流(233)
把每个点裂成k个点,然后把每条边裂成4条边(正向反向&膜不膜)
(话说我好像不会用openlivewriter贴代码,尴尬了)
#include <bits/stdc++.h>
#define poi(x,y) ((x)*(k+1)+(y))
#define st poi(1,0)
#define INF 2000000000
using namespace std;
int n,m,k,E;
int from[],to[],nex[];
int fir[],d[],w[];
void add(int x,int y,int z)
{
from[++E]=x;to[E]=y;w[E]=z;nex[E]=fir[x];fir[x]=E;
}
int work()
{
for(int i=;i<=poi(n,k);i++)
d[i]=INF;
d[st]=;
priority_queue<pair<int,int> > q;
for(int i=fir[st];i;i=nex[i])
q.push(make_pair(-w[i],i));
while(!q.empty())
{
int tem=q.top().second;q.pop();
if(to[tem]>=poi(n,))
int e=;
if(d[from[tem]]!=INF && d[from[tem]]+w[tem]<d[to[tem]])
{
d[to[tem]]=d[from[tem]]+w[tem];
for(int i=fir[to[tem]];i;i=nex[i])
q.push(make_pair(-w[i],i));
}
}
return d[poi(n,k)];
}
int main()
{
scanf("%d%d%d",&n,&m,&k);
for(int i=;i<=m;i++)
{
int from,to,wei;
scanf("%d%d%d",&from,&to,&wei);
for(int j=;j<k;j++)
add(poi(from,j),poi(to,j+),wei/),
add(poi(to,j),poi(from,j+),wei/);
for(int j=;j<=k;j++)
add(poi(from,j),poi(to,j),wei),
add(poi(to,j),poi(from,j),wei);
}
for(int i=;i<k;i++)
add(poi(n,i),poi(n,k),);
printf("%d\n",work());
return ;
}
bzoj2662: [BeiJing wc2012]冻结 最短路 建图的更多相关文章
- Bzoj 2662: [BeiJing wc2012]冻结 dijkstra,堆,分层图,最短路
2662: [BeiJing wc2012]冻结 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 647 Solved: 348[Submit][Sta ...
- BZOJ 2662: [BeiJing wc2012]冻结(最短路)
这道题和 BZOJ 2763飞行路线 几乎一模一样..然后飞行路线我是1A,这道题WA了4次,我开始怀疑我的智商了.. ---------------------------------------- ...
- [bzoj2662 BeiJing wc2012] 冻结 (分层图+最短路)
传送门 Description "我要成为魔法少女!" "那么,以灵魂为代价,你希望得到什么?" "我要将有关魔法和奇迹的一切,封印于卡片之中„„&q ...
- BZOJ2662[BeiJing wc2012]冻结——分层图最短路
题目描述 “我要成为魔法少女!” “那么,以灵魂为代价,你希望得到什么?” “我要将有关魔法和奇迹的一切,封印于卡片之中„„” 在这个愿望被实现以后的世界里,人们享受着魔法卡片(Spe ...
- 【最短路】【Heap-Dijkstra】【分层图】bzoj2662 [BeiJing wc2012]冻结
裸的分层图最短路. #include<cstdio> #include<cstring> #include<queue> #include<algorithm ...
- BZOJ2662: [BeiJing wc2012]冻结 spfa+分层图
Description “我要成为魔法少女!” “那么,以灵魂为代价,你希望得到什么?” “我要将有关魔法和奇迹的一切,封印于卡片之中„„” 在这个愿望被实现以后的世界里,人们享 ...
- bzoj2662 [BeiJing wc2012]冻结 ——分层图
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2662 分层图: 我也不知道我写的是不是 bfs (dijkstra?). 代码如下: #in ...
- BZOJ2662[BeiJing wc2012]冻结【SPFA】
“我要成为魔法少女!” “那么,以灵魂为代价,你希望得到什么?” “我要将有关魔法和奇迹的一切,封印于卡片之中„„” 在这个愿望被实现以后的世界里,人们享受着魔法卡片(SpellCard ...
- BZOJ2662 [BeiJing wc2012]冻结
网上的题解都是分层图+spfa或者dijkstra 我觉得dijk太难写了,懒得写,看了一下数据范围$N=50$,这显然是出题人勾引人犯罪 我决定使用floyd的做法,令$f[i][j][t](k)$ ...
随机推荐
- 杂草丛生HTML5网站模板
杂草丛生HTML5个人网站模板是一款野草到处生长的HTML5网站模板下载. 模板地址:http://www.huiyi8.com/sc/8780.html
- Redis常用数据结构和操作
1.String 存入字符类型 Set name luowen 设置name = luowen 存储 Get name 获取设置好的name的值 Setnx name luowen 设置name键值为 ...
- L91
Make Healthy Choices Easier Options Telling people to change unhealthy behaviors doesn't work. Other ...
- 集训Day12
快乐 快乐就完事了 今天把Trie树 / 可持久化Trie树搞了一下 Trie树可以维护区间最大异或和 具体就是区间异或和 -> 区间两个前缀异或和的异或 然后就变成了 "从n个数里找 ...
- [HAOI 2011] Problem A
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2298 [算法] 考虑用总人数 - 最多人说真话 显然 , 对于每个人 , 如果他说的 ...
- 【LeetCode】091. Decode Ways
题目: A message containing letters from A-Z is being encoded to numbers using the following mapping: ' ...
- unicode和utf-8互转
1.1 ASCII码 我们知道, 在计算机内部, 所有的信息最终都表示为一个二进制的字符串. 每一个二进制位(bit)有0和1两种状态, 因此八个二进制位就可以组合出 256种状态, 这被称为一个字节 ...
- window系统的HOST详解
很多用户都知道在Window系统中有个Hosts文件(没有后缀名),在Windows 98系统下该文件在Windows目录,在Windows 2000/XP系统中位于C\Winnt\System32 ...
- 转 对APK进行重签名
1. 生成Android APK包签名证书1). 在doc中切换到jdk的bin目录cd C:\Program Files\Java\jdk1.6.0_18\bin2). 运 ...
- 有关mapminmax的用法详解
几个要说明的函数接口: [Y,PS] = mapminmax(X) [Y,PS] = mapminmax(X,FP) Y = mapminmax('apply',X,PS) X = mapminmax ...