[POI2013]MOR-Tales of seafaring
思博题,发现一旦路径太长我们可以来回走最后一条边,但是这样并不能改变路径长度的奇偶性
所以求一下所有点之间奇最短路和偶最短路就好了,直接暴力\(BFS\)即可
有一个烦人的特判
代码
#include<bits/stdc++.h>
#define mp std::make_pair
#define re register
inline int read() {
char c=getchar();int x=0;while(c<'0'||c>'9') c=getchar();
while(c>='0'&&c<='9') x=(x<<3)+(x<<1)+c-48,c=getchar();return x;
}
const int maxn=5005;
struct E{int v,nxt;}e[maxn<<1];
struct Ask{int x,y,d,rk;}q[1000005];
int head[maxn],d[maxn][2],vis[maxn][2];
int n,m,num,Q,Ans[1000005],p[maxn];
std::queue< std::pair<int,int> > qt;
inline int cmp(const Ask &A,const Ask &B) {return A.x<B.x;}
inline void add(int x,int y) {e[++num].v=y;e[num].nxt=head[x];head[x]=num;}
inline void BFS(int s) {
memset(vis,0,sizeof(vis));
memset(d,20,sizeof(d));
vis[s][0]=1,d[s][0]=0;
qt.push(mp(s,0));
while(!qt.empty()) {
int k=qt.front().first,o=qt.front().second;
qt.pop();
for(re int i=head[k];i;i=e[i].nxt)
if(!vis[e[i].v][o^1]) {
vis[e[i].v][o^1]=1;
d[e[i].v][o^1]=d[k][o]+1;
qt.push(mp(e[i].v,o^1));
}
}
}
inline void solve(int L,int R) {
BFS(q[L].x);
for(re int i=L;i<=R;i++) Ans[q[i].rk]=(q[i].d>=d[q[i].y][q[i].d&1]);
for(re int i=L;i<=R;i++) if(q[i].x==q[i].y&&!p[q[i].x]&&q[i].d>0) Ans[q[i].rk]=0;
}
int main() {
n=read(),m=read();Q=read();
for(re int x,y,i=1;i<=m;i++)
x=read(),y=read(),add(x,y),add(y,x),p[x]=p[y]=1;
for(re int i=1;i<=Q;i++) q[i].x=read(),q[i].y=read(),q[i].d=read(),q[i].rk=i;
for(re int i=1;i<=Q;i++) if(q[i].x>q[i].y) std::swap(q[i].x,q[i].y);
std::sort(q+1,q+Q+1,cmp);
int l=1;
for(re int i=2;i<=Q;i++) if(q[i].x!=q[i-1].x) solve(l,i-1),l=i;
solve(l,Q);
for(re int i=1;i<=Q;i++) puts(Ans[i]?"TAK":"NIE");
return 0;
}
[POI2013]MOR-Tales of seafaring的更多相关文章
- 【BZOJ3417】Poi2013 Tales of seafaring 分层图BFS
[BZOJ3417]Poi2013 Tales of seafaring Description 一个n点m边无向图,边权均为1,有k个询问 每次询问给出(s,t,d),要求回答是否存在一条从s到t的 ...
- BZOJ3417[Poi2013]Tales of seafaring——BFS
题目描述 Young Bytensson loves to hang out in the port tavern, where he often listens to the sea dogs te ...
- BZOJ3417 : Poi2013 Tales of seafaring
若x到y走k步可行,那么走k+2步也可行 以每个点为起点,BFS处理出到每个点走了奇数步.偶数步的最短路 对于一次询问,如果d不小于相应奇偶性的最短路,则可行 特判:对于孤立点,无论怎么走都不可行 # ...
- POI2013题解
POI2013题解 只做了BZ上有的\(13\)道题. 就这样还扔了两道神仙构造和一道计算几何题.所以只剩下十道题了. [BZOJ3414][Poi2013]Inspector 肯定是先二分答案,然后 ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- 【BZOJ3417】[POI2013]MOR-Tales of seafaring (最短路SPFA)
[POI2013]MOR-Tales of seafaring 题目描述 一个n点m边无向图,边权均为1,有k个询问 每次询问给出(s,t,d),要求回答是否存在一条从s到t的路径,长度为d 路径不必 ...
- bzoj3417:[POI2013]MOR-Tales of seafaring
传送门 这个题比较水,很容易看出 1.最短路小于d,直接看奇偶性就好了 2,最短路大于d,puts("NIE\n"); 主要就是判奇偶性的问题,将每个点拆成奇点和偶点跑bfs就行了 ...
- [POI2013]Łuk triumfalny
[POI2013]Łuk triumfalny 题目大意: 一棵\(n(n\le3\times10^5)\)个结点的树,一开始\(1\)号结点为黑色.\(A\)与\(B\)进行游戏,每次\(B\)能选 ...
- [POI2013]Polaryzacja
[POI2013]Polaryzacja 题目大意: 给定一棵\(n(n\le250000)\)个点的树,可以对每条边定向成一个有向图,这张有向图的可达点对数为树上有路径从\(u\)到达\(v\)的点 ...
随机推荐
- Java 获取当前路径的方法总结
Java 获取当前路径的方法总结 1.利用System.getProperty()函数获取当前路径: System.out.println(System.getProperty("user. ...
- Flume详解
Flume是一种分布式,可靠且可用的服务,用于有效地收集,聚合和移动大量日志数据.它具有基于流数据流的简单灵活的架构.它具有可靠的可靠性机制和许多故障转移和恢复机制,具有强大的容错性.它使用简单的可扩 ...
- Python 列表,元组,字典
0)字符串切片 py_str = 'python' >>>py_str[0] #取第一个字符串,返回值为"p",超出范围会报错 >>>py_st ...
- NX二次开发-算法篇-vector函数排序(例子:遍历所有点并排序)
NX9+VS2012 #include <uf.h> #include <uf_ui.h> #include <uf_curve.h> #include <u ...
- NX二次开发-打开文件夹,并同时选中指定文件
NX9+VS2012 #include <uf.h> #include <uf_ui.h> #include <uf_part.h> #include <at ...
- 李宏毅机器学习课程---2、Regression - Case Study
李宏毅机器学习课程---2.Regression - Case Study 一.总结 一句话总结: 分类讨论可能是比较好的找最佳函数的方法:如果 有这样的因素存在的话 模型不够好,可能是因素没有找全 ...
- 一幅图解决R语言绘制图例的各种问题
一幅图解决R语言绘制图例的各种问题 用R语言画图的小伙伴们有木有这样的感受,"命令写的很完整,运行没有报错,可图例藏哪去了?""图画的很美,怎么总是图例不协调?" ...
- KEIL, MDK 关于C99结构体变量初始化
C99:here 例如声明了这样的结构体 void test1() { tt_t t1 ={ .a = , .d = 'd', .b = , .c = }; static tt_t t2 = { ,, ...
- [转载]ConcurrentHashMap之实现细节
http://www.iteye.com/topic/344876 ConcurrentHashMap是Java 5中支持高并发.高吞吐量的线程安全HashMap实现.在这之前我对Concurrent ...
- Flutter 打包报错 : Unknown FLUTTER_BUILD_MODE: xxx
概要 在集成flutter 工程之后,我们的工程在debug 和release 模式下都没什么问题,一切都很顺利.但是我们在打企业包的时候却出现了错误: Showing Recent Errors O ...