Loading

上一页 1 ··· 4 5 6 7 8 9 下一页
摘要: CF1251D Salary Changing 按照左端点从小到大排序,然后二分答案x贪心判断。 倒着扫 最优情况是(n/2+1)个x,其余数取左端点。 首先,如果这个节点的右端点比x大并且还没取满n/2+1个,优先把这个人的工资设成x,因为它的左端点一定没有l更小的优。 否则直接取左端点。 #in 阅读全文
posted @ 2020-03-04 21:53 zzctommy 阅读(116) 评论(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 阅读(197) 评论(0) 推荐(0) 编辑
摘要: SP4033 PHONELST - Phone List Trie的经典题。 考虑在插入的时候直接查询掉。 如果插入时没有新建节点,说明它是某个串的前缀 插入完在末节点打个标记。 如果插入的时候遇上了标记,说明某个串是它的前缀 跑到底就输出YES 注意不能直接 break ,读入还是要读完 #inc 阅读全文
posted @ 2020-03-04 21:35 zzctommy 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 远古文章,谨慎食用! 稍微修了一下但感觉还是很naive。。。 fhq-Trea,又名非旋Treap 思路简单,代码简短,功能强大,LCT会多个log,但是其他操作与Splay功能差不了多少,还支持可持久化。 每个节点一个随机权值,维持平衡性。内部权值是个BST(二叉搜索树),随机权值是个Heap( 阅读全文
posted @ 2020-03-04 21:14 zzctommy 阅读(575) 评论(0) 推荐(0) 编辑
摘要: P1966 火柴排队 那个数组绕绕的qwq。看看题大概就能猜到是逆序对,可以用切比雪夫不等式证明。就是让a中第1大的、第2大的、第3大的……对应b中第1大的、第2大的、第3大的…… #include<bits/stdc++.h> using namespace std; #define int lo 阅读全文
posted @ 2020-03-03 18:11 zzctommy 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 远古文章,懒得修了。 关于ODT,毒瘤lxl发明的,然后毒瘤鱼鱼因为我用ODT误导人D了我一回……upd:这都一年前的事了 这是一种基于 \(set\) 的暴力数据结构。 在使用时请注意,(大部分题目)没看见这2东西千万别用…… 保证数据随机 有区间推平操作。 主要是均摊复杂度要正确 这里解释一下区 阅读全文
posted @ 2020-02-27 21:59 zzctommy 阅读(228) 评论(0) 推荐(0) 编辑
摘要: HDU - 2196 Computer 经发现 ,答案就是到直径2个端点距离的较大值。然后先搞出直径,再从直径2端分别开始,求出每个点与它的距离,取较大值。 #include<bits/stdc++.h> using namespace std; const int N=10006; int n,f 阅读全文
posted @ 2020-02-25 13:42 zzctommy 阅读(94) 评论(0) 推荐(0) 编辑
摘要: trie树就是从当前节点往每个字母连一个指针,从而$O(26*n)$或别的复杂度,反正有一个常数。表达能力不不行…… 建树(插入) void ins(char *s) { int len=strlen(s),u=1; for(int i=0;i<=len-1;++i) { int v=s[i]-'a 阅读全文
posted @ 2020-02-25 13:33 zzctommy 阅读(139) 评论(0) 推荐(0) 编辑
摘要: P2312 解方程 随机化的通俗解释:当无法得出100%正确的答案时,考虑随机化一波,于是这份代码很大可能会对(几乎不可能出错)。 比如这题:把系数都模一个大质数(也可以随机一个质数),然后O(m)跑一遍检验就好了。 这里插一句,说一下如何随机一个大质数:先搞一个数据范围差不多的数x(rand出来) 阅读全文
posted @ 2020-02-24 22:22 zzctommy 阅读(130) 评论(0) 推荐(0) 编辑
摘要: P1129 [ZJOI2007]矩阵游戏 这题想到思路就很好做了。 设输入的矩阵为s。如果 \(s_{i,j}=1\) 那么连边 (i,j).然后跑最大流,看看是否等于n。s向行连边,列向t连边。 \(maxflow=n\) 说明有解,否则无解。 仔细想想,好像是有点道理…… 考虑说明正确性.原矩阵 阅读全文
posted @ 2020-02-24 22:14 zzctommy 阅读(157) 评论(0) 推荐(0) 编辑
摘要: Tree P4178 Tree 点分治板子。 点分治就是直接找树的重心进行暴力计算,每次树的深度不会超过子树深度的$\frac{1}{2}$,计算完就消除影响,找下一个重心。 所以伪代码: void solve(int u) { calc(u); used[u]=true; for(int i=he 阅读全文
posted @ 2020-02-23 17:37 zzctommy 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 汉诺塔(BZOJ) P4285 [SHOI2008]汉诺塔 居然是省选题,还是DP!(我的DP菜得要死,碰见就丢分) 冥思苦想了1h+ \(\to\) ?! 就是普通的hanoi NOI or HNOI? DP加上一个乱搞的数组,然后我还写反了一次,就gg了。 大概思路: $dp_{i,j}$表示从 阅读全文
posted @ 2020-02-23 17:19 zzctommy 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 三角形tri 找规律神题…… 发现如果以4结尾,把4改成1、2、3输出就行了。 如果不以4结尾: 把结尾改成4输出即可,因为一定与三角形的中心相邻。 规律1:如果把串的末尾删去,那么会回到上一层。 如果这个串里只有1种数字,那么它一定在某个角上,只和自己这层的4相邻。 如果这个串里有2种数字,那么他 阅读全文
posted @ 2020-02-23 16:59 zzctommy 阅读(162) 评论(0) 推荐(0) 编辑
摘要: SOLDIERS 有一个性质:在一个长为n的序列a中找一个数 \(a_k\) 使得 \(\sum\limits_{i=1}^n abs(a_i-a_k)\) 最小,则 \(a_k\) 是a的中位数。 于是在这题里,对于纵坐标直接找中位数,算一遍上面的式子即可。 横坐标稍加处理:先从小到大排序,此时数 阅读全文
posted @ 2020-02-23 16:37 zzctommy 阅读(104) 评论(0) 推荐(0) 编辑
摘要: CF97B Superset 这题主要是构造难想。看看数据范围发现连$O(n^2)$都被卡了,然后 考试的名称提醒我 想到了分治。 坐标按横坐标为关键字排序后找中间的点进行分治不是点分治qwq。 考虑让中间点作一条平行于y轴的直线,让每个点i(mid除外)向这条直线引垂线交于一个点 \(S_i\), 阅读全文
posted @ 2020-02-23 16:28 zzctommy 阅读(232) 评论(0) 推荐(1) 编辑
摘要: P1429 平面最近点对(加强版) 主要思路: 分治,将点按横坐标为第1关键字升序排列,纵坐标为第2关键字升序排列,进入左半边和右半边进行分治。 设d为左右半边的最小点对值。然后以mid这个点为中心,扩展宽为2d,长为2d的正方形。除了这个正方形外的点都不可能使答案更小。而且这个正方形里至多8个点( 阅读全文
posted @ 2020-02-23 15:36 zzctommy 阅读(209) 评论(0) 推荐(1) 编辑
该文被密码保护。 阅读全文
posted @ 2020-02-21 21:26 zzctommy 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 鬼知道我为什么二分的时候传了个常量进去当左右端点还能过样例啊,不是样例就应该直接TLE吗?,调了好久 题意是这样的:给定一个长为n的序列a,再给定m个区间 [\(l_i,r_i\)] 。对于每个区间输出该区间内最长的子序列并且这个子序列没有重复的元素。 对于全部数据,$1\le n,m≤2\cdot 阅读全文
posted @ 2020-02-21 17:04 zzctommy 阅读(157) 评论(0) 推荐(0) 编辑
摘要: P1613 跑路 预处理出所有一次能到的节点,然后floyd #include <bits/stdc++.h> using namespace std; #define ll long long #define rint register int ll n,m,mmap[55][55]; bool 阅读全文
posted @ 2020-02-21 15:56 zzctommy 阅读(96) 评论(0) 推荐(0) 编辑
摘要: P1314 聪明的质监员 这题还是挺有名的,然而是个假题……原因 但是它的思维方式还是挺重要的。 思路: 我们发现一个W可以唯一确定一个y,但是W不知道。像这种情况很容易想到二分。二分可以在 \(O(\log n)\) 的时间内多个条件,有时候可以先假装二分过了去想题,发现不用二分再把二分去掉。 但 阅读全文
posted @ 2020-02-19 18:08 zzctommy 阅读(128) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 下一页