题目

思博题,发现一旦路径太长我们可以来回走最后一条边,但是这样并不能改变路径长度的奇偶性

所以求一下所有点之间奇最短路和偶最短路就好了,直接暴力\(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的更多相关文章

  1. 【BZOJ3417】Poi2013 Tales of seafaring 分层图BFS

    [BZOJ3417]Poi2013 Tales of seafaring Description 一个n点m边无向图,边权均为1,有k个询问 每次询问给出(s,t,d),要求回答是否存在一条从s到t的 ...

  2. 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 ...

  3. BZOJ3417 : Poi2013 Tales of seafaring

    若x到y走k步可行,那么走k+2步也可行 以每个点为起点,BFS处理出到每个点走了奇数步.偶数步的最短路 对于一次询问,如果d不小于相应奇偶性的最短路,则可行 特判:对于孤立点,无论怎么走都不可行 # ...

  4. POI2013题解

    POI2013题解 只做了BZ上有的\(13\)道题. 就这样还扔了两道神仙构造和一道计算几何题.所以只剩下十道题了. [BZOJ3414][Poi2013]Inspector 肯定是先二分答案,然后 ...

  5. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  6. 【BZOJ3417】[POI2013]MOR-Tales of seafaring (最短路SPFA)

    [POI2013]MOR-Tales of seafaring 题目描述 一个n点m边无向图,边权均为1,有k个询问 每次询问给出(s,t,d),要求回答是否存在一条从s到t的路径,长度为d 路径不必 ...

  7. bzoj3417:[POI2013]MOR-Tales of seafaring

    传送门 这个题比较水,很容易看出 1.最短路小于d,直接看奇偶性就好了 2,最短路大于d,puts("NIE\n"); 主要就是判奇偶性的问题,将每个点拆成奇点和偶点跑bfs就行了 ...

  8. [POI2013]Łuk triumfalny

    [POI2013]Łuk triumfalny 题目大意: 一棵\(n(n\le3\times10^5)\)个结点的树,一开始\(1\)号结点为黑色.\(A\)与\(B\)进行游戏,每次\(B\)能选 ...

  9. [POI2013]Polaryzacja

    [POI2013]Polaryzacja 题目大意: 给定一棵\(n(n\le250000)\)个点的树,可以对每条边定向成一个有向图,这张有向图的可达点对数为树上有路径从\(u\)到达\(v\)的点 ...

随机推荐

  1. zjoi 2008 树的统计——树链剖分

    比较基础的一道树链剖分的题 大概还是得说说思路 树链剖分是将树剖成很多条链,比较常见的剖法是按儿子的size来剖分,剖分完后对于这课树的询问用线段树维护——比如求路径和的话——随着他们各自的链向上走, ...

  2. Delphi 与SQL编程

    Delphi 与SQL编程 SQL语言作为关系数据库管理系统中的一种通用的结构查询语言, 已经被众多的数据库管理系统所采用,如Oracle.Sybase.Informix等数据库管理系统,它们都支持S ...

  3. (转)使用Apache的ab工具进行压力测试

    转:http://www.cnblogs.com/luckyliu/archive/2012/03/04/2379306.html Apache附带的ab工具(本机使用的PHP环境是WAMP集成环境, ...

  4. sqlalchemy之create_engine和session

    sqlalchemy之create_engine和session orm 实质上,一个O/R Mapping会为你生成DAL.(即为数据访问层(Data Access Layer).其功能主要是负责数 ...

  5. python数据结构之二叉树的统计与转换实例

    python数据结构之二叉树的统计与转换实例 这篇文章主要介绍了python数据结构之二叉树的统计与转换实例,例如统计二叉树的叶子.分支节点,以及二叉树的左右两树互换等,需要的朋友可以参考下 一.获取 ...

  6. (c# )操作Excel的时候出现:不能使用对象或链接

    可能就是你打开了多个Excel进程没有关掉出现的问题. 编程:对文件操作的时候要养成关掉进程的习惯 在c#中操作完后关闭资源的代入如下: System.Runtime.InteropServices. ...

  7. scrapy的使用-scrapy shell

    进入     该目录下执行scrapy shell 文件, 在命令行可执行该文件中链接的xpath语法,和BeautifulSoup语法.

  8. 【POJ】2492 A Bug's Life

    题目链接:http://poj.org/problem?id=2492 题意:给你n个虫子,m组实验.让你帮科学家找一下有没有虫子是同性恋. 题解:假设x是一个性别,x+n为另一个性别.如果在同性的集 ...

  9. NPE问题

    “防止 NPE,是程序员的基本修养.”NPE(Null Pointer Exception) 参考: https://www.jianshu.com/p/9915f2e34a13

  10. Python 执行tail文件并操作

    def log_search(self, logfile, search_content, timeout=10): import time import subprocess import sele ...