• 题意

给n个点m条边无向图,每次询问两个点之间是否有长度为d的路径(不一定是简单路径)(LG题意吼啊只要一句话)

  • solution

不一定是简单路径! 所以实际上两个点之间长度为d的路径其实是一条简单路径+一条边上的反复横跳

syk大佬:所以只要求出任意两点间的奇偶最短路就好了

为什么呢?显然 我们找一条奇偶性与d相同的最短简单路径,如果这条路径长度<d就TAK

所以现在我们要求奇偶最短路,首先普通最短路很简单,因为边权为1所以每个点bfs一遍就好了,对于奇偶最短路,我是这样的
对于每次bfs(s)记pos1[x]为从s到x的奇数最短路,pos2[x]为从s到x的偶数最短路,那么

        pos2[to]=min(pos2[to],pos1[x]+1);pos1[to]=min(pos1[to],pos2[x]+1);

这样交替更新()就好了
注意特判这样的数据

1 0 2
1 1 0
1 1 2
\\TAK NIE
  • code

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<vector>
#include<queue>
#define N 5050
using namespace std;
vector<int> G[N];
int n,m,k;
int dis1[N][N],dis2[N][N];
int pos1[N],pos2[N],dd[N];
queue<int>q;
bool vis[N];
void bfs(int s){
memset(pos1,0X3f,sizeof pos1);
memset(pos2,0X3f,sizeof pos2);
memset(vis,0,sizeof vis);
while(!q.empty())q.pop();
pos2[s]=0;vis[s]=1;
q.push(s);
while(!q.empty()){int x=q.front();q.pop();vis[x]=0;for(int i=0;i<G[x].size();i++){int to=G[x][i];if(!vis[to]&&((pos2[to]>pos1[x]+1)||(pos1[to]>pos2[x]+1))){vis[to]=1;q.push(to);}pos2[to]=min(pos2[to],pos1[x]+1);pos1[to]=min(pos1[to],pos2[x]+1);}
}
for(int i=1;i<=n;i++)dis1[s][i]=pos1[i],dis2[s][i]=pos2[i];
}
int main(){
scanf("%d%d%d",&n,&m,&k);
for(int i=1;i<=m;i++){int a,b;scanf("%d%d",&a,&b);G[a].push_back(b),G[b].push_back(a);dd[a]++,dd[b]++;
}
for(int i=1;i<=n;i++)bfs(i);
for(int i=1;i<=k;i++){int x,y,d;scanf("%d%d%d",&x,&y,&d);if(x==y&&d&&(!dd[x])){puts("NIE");continue;}if(d&1){if(dis1[x][y]<=d)puts("TAK");else puts("NIE");}else {if(dis2[x][y]<=d)puts("TAK");else puts("NIE");}
}
}

其实这里我开两个int[5000][5000]空间会爆,应该用short或者用离线算法,但是不知道为什么没爆 所以就不改了

转载于:https://www.cnblogs.com/stepsys/p/11587131.html

