[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\)的点 ...
随机推荐
- 获取Delphi焦点所在的控件及通过控件名称访问控件
方法一: Var I: Integer; Begin For I := To ComponentCount - Do //获取组件数量 Begin If Components[I] Is TWinCo ...
- 排列+函数映射——hdu6038好题
/* 引理:[0,n-1]的排列,i向a[i]连边,那么每个数必定在一个环中 所以数组a可以分割成一些环,数组b也可以分割成一些环 先讨论a的一个环 a[a1]=a2 a[a2]=a3 a[a3]=a ...
- SP2713 GSS4 - Can you answer these queries IV(线段树)
传送门 解题思路 大概就是一个数很少次数的开方会开到\(1\),而\(1\)开方还是\(1\),所以维护一个和,维护一个开方标记,维护一个区间是否全部为\(1/0\)的标记.然后每次修改时先看是否有全 ...
- USACO 06JAN 牛的舞会 洛谷2863
题目描述 The N (2 <= N <= 10,000) cows are so excited: it's prom night! They are dressed in their ...
- NX二次开发-获取按钮的ID UF_MB_ask_button_id
NX9+VS2012 1.打开D:\Program Files\Siemens\NX 9.0\UGII\menus\ug_main.men 找到装配和PMI,在中间加上一段 TOGGLE_BUTTON ...
- inobounce.js : 禁止IOS H5的滑动回弹
IOS的移动端/H5/webapp 页面如果滚动到底部或者在页面顶部再往上拉,都会出现一个回弹的效果. 想取消这个效果可以引入一个简单的库就行,不用再写繁琐的样式. github地址 直接引入就行 & ...
- Python-爬虫-爬取知乎的标题和当页显示的文字
# coding:utf-8 import requests from bs4 import BeautifulSoup quesNumStr = str(input("请输入搜索关键字:& ...
- 10、 导出python脚本进行数据驱动的接口测试
postman自带脚本导出功能,对于代码小白来说,可以不错的学习代码级接口测试 第一步:输入接口地址,点击send 第二步:点击code,导出脚本文件,为python脚本 第三步:安装python3以 ...
- 20140312 Excel表格画折现图次坐标轴
1.struct 是8字节对齐 2.char * a, sizeof(a)=4; char a[]="abcdefg";sizeof(a)=8; 3.内存对其齐
- fastReport.net 初了解
delphi 中fastReport rmReport都很好用,转到.net了,第一想法也是这两个,好在这里有个fastReport; 这个安装呢 找个破解的 有个4.x版 安完建一个winForm ...