当前你的浏览器版本过低,网站已在兼容模式下运行,兼容模式仅提供最小功能支持,网站样式可能显示不正常。
请尽快升级浏览器以体验网站在线编辑、在线运行等功能。

建议使用的浏览器:

谷歌Chrome 火狐Firefox Opera浏览器 微软Edge浏览器 QQ浏览器 360浏览器 傲游浏览器

2530:Bitland

题目描述
很久很久以前曾经有一个古老的国度叫做bitland,bitland原本是三个小的国家,and, or, xor, 他们分别由各自的君主anddy, orry, xorry统治着,后来在三个君主的协商下,合并为一个共同的国家,并由三个君主共同制定宪法,在制定法律时,需要采用某种方式来管理三个国家的人口关系,为了体现自己国家的个性,三个君主分别制定了一条规则。分别是,三个国家的人口数and起来必须为0,三个国家的人口数or起来并取补必须为0,三个国家的人口数xor起来并取补必须为0.
这个联盟维持了上百年的时间,最终还是因为三个君主利益不合的问题而发生了分裂,战争爆发了,没有人知道一共经历了多少场大大小小的战斗。但古老的羊皮卷记载着战争的一些琐碎:bitland的每一个臣民都参加拿起了武器,参加到战斗中,每一个国家都将他们的所有人口编为很多小队,为了方便管理和记录,每个小队的人数必须是2的方幂(别忘了他们采用2进制计数),另外在分队时还会使小队的数目尽量地少。
当两个国家爆发一场战斗,他们派出各自的人数最少的一个小队,他们的战斗没有任何战术可言,人多的一方一定会胜利,并俘虏敌方的整个小队成为自己的战斗力,并将俘虏带回自己的国家。另外如果一个小队到达另外一个国家时,那个国家已经没有任何人口,他们就会生出反叛之心,自己占领那个国家。
几亿年后,战争终于结束了,三个国家又重归于好,bitland的臣民又过上了幸福的生活,没有人再提起那场战争,你是bitland的一个考古学家,当你从祖父口中偶然得知了这场辉煌的战争,你决定要去走访bitland的每一个角落,去了解这场战争的每一个细节。第一步,你必须去了解一共发生了多少场战斗。你查找古老的羊皮卷,得知了战争开始前每个国家有多少人口,并统计到了战争结束时三个国家的人口数,你现在希望算出至少发生过多少场战争。
输入解释
六行分别是六个整数,x1,y1,z1,x2,y2,z2,分别代表战争前和战争后三个国家的人口数(小于2*10^18) 若全为零则结束输入
输出解释
一个整数,即最少一共经历了多少战争(小于2*10^18);
输入样例
1 0 0 0 0 1
输出样例
1

初始状态符合条件:1 and 0 and 0=0 not(1 or 0 or 0)=0 not(1 xor 0 xor 0)=0 最少经历了一场战争,
即and和xor发生一场战斗,and国家有1个小队,每个小队1人,
xor国家没有人口,故and国家的小队会占领xor国家,人口数变成0,0,1.
来自杭电HDUOJ的附加信息
Recommend lcy

该题目是Virtual Judge题目,来自 杭电HDUOJ

源链接: HDU-2530

最后修改于 2020-10-25T22:54:20+00:00 由爬虫自动更新

共提交 0

通过率 --%
时间上限 内存上限
5000/1000MS(Java/Others) 32768/32768K(Java/Others)