04 2020 档案
摘要:Splay这个东西,首先它有一个rotate函数,作用是把一个节点往上转(类似avl 那你不停得转这个点不就到根了吗? 然后就有一个人说:随机地 不停rotate一定数量的点到根可以保证树类似avl的logn层 就没了。。。。 学了很多年算法,当你要学一个新东西的时候首先有一个轮廓性的了解才是最重要
阅读全文
摘要:题意:http://uoj.ac/problem/198 这题看懂了差不多就行, 我就差对每个星球的插入删除区间的维护了,因为不是很懂题目会不会添加了一个星球后来删除了,然后又添加了这种情况 所以我不想写了,对。。。 其他部分我都写好了 1 const int N=(int)5e5+10; 2 3
阅读全文
摘要:题意:http://codeforces.com/problemset/problem/741/D 求各个子树的最长回文链,字符可任意组合 思路: 其实肯定是要转换成进制状压的 也是dsu on tree的模板题 这里由于保留重子树要上升一条链(因为值是在边上的) 更新不太好更新,我一开始一直想着从
阅读全文
摘要:思路:适用整数,实数就不知道了 一个1e18以内的数,经过最多6次开平方操作后,会变成1 所以线段树的每个节点记一下开了几次根号 每次暴力修改就行,>6就不下去了 nlogn
阅读全文
摘要:题意:https://www.luogu.com.cn/problem/P4585 询问有两种限制 1:商店区间限制 2:时间区间限制 思路: 像这样两个限制我们考虑线段树二分(应该是这么考虑吧。。。 线段树二分我的理解其实就是整体二分只不过在线段树上 线段树二分有时候也利用dfs的顺序解题,比如L
阅读全文
摘要:老老实实rt.ans=ls.ans 搞rs.ans,不要骚操作,不然单点修改会让你很烦
阅读全文
摘要:题意:https://codeforces.com/problemset/problem/281/C 就存个模板 1 #define IOS ios_base::sync_with_stdio(0); cin.tie(0); 2 #include <cstdio>//sprintf islower
阅读全文
摘要:题意:https://codeforces.com/problemset/problem/1070/C 给你很多区间的物品,你可以在区间里花pi的钱最多买ci个,每天你必须有买k个的任务,问你这段区间走完你花的最少的钱。 思路: 看到区间就想到差分,如果给你一个数据结构可以很快的push一个东西,e
阅读全文
摘要:题意:https://codeforces.com/problemset/problem/1070/A 问你整除a,位上数和为b的最小正整数。 思路: 一开始一直数位dp,发现不对劲 后来还是看了题解,其实很简单,答案肯定是在一个二维矩阵里的(i为和,j为余数) 一开始我们只有[0][0],我们通过
阅读全文
摘要:我找遍了全网,基本没什么人写windows下clion导入mysql库的,自己捣鼓了半天,大家就可以省点劲了 直接贴代码 1 cmake_minimum_required(VERSION 3.7) 2 project(Clion_mysql) 3 4 set(CMAKE_CXX_STANDARD 1
阅读全文
摘要:题意:http://codeforces.com/problemset/problem/508/E 就是告诉你每对括号的左右距离范围,让你构造这个括号。 思路: 看了题解才知道。 首先看到括号你得想到stack堆栈,想到的话很快就出结论了。 因 1 struct node 2 { 3 int l,r
阅读全文
摘要:题意:http://poj.org/problem?id=2286 像密码锁一样可以转转转 问你中间8个都一样的最小步数 思路: 状态不好计,就dfs了! 剪枝:一个类似A*的f=g+h的函数(61行) 据说最多6次操作?? 1 #include <iostream> 2 #include <cst
阅读全文
摘要:题意:http://poj.org/problem?id=3134 应该好理解 思路: 枚举层数(也就是ans) dfs判断d到这个深度可不可以 +各种剪枝就能过 1 #define IOS ios_base::sync_with_stdio(0); cin.tie(0); 2 #include <
阅读全文
摘要:题意:https://codeforces.com/contest/1219/problem/A 每次占一个点,获取一个价值(与该点连通的未占数量),每次选的点必须与占的点相连。 问你最大获益 思路: 树dp出以某个树开始往环上走。 然后就开始考虑环我们怎么走,首先我想的是枚举以那颗树为起点,每次走
阅读全文
摘要:题意:https://codeforces.com/problemset/problem/416/D 合成连续等差数列,-1可替换任何数字,问最少多少段 思路: 一开始dp,d得头都痛了。 题解说每次取两个正数搞搞,差不多:能合体就合体,然后往后拖(还说反正不会使答案更差。。。 具体见代码 1 #d
阅读全文