wqs

随便写一写 emm...

╄→尐↘猪︶ㄣ 提交于 2020-10-24 16:17:46
1.正向问题难以解决可以反过来倒着解决。 2.注意数组大小问题,没有空间限制的时候最好开到数据上限,有利于骗分,万一暴力有点优秀呢(* ^ ▽ ^ *)。 3.多个变量防止搞混,例如结构体里和外面的。 4.做题前先考虑什么条件是无用的,显然可以转化或者“压缩”的条件就不用考虑那么麻烦了。 5.矩阵乘法记得初始化矩阵。 6.如果求前几大或前几小,但是不容易求出所有情况,从一种情况到另一种情况的转移是有序的,那么可以用优先队列先存下一部分,依次向后有序推。 7.遇到和gcd、lcm有关的以及质数合数可以想一想是否能分解质因数,可以考虑一个范围内的质数个数和题目有什么关系。 8.如果数字不是特别大,可以考虑将最大的质因数扔出来,先考虑较小的质因数。 9.数字很大并且有乘除可以考虑是不是能够用取对数的方法,转化一下。 10.对于构造问题,多想特殊情况,例如它让差为几的时候可以让一个为0,再构造一个刚好为那个差的情况。(和也类似)。也可以考虑从一个点推到另外一个点会发生什么变化,依次递推出答案。 11.如果有范围限制可以考虑k维偏序,或者用树状数组线段树限制一下,如果一个限制是有序的,可以在枚举时实现从而少考虑一个限制。 12.看到字符串想一想SAM或者trie什么的,对于SAM可以dfs遍历求出所有子串。 13.如果一条边的边权给定了一个范围但没有给实际值,那么可以考虑差分约束解决问题。

关于WQS二分算法以及其一个细节证明

风流意气都作罢 提交于 2020-08-19 22:55:17
应用分析   它的作用就是题目给了一个选物品的限制条件,要求刚好选$m$个,让你最大化(最小化)权值,   然后其特点就是当选的物品越多的时候权值越大(越小)。 算法分析   我们先不考虑物品限制条件,   假定我们要最大化权值。   然后其中我们二分一个$C$,表示选一次物品的附加权值,   如果我们$C$越大,我们选的物品个数越多,权值越大,   于是当选的物品个数大于$m$时,减小$C$,否则增大$C$,   最后计算答案的时候去掉$C$值的影响即可。   Updata :这回还是讲一讲算法吧-->理论算法分析   首先我们拿到一个题,然后发现有一个重要的条件:一共有n个数(下面有时候会称为"点"), 要求刚好选$m$个, 有某种限制,以某种方式计算和(为了表示方便我暂且称$h(x)$表示选第$x$个点的收益),选多少个和怎么选都会影响到答案   同时我们一般可以得到一个关于n和m的dp方程$dp[i][j] = ......$,其中的复杂度一般都是$O(nm)$及以上的,无法接受,但是 经过打表 发现:设选$j$的数所的到的dp最大值为$g(j)$,然后发现$g(j)$关于$j$的 斜率单调不增, 也就是一个上凸包   然后如果这题没有刚好选$m$个的限制的时候就可以dp降维的话,那么就可以考虑一下WQS二分   首先我们看一下$g$长什么样子(横坐标$x$表示我选多少个数

HNOI省选前计划

。_饼干妹妹 提交于 2020-08-17 12:54:28
Plan 最近搞颓有些搞得意识模糊。 省选不会太远了。 高一了,至少要做一些准备。 算法基本都学习了,但是需要复习巩固的不少,熟练度远远不够。 现在模拟考试的难度和HNOI也不是一个档次。 先复习关键的算法。 首先是网络流,二分图的各种知识: 最小割最大流模型的运用。 上下界有源汇网络流。 分层图的网络流建模。 二分图的Hall定理。 二分图中最大独立集和最小覆盖集的关系。 (可持久化)线段树优化建图 拆点 平面图转对偶图 最大权闭合子图的网络流建模。 数据结构方面 分块,莫队的熟练运用。 (动态)树分治的应用。 LCT维护MST,维护最迟删除时间生成树,维护点双与边双。 平衡树,平衡树的合并。 (可持久化)01trie的应用。 cdq分治和整体二分的熟练运用。 线段树分治的熟练运用。 线段树合并的熟练运用。 可持久化线段树的熟练运用。 笛卡尔树的基本运用。 dsu on tree 启发式合并 二维数点问题各种解决办法 cdq分治套树,树套cdq,主席树和cdq的结合。 以及KD-Tree的熟练运用。 了解 \(bitset\) 求高维偏序 图论方面 差分约束的熟练应用。 最小生成树算法的熟练应用。 kruskal重构树的熟练应用。 朱刘算法的基本应用。 2-SAT的基本了解 支配树的基本了解 DP及优化方面 斜率优化的复习 cdq分治维护凸包的熟练应用 平衡树维护凸包

【比赛游记】FJOI2020打六题挂四题记

南笙酒味 提交于 2020-08-16 03:42:05
上接 FJOI2019瞎打记 和 NOI2019打铁记 。 day 0 早上睡到很迟,下午看考场,很劲爆,不用 FrC 提交了。打了一个 NTT(FJOI 怎么可能考)和一个 SA 然后走了。 晚上打模板,复习资料什么的。 我写下这句话的时间是 00:48。 ++FJOI2020.rp 当 NOI2019 落幕时,在广州二中的颁奖典礼门外,我拭净眼角的泪水后 哐当一声,有一个声音告诉我:「 你再也不能笑着说『还有下一次』了 」。 day 1 早上进校门的时候,测的体温是 37°,很可怕。 进考场,看题,T1 费用流原题,在哪本书里好像有印象。写完后大概是过了四十分钟这样。 T2 看了一会儿发现要个圆方树,很吓人。赶快回忆了一波 Tarjan 怎么写,然后建出来圆方树。 然后就不会了,他要求的是点,但是如果考虑边呢?好像可以启发式合并,那就很好,可以 \(\mathcal O (n \log n)\) ,但是怎么把边转化成点呢。 推了一下发现很弱智,就是周围边加上自己再除以 \(2\) 。大概九点四十写完了,调了调好像把样例过了,手造几组好像没错。 然后后面就在大力搞 T3,看到题立刻手玩 \(n = 4\) 时到底是哪两个比较憨批没法得到,发现是 \([3, 1, 4, 2]\) 和 \([3, 2, 4, 1]\) 。 然后 \(n = 5\) 的玩不动了,赶快写个枚举全排列