虫洞

伊吹萃香_(虫洞)

筅森魡賤 提交于 2020-02-05 12:02:00
• 阅读 网上竟然没有能看的懂的解释,我也是醉了 搞了好几个小时才找着一份代码,硬是看懂了 思路:记一个dis[i][j]数组,i表示节点,j表示时间是奇数还是偶数,0是偶数,1是奇数 某一个点的状态是由上一秒转移来的,而这两秒一定一个是奇数一个是偶数,所以1状态由0转移,0状态由1转移,黑洞需要翻转,而奇数秒的状态一定是被反转了的,偶数是没反转的,而这个可以用异或来搞定 因为0^1=1,1^1==0 而判断起点也是用异或 如果起点是白洞,偶数次之后还是白洞,奇数次后变成了黑洞,因为0^0=0,0^1=1,1^0=1,1^1=0 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 #include<iostream>#include<cstring>#include<cstdio>#include<queue>#include<cmath>using names 大专栏 伊吹萃香_(虫洞)pace std;struct st{ int s; bool f;};int n,m;int vis[19999][2]

POJ 3259(SPFA判断负环)

纵然是瞬间 提交于 2019-12-30 05:16:53
                  SPFA判断负环   题目:农夫约翰在探索他的许多农场,发现了一些惊人的虫洞。虫洞是很奇特的,因为它是一个单向通道,可让你进入虫洞的前达到目的地!他的N(1≤N≤500)个农场被编号为1..N,之间有M(1≤M≤2500)条路径,W(1≤W≤200)个虫洞。作为一个狂热的时间旅行FJ的爱好者,他要做到以下几点:开始在一个区域,通过一些路径和虫洞旅行,他要回到最开时出发的那个区域出发前的时间。也许他就能遇到自己了:)。为了帮助FJ找出这是否是可以或不可以,他会为你提供F个农场的完整的映射到(1≤F≤5)。所有的路径所花时间都不大于10000秒,所有的虫洞都不大于万秒的时间回溯。   问;农夫回到家的时候能发现那个准备出发的自己吗   思路:SPFA找负环裸体,开始数组开成3000RE了一次,应该开1000*1000双向通道(虫洞单向) #include <iostream> #include <cmath> #include <cstdio> #include <cstring> #include <string> #include <map> #include <iomanip> #include <algorithm> #include <queue> #include <stack> #include <set> #include

虫洞

牧云@^-^@ 提交于 2019-12-04 08:25:27
题目描述 John 在他的农场中闲逛时发现了许多虫洞。虫洞可以看作一条十分奇特的有向边,并可以使你返回到过去的一个时刻(相对你进入虫洞之前)。John 的每个农场有 M条小路(无向边)连接着 N从 1到 N标号)块地,并有 W个虫洞。现在 John 想借助这些虫洞来回到过去(在出发时刻之前回到出发点),请你告诉他能办到吗。 John 将向你提供F 个农场的地图。没有小路会耗费你超过 10^4 的时间,当然也没有虫洞回帮你回到超过 10^4秒以前。 输入 第一行一个整数F表示农场个数;对于每个农场:第一行,三个整数 N,M,W;接下来 M行,每行三个数 S,E,T 表示在标号为 S的地与标号为 E的地中间有一条用时 T秒的小路;接下来 W行,每行三个数 S,E,T 表示在标号为 S的地与标号为 E的地中间有一条可以使 John 到达 T秒前的虫洞。 输出 输出共 F行,如果 John 能在第 I个农场实现他的目标,就在第 I行输出 YES,否则输出 NO。 数据范围限制 对于全部数据: 1<=F<=5 1<=N<=500 1<=M<=2500 1<=W<=200 1<=S,E<=N |T|<=10^4 解 迷人呐。 这道题一看其实就有思路了,因为他给我们一些富有魅力的词汇:“有向边” “有M条小路(无向边)”。于是我们不难想到 最短路 求解。 我一开始想要的是dijkstra