Loading

摘要: CF360B Levko and Array 一看就二分答案,然后怎么判断就…… 可以DP. 设 f[i] 为第i个数不修改情况,然后找到 abs(a[i]-a[j])<=(i-j)*x 就是可以转移的情况了。暴力枚举j,外套一层i,\(O(n^2)\) 判断, \(O(\log n)\) 二分,总 阅读全文
posted @ 2020-03-04 22:04 zzctommy 阅读(110) 评论(0) 推荐(0) 编辑
摘要: CF613B Skills 从大到小排序能力值,然后枚举能把几个技能升满级。对于剩下的二分答案,找到能达到的最大的最小能力值。 #include<bits/stdc++.h> using namespace std; #define int long long const int N=100005; 阅读全文
posted @ 2020-03-04 22:00 zzctommy 阅读(158) 评论(0) 推荐(0) 编辑
摘要: I Count Two Three 可以预处理出所有的满足题目并且比1e9小的的数,不会很多。排个序。询问的时候二分查找就好了 #include<bits/stdc++.h> using namespace std; #define int long long int T,x,tot,a[10000 阅读全文
posted @ 2020-03-04 21:57 zzctommy 阅读(156) 评论(0) 推荐(0) 编辑
摘要: CF1251D Salary Changing 按照左端点从小到大排序,然后二分答案x贪心判断。 倒着扫 最优情况是(n/2+1)个x,其余数取左端点。 首先,如果这个节点的右端点比x大并且还没取满n/2+1个,优先把这个人的工资设成x,因为它的左端点一定没有l更小的优。 否则直接取左端点。 #in 阅读全文
posted @ 2020-03-04 21:53 zzctommy 阅读(110) 评论(0) 推荐(0) 编辑
摘要: P2585 [ZJOI2006]三色二叉树 一道奇奇怪怪的动规,可以递推的树形动规。 输入比较奇葩,考虑递归建树。 对于有2个孩子的情况,可以看看遍历了几个节点,然后加一就是编号。 void build(int l) { if(l>n)return; ++tot; if(s[l]=='0')retu 阅读全文
posted @ 2020-03-04 21:42 zzctommy 阅读(195) 评论(0) 推荐(0) 编辑
摘要: SP4033 PHONELST - Phone List Trie的经典题。 考虑在插入的时候直接查询掉。 如果插入时没有新建节点,说明它是某个串的前缀 插入完在末节点打个标记。 如果插入的时候遇上了标记,说明某个串是它的前缀 跑到底就输出YES 注意不能直接 break ,读入还是要读完 #inc 阅读全文
posted @ 2020-03-04 21:35 zzctommy 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 远古文章,谨慎食用! 稍微修了一下但感觉还是很naive。。。 fhq-Trea,又名非旋Treap 思路简单,代码简短,功能强大,LCT会多个log,但是其他操作与Splay功能差不了多少,还支持可持久化。 每个节点一个随机权值,维持平衡性。内部权值是个BST(二叉搜索树),随机权值是个Heap( 阅读全文
posted @ 2020-03-04 21:14 zzctommy 阅读(564) 评论(0) 推荐(0) 编辑