题意:一个n * m的矩阵,求从左上走到右下经过的数异或和为k的方案数. 题解: 因为数据范围较小,所以我们可以采用meet in the middle过掉此题... 然而define inf LL 才过.... #include<bits/stdc++.h> using namespace std; #define R register int #define AC 22 #define LL long long #define int LL int n, m; LL k, ans; LL…
双向搜索. 水div3的时候最后一道题由于C题死活看不懂题 来不及做F了Orz.. 因为n,m是20,双向搜索一下,求个到中间的Xor值的方案,统计一下即可. 时间复杂度\(O(2^{21})\) 好好学习英语,readforces... #include <bits/stdc++.h> using namespace std; int n,m; long long k,g[55][55],ans,mid; map<long long,long long> cnt[22][22];…
不会不会,,,%%http://hzwer.com/5813.html #include<cstdio> #include<iostream> #include<algorithm> #include<map> #include<cmath> #include<queue> #define N 1000005 #define inf 1000000000 #define LL long long using namespace std…
D. Arpa's letter-marked tree and Mehrdad's Dokhtar-kosh paths CF741D 题意: 一棵有根树,边上有字母a~v,求每个子树中最长的边,满足这个边上的所有字母重拍后可以构成回文 发明者自己出的题...orz 由于本来知道就是dsu on tree,所以还是想出来了 首先点分治是没法做了,这是有根树 写成二进制,两条链合起来构成回文\(\rightarrow\)异或和为0或者只有一位是1 一开始困惑于只处理到当前根的异或和的话,随着当前…
CF 979D Kuro and GCD and XOR and SUM(异或 Trie) 给出q(<=1e5)个操作.操作分两种,一种是插入一个数u(<=1e5),另一种是给出三个数x,k,s(<=1e5),求当前所有u中满足,k|u,x+u<=s,且\(x\oplus u\)最大的u. 做法好神啊.关于异或的问题有一种常见做法,就是利用01trie来查找在一堆数里面,哪个数与x的异或值最大.这道题就是这个思路.如果去掉k必须整除v这个条件,那么就转化成了上一个问题(只不过有最大…
D. Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths http://codeforces.com/problemset/problem/741/D 题意: 一棵根为1 的树,每条边上有一个字符(a-v共22种). 求每个子树内的最长的路径,使得路径上的边按照一定顺序排列后是回文串. 分析: dsu on tree.询问子树信息. 首先将这22个字符,转化为二进制.a=1,b=10,c=100...如果一条路径可以是回文串,那么…