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

题目大意:

         随着马场的繁荣,出现了越来越多的新马种。种族之间的沟通不畅严重影响了马场的和谐。这时,科学家发明了马语翻译机器人,正好可以解决这一难题。
          机器人有 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. JS基础语法---练习:交换两个变量的值

    * JavaScript简称为JS * JavaScript是什么?     * 是一门脚本语言:不需要编译,直接运行     * 是一门解释性的语言:遇到一样代码就解释一行代码     * C#语言 ...

  2. Qt 显示图片

    QImage qImag("img.jpg"); //qImag = qImag.scaled(width, height); //缩放图片 qImag = qImag.scale ...

  3. [b0025] vmware_桥接网路设置

    总结: 桥接 模式上外网比较简单. 缺点是每次重启虚拟机,分配的IP可能变化,导致 xshell  连接 时都要修改,很麻烦 桥接模式能不能配置静态IP  ? 1. 环境 物理机网络 情况,从外部自动 ...

  4. [b0004] Hadoop 版hello word mapreduce wordcount 运行

    目的: 初步感受一下hadoop mapreduce 环境: hadoop 2.6.4 1 准备输入文件 paper.txt 内容一般为英文文章,随便弄点什么进去 hadoop@ssmaster:~$ ...

  5. MySQL数据库(三)锁机制

    MyISAM默认使用表级锁,不支持行级锁 InnoDB默认使用行级锁,也支持表级锁 表级锁:开销小,加锁快:不会出现死锁:锁定粒度大,发生锁冲突的概率最高,并发度最低. 行级锁:开销大,加锁慢:会出现 ...

  6. Linux常见系统命令和远程管理命令

    系统命令 时间与日期: date(查看系统时间) cal (查看本月日历)  cal -y (查看一年12个月的日历) 磁盘信息: df -h (查看磁盘剩余空间) #重点放于过载点的/ 目录下 du ...

  7. 8. Go语言—指针类型

    一.指针类型介绍 普通类型,变量存的就是值,也叫值类型. 获取变量的地址,用&,比如:var a int ,获取a的地址:&a 指针类型,变量存的是一个地址,这个地址存的才是值(指针存 ...

  8. 第50 课C++对象模型分析——成员函数(上)

    类中的成员函数位于代码段中调用成员函数时对象地址作为参数隐式传递成员函数通过对象地址访问成员变量C++语法规则隐藏了对象地址的传递过程 #include<iostream> #includ ...

  9. day75_10_22频率认证和jwt

    一.频率认证原理. 1.从dispatch中获取配置,找到setting中的配置. 2.从thtoyyling中寻找到各个认证类. 3.所有认证类都继承自basethrottle,basethrott ...

  10. Mybatis动态SQL(五)

    if choose (when, otherwise) trim (where, set) foreach 一.if 动态SQL通常要做的事情是有条件地包含 where 子句的一部分.比如: < ...