摘要:
先把水泥路建生成树,然后加鹅卵石路,这里加的鹅卵石路是一定要用的(连接各个联通块),然后初始化并查集,先把必需的鹅卵石路加进去,然后随便加鹅卵石路直到k条,然后加水泥路即可。 注意判断无解 cpp include include using namespace std; const int N=20 阅读全文
摘要:
写题五分钟读题两小时系列…… 看懂题的话不算难,然而我去看了大佬的blog才看懂题…… 题目大意是:一个原字符串,其中有一种通配符,合法串的定义是这个串(不含通配符))可以匹配原串并且这个串最多分成k段就能使每一段字典序单调不降。求在所有合法串中字典序第r大的。 设f[i][j][k]表示第i个字符 阅读全文
摘要:
参考:https://blog.csdn.net/clover_hxy/article/details/70767653 人生第一次交互题...不是很难但是思维和传统题差别挺大的(以及并不会本地测试= =),详见参考blog和代码吧 阅读全文
摘要:
用权值线段树会容易一些并快一些,但是想复健一下splay所以打了splay 然后果然不会打了。 解题思路: 首先把家和办公室在同一侧的提出来直接加进答案里; 对于k=1,直接选所有办公室和家的中位数即可,因为显然如果选的点两边的办公室和家的点不一样多的话,显然可以向多的一侧移动来使得总路程减少; 对 阅读全文
摘要:
居然要对不同的数据写不同的dp= = 首先记得开long long,\ include include using namespace std; const int N=2005,inf=1e9; int n,a,b; long long s[N],bt,ans; int read() { int 阅读全文