trie树
菜得不行的sb
摸了
展开
-
Codeforces Round #683 (Div. 2, by Meet IT) E. Xor Tree
http://codeforces.com/contest/1447/problem/E题意:给出n个互不相同的数字,对每个i(1<=i<=n)找到ai^aj最小的j(1<=j<=n, j != i)连边,求最少删除多少个数能使得这样操作出来得到的是树思路:从位运算的角度来看,决定数值大小的首先要看最高位考虑一个位,如果该位为0或1的数都有,那么为0的肯定与为0的数相连,因为这样该位的异或值为0,与为1的相连则会为1,肯定优先选小的只考虑单个位的话,同位相同的肯定会在一个连原创 2020-11-18 00:36:48 · 259 阅读 · 0 评论 -
Codeforces Round #430 (Div. 2) D. Vitya and Strange Lesson
从高位到低位建一个01trie 每次对序列异或x 实际上只要把新的x异或上前面的所有x再找就可以了 假如原序列中没有x那就是0 有的话就找一遍 尽量往小的跑 满了的话就再往上#include <iostream>#include <algorithm>#include <sstream>#include <string>#include <queue>#include <cstd原创 2017-08-30 12:11:56 · 203 阅读 · 0 评论 -
Hari Merdeka UVALive - 6806
用给的模式串build一个ac自动机 然后在fail树上做一个背包dp dp[i][j]表示第i个状态下花费了 j 获得的最大价值(顺便升级了一下原来的ac自动机模版)#include <iostream>#include <algorithm>#include <sstream>#include <string>#include <queue>#include <cstdio>#i原创 2018-04-09 14:08:56 · 127 阅读 · 0 评论 -
CS Academy Round #77 (Div. 2 only) C D
https://csacademy.com/contest/round-77/summary/C 对矩阵从右往左做一个先后手的dp dp[o][i][j]表示o玩家在从左边走到i行j列后可以取到的想要的最优解#include <iostream>#include <algorithm>#include <sstream>#include <...原创 2018-04-19 19:18:04 · 170 阅读 · 0 评论 -
Codeforces Round #476 (Div. 2) [Thanks, Telegram!] E. Short Code CF965E
http://codeforces.com/contest/965/problem/E首先建一棵trie树 问题转化为把有权的点的深度和尽量缩小 容易想到即把所有点尽量往上放 当一个节点有空位并且有多个子节点的时候 首选把最长的放在这个位置想了半天怎么dp 想来想去觉得麻烦最后还是STL好用(#include <iostream>#include <algorithm>#include原创 2018-04-27 12:52:38 · 343 阅读 · 0 评论