[POI2013]MOR-Tales of seafaring相关推荐

  1. [POI2013] MOR-Tales of seafaring

    传送门 简单题意:给n个点m条边无向图,每次询问两个点之间是否有长度为d的路径(不一定是简单路径).即可以重复走一条边. 思路: 蛮水的叭.我们知道路径可以重复走,所以只要找到一条和d奇偶性相同的最短 ...

  2. 真正完美攻略之星月夜~Seven Tales in Spiral(中国同人文字AVG)

    类型:同人文字AVG 公式站:(有关本游戏的 购买,资料 自己去看) http://www.efzclub.com/sn/index.htm 制作团体:『星月夜鸣』 游戏名称:『星月夜-Seven T ...

  3. 概念:COW与MOR

    名词解释 COW:写时复制 MOR:读时合并 CopyOnWrite 思想 写时复制(CopyOnWrite,简称COW)思想是计算机程序设计领域中的一种通用优化策略.其核心思想是,如果有多个调用者( ...

  4. mor命令_MOR游戏的情况。

    mor命令 Today's games industry has many strange and wonderful features. Its most distinguishing featur ...

  5. Apache Hudi 从入门到放弃(2) —— MOR表的文件结构分析

    写在开始 本篇带大家分析一下Hudi中MOR表的文件结构 刚开始看Hudi一周,有什么不对的地方欢迎大家指出 事前准备 建表 -- 先准备一张Hudi MOR表 CREATE TABLE hudi_t ...

  6. Mor.ai蓦然认知重磅推出智能家居IoT解决方案

    文章来源:ATYUN AI平台 昨天,亚洲最负有盛名的CES Asia 2018展,在上海新国际博览中心开幕. 在这场展会上亮相的AI企业,几乎代表了国内最强的人工智能势力,既有巨头公司,也有一线及垂 ...

  7. 深度好文:接入交换机三种架构TOR、EOR 和 MOR:有什么区别?

    大家好,这里是网络技术联盟站,我是瑞哥. 众所周知,数据中心服务器机房的布局通常采用矩形结构,为了保证散热效果,通常将10到20个机柜背靠背.并排排列成一对机柜组(也称为POD),为满足海量服务器连接 ...

  8. 蓦然认知戴帅湘:用Mor撕开语音交互市场的口子,掀起“人机对话直达应用”革命丨Xtecher 封面

    蓦然认知作为国内领先的一站式对话服务平台,回避行业竞争红海,选择语音交互决策引擎Mor为突破口,打造全语音服务闭环,并以此掀起"人机对话直达应用"的革命.   蓦然认知预计今年可实 ...

  9. 数据中心服务器接入线缆选择,EOR/MOR

    与TOR不同,EOR(End of Row)架构在每排机柜的末端提供统一的网络接入点.如图2-5所示,在每排机柜末端部署,供服务器统一接入网络的交换机,我们称之为EOR交换机. 图2-5 EOR交换机 ...

  10. 数据中心EOR/MOR/TOR布线概念(整理)

    数据中心机房平面布局通常采用矩形结构,为了保证制冷效果,通常将10 至 20 个机柜背靠背并排放置成一行,形成一对机柜组(又称为一个POD).POD中的机柜都采用前后通风模式,冷空气从机柜前面板的吸入 ...

最新文章

  1. HUST 1588 辗转数对
  2. 干货+福利!MySQL常见的面试题+索引原理分析!
  3. php二维数组的取值与转换
  4. Apache Spark RDD和Java流
  5. C++类成员属性的一种简洁实现
  6. SaaS:新智能背景下重构各个领域的生态系统
  7. 自动驾驶的Pipline -- 如何打造自动驾驶的数据闭环?(上)
  8. 2021美团Java面试真题解析(含参考答案)
  9. 广州行键CRM客户关系管理系统
  10. python自动更新excel数据_如何更新Excel数据?(刷新所有查询)
  11. 关于CPU架构之总结
  12. linux notifier chains机制
  13. arm mali 天梯图_移动处理器GPU性能天梯图数据库
  14. 宽带IPTV单线复用
  15. 【沐风老师】3dMax Gyroid Minimal Surface 极小曲面建模详细教程
  16. 苹果为了 5G“放过”高通!
  17. HEVC预测块(PU)模式划分显示
  18. ESP8266 MP3制作——关于SelectionList从源码中改代码的一次经历
  19. 虚拟机安装图形化界面
  20. 青春猪头大一新生开始学编程0.0

热门文章

  1. 【net】音乐播放器
  2. HUSTOJ(2019)在线判题系统的从零开始搭建过程
  3. 聊天室私聊php代码,聊天室技术 - 密谈的实现_php
  4. Python(六):dict、set
  5. ]Vi/Vim查找替换使用方法
  6. c语言自治区二级考试题库,新疆自治区计算机二级c语言考试题库---副本.pdf
  7. C语言向文件写入学生信息并读取显示出来
  8. amd显卡bios更新工具_【硬件资讯】AMD又Yes啦?全新Ryzen 5000发布!游戏最强CPU尘埃落定!现有主板无缝衔接!!...
  9. 旋转图像 leetcode
  10. 410.分割数组的最大值