今天早上,我们做了场比赛,里面有一个题目是这样的。。

题目大意:

         随着马场的繁荣,出现了越来越多的新马种。种族之间的沟通不畅严重影响了马场的和谐。这时,科学家发明了马语翻译机器人,正好可以解决这一难题。
          机器人有 M 种,每种机器人能完成 K 个马种之间的语言翻译。问,利用这些机器人,能否实现 1 种群和 N 种群的马语翻译。 若可以,找到翻译过程至少需要用到多少种语言。

解析:

  其实这道题目用最短路跑一片就可以了,无需任何玩意儿。。。。

  但是我还是桀骜不驯,来吧,召唤白番薯(BFS)!!

  其实BFS与最短路(spfa)差不多,但是对于最短路来说,我还是喜欢BFS(因为我背过板子)

问题:

  初次看这到题目时,我的心里还是有点懵逼。。。。

  

  所以还是要看看标的。。。。

  但是最重要的就是"我卢本伟没有扣标!!!!!!!"

  给大家伙们看看我遇到的问题吧:

  

 void bfs()
{
int head = ,tail = ;
q[] = ;
vis[] = ;
while (head ^ tail) //蓝色
{
int x = q[++head];
for (int j = lnk[x];j;j = nxt[j])
if (!vis[son[j]])
{
vis[son[j]] = ;
dis[son[j]] = dis[x] + ;
q[++tail] = son[j];
}
}
}

就是那蓝蓝的玩意儿!!!!

那是啥?????

于是

一波询问

终于

搞懂了

"Please start your AK show"

解决:

  先来普及一下异或:

    i xor j

  看这个玩意儿↑

 诶!!!

  打住!!!

 这可是c++专场,Pascal怎么进来了(快走!!!);

    i ^ j

  这才对!!

  看:

  a⊕b = (¬a ∧ b) ∨ (a ∧¬b)

  如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。

  异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不 带进位,所以异或常被认作不进位加法。
  异或略称为XOR、EOR、EX-OR
  程序中有三种演算子:XOR、xor、⊕。
  使用方法如下
  z = x ⊕ y
  z= x xor y
 
end.
 

  现在到BFS了

    

 void BFS()
{
int head=;
int tail=;
while(head^tail)
{
//Lazy to write labels...........
}
}

  一般循环里都是head<tail的

  可是他不是

  我瞬间懵了。。。

  后来才知道

  如果head==tail

  则为FALSE

  不然为

  TRUE

  这我才知道

  相信你也懂了!!!!

  (一直bb)

最后

  我只想说,作比赛有好多人都预知未来。。。。

  

bye~~~

关于BFS+异或(C++)的更多相关文章

  1. Sicily 1048: Inverso(BFS)

    题意是给出一个3*3的黑白网格,每点击其中一格就会使某些格子的颜色发生转变,求达到目标状态网格的操作.可用BFS搜索解答,用vector储存每次的操作 #include<bits/stdc++. ...

  2. Poj The xor-longest Path 经典题 Trie求n个数中任意两个异或最大值

    Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 5646   Accepted: 1226 Description In an ...

  3. poj1753 bfs+奇偶性减枝//状压搜索

    http://poj.org/problem?id=1753 题意:有个4*4的棋盘,上面摆着黑棋和白旗,b代表黑棋,w代表白棋,现在有一种操作,如果你想要改变某一个棋子的颜色,那么它周围(前后左右) ...

  4. poj 1753 Flip Game 枚举(bfs+状态压缩)

    题目:http://poj.org/problem?id=1753 因为粗心错了好多次……,尤其是把1<<15当成了65535: 参考博客:http://www.cnblogs.com/k ...

  5. poj 1753 Flip Game(bfs状态压缩 或 dfs枚举)

    Description Flip game squares. One side of each piece is white and the other one is black and each p ...

  6. SDUT 2860-生日Party(BFS)

    生日Party Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描写叙述 Sherlock的生日即将来临,Sherlock打算邀请几个好 ...

  7. BFS —— 信息学一本通(1451:棋盘游戏)

    题目描述 在一个4*4的棋盘上有8个黑棋和8个白棋,当且仅当两个格子有公共边,这两个格子上的棋是相邻的.移动棋子的规则是交换相邻两个棋子.现在给出一个初始棋盘和一个最终棋盘,要求你找出一个最短的移动序 ...

  8. 牛客 小a与星际探索 bfs

    链接:https://ac.nowcoder.com/acm/contest/317/C?&headNav=acm来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ ...

  9. 【Tsinsen A1039】【bzoj2638】黑白染色 (BFS树)

    Descroption 原题链接 你有一个\(n*m\)的矩形,一开始所有格子都是白色,然后给出一个目标状态的矩形,有的地方是白色,有的地方是黑色,你每次可以选择一个连通块(四连通块,且不要求颜色一样 ...

随机推荐

  1. 往element 模块里面渲染数据

    <template> <div class="hello"> <section class="el-container"> ...

  2. Wireshark使用教程:不同报文颜色的含义

    - 设置 色彩规则有两个入口,一个在报文上方的工具栏内,如图: 那个鲜艳的图标就是色彩规则的入口. 另一个是view-->coloring rules菜单. 点击进去即可看见所有的色彩规则的设置 ...

  3. VectorMap.js 矢量地图库 – 快速入门

    VectorMap.js是一个开源地图渲染JavaScript库, 可以使用WebGL或者HTML5两种方式进行交互式矢量地图 (包括“矢量瓦片地图”,一般性矢量数据地图)和 栅格瓦片地图的渲染. W ...

  4. 程序员编程时常用的mac快捷方式

    fn + F2/F3 = 调节音量 commend + shift +k = 显示或隐藏键盘 commend+shift +h = iPhone返回主页面 commend+ shift + hh = ...

  5. oracle数据库不小心删除了数据

    1.select * from SYS_DICT as of timestamp to_timestamp('2019-11-05 10:00:00','yyyy-mm-dd hh24:mi:ss') ...

  6. WindowsServer2003中IIS支持php的配置

    1.安装MySQL(没有特殊说明的就按照默认安装)选择 Custom 自定义安装点击"Change"更改 MySQL 安装目录(自定义)其他按照默认的下一步就可以 安装完成后会自动 ...

  7. Maven配置以及环境搭配

    1. Maven简单介绍 Apache Maven是个项目管理和自动构建工具,基于项目对象模型(POM)的概念. 作用:完成项目的相关操作,如:编译,构建,单元测试,安装,网站生成和基于Maven部署 ...

  8. pdfium 例子

    #include <stdio.h> #include <fpdfview.h> int main(int argc, char** argv) { FPDF_InitLibr ...

  9. Loadrunner Controller运行不了,提示cannot create Vusers

    执行场景时显示: Loadrunner Controller cannot create Vusers.Ensure that your load generators are available a ...

  10. windows远程工具RDO和RDC使用问题

    一. Remote Desktop Organizer远程连接时报错 解决方法: 二. Remote Desktop Connection Manager远程电脑没有全屏,右边和下边有滚动条 解决方法 ...