题目大意:给定一个数组,求这些数组通过异或能得到的数中的第k小是多少
首先高斯消元求出线性基,然后将k按照二进制拆分即可
注意当高斯消元结束后若末尾有0则第1小是0 特判一下然后k--
然后HDU输出long long是用%I64d 无论C艹还是G艹都是
#include
#include
#include
#include
#define M 10100
using namespace ...
分类:
其他好文 时间:
2014-10-06 18:07:20
阅读次数:
223
题目大意:给定一个无向图,每条边上有边权,求一条1到n的路径,使路径上权值异或和最大
首先一条路径的异或和可以化为一条1到n的简单路径和一些简单环的异或和
我们首先DFS求出任意一条1到n的简单路径以及图中所有最简单的简单环(环上不存在两个点可以通过环外边直连)
然后在一些数中选出一个子集,使它们与一个给定的数的异或和最大,这就是高斯消元的问题了
利用高斯消元使每一位只存在于最多一个数上 ...
分类:
其他好文 时间:
2014-10-05 19:09:08
阅读次数:
194
这是是一道可持久化数据结构题。具体分类不明按二进制位建立一颗可持久化树:因为每个节点都有两个儿子,于是非常像线段树,但是其实本质又是trie,于是就叫它可持久化trie吧。。。每次新家点的时候就在trie里加一条链,然后查询用贪心方法查即可。 1 /*************************...
分类:
其他好文 时间:
2014-10-03 23:27:45
阅读次数:
357
http://acm.hdu.edu.cn/showproblem.php?pid=4810
以前做过一些涉及异或的题,化为二进制形式,然后统计0,1个数是一种很常见的处理方法,但是在做这个题的时候居然没尝试,脑残啊......
一开始看5s时限,感觉稍微暴力一点应该可以,于是YY的O(n^3)算法但是没去实现,明显超时啊,大致就是通过C(n,1)的组合可以在O(n^2)内处理出C(n,2)的...
分类:
其他好文 时间:
2014-10-02 12:46:23
阅读次数:
146
相似的BFS+剪枝的问题。由于层交换不需要时间,所以在剪枝的时候也不需要考虑x方向消耗的时间。这里只有两层,所以用异或的方式,就可以实现层次的交换!...
分类:
其他好文 时间:
2014-10-01 13:32:51
阅读次数:
164
HJA的异或值查看提交统计提问总时间限制:20000ms内存限制:512000kB描述形态形成场(Morphogenetic Field)假说是Rupert Sheldrake提出的一种“共鸣”理论,是事件的共鸣。连续发生同类事件的场所被称为“形态形成场”,所发生的同类事件则被称为“形态共鸣”。有一...
分类:
其他好文 时间:
2014-09-30 01:43:41
阅读次数:
556
位运算是指按二进制位进行运算,运算符有一下几种“&”按位与,“|”按位或,“~”取反,“^”按位异或其真值表为:a1 a2 & | ^1 1 1 1 01 0 0 1 10 1 0 1 10 0 0 0 1a1 ~1 00 1巧用异或两个数异或的结果再与...
分类:
其他好文 时间:
2014-09-30 00:07:21
阅读次数:
155
int x=1;int y=3;x=x+y;y=x-y;x=x-y;如果int x=1000000;int y=3000000;x=x^y;y=x^y;x=x^y;一个数据异或两次得到数据本身例如5^10^10的值还是5.这个技术还可以用在加密解密里面。
分类:
其他好文 时间:
2014-09-29 00:07:06
阅读次数:
191
题目大意:两个小人在树上玩Nim游戏,问有没有必胜策略。
思路:尼姆游戏:如果所有石子的异或值为0就是必败局面。异或有如下性质:x ^ y ^ z = x ^ (y ^ z),所以就可以进行树链剖分了。题目中还好心提醒有30%的点会使dfs爆栈。。第一次写不用dfs的树链剖分,扒的别人的代码,有些丑陋。
CODE:
#include
#include
#inclu...
分类:
其他好文 时间:
2014-09-28 10:35:41
阅读次数:
167
为了a异或b的和最大,只需另b在不大于n的情况下按位取反即可。这里有两个输出小技巧可以参考:1.在用printf输出__int64时,在windows下使用格式"%I64d",在linux下使用"%lld",在hdu中应使用"%I64d",如果拿不准就是用cout好了。2.在遇到每个数之间有空格,最...
分类:
其他好文 时间:
2014-09-27 12:20:39
阅读次数:
178