摘要: 可以发现,对于每种开关,都可以看成二进制位来转换成一个十进制的数。 那么,由于线性基里的元素构造出来是不会有重复的。 那么我们就是去插入线性基。然后对于每个线性基里的数都有选和不选的可能 所以ans = 1LL<<cnt。不要忘记取模 // Author: levil #include<bits/s 阅读全文
posted @ 2020-08-26 19:42 levill 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 这道题真的让我受益匪浅,加深了对线性基的认识。 首先,考虑了一般解法,较暴力。 将x->y路径上所有的点都加入一个空的线性基集合,最后求一次最大值即可。 既然要将每个点都加入,那么必然要一个点一个点地跳。(因为每个点都要遍历到,所以不能倍增) 那么,这时最坏复杂度在N^2。只有30分。 考虑去优化。 阅读全文
posted @ 2020-08-26 17:05 levill 阅读(159) 评论(0) 推荐(0) 编辑
摘要: HDU1848. 筛出每个值的SG函数值。 然后根据xxx博弈的定理:多个堆的博弈结果为每个堆结果的异或值。 为0先手必败,否则先手必胜。 // Author: levil #include<bits/stdc++.h> using namespace std; typedef long long 阅读全文
posted @ 2020-08-26 10:00 levill 阅读(198) 评论(0) 推荐(0) 编辑
摘要: A:百度永远滴神 // Author: levil #include<bits/stdc++.h> using namespace std; typedef long long LL; typedef pair<int,int> pii; const int N = 2e5+5; const int 阅读全文
posted @ 2020-08-26 09:38 levill 阅读(208) 评论(0) 推荐(0) 编辑