随笔分类 -  Source - 省选

摘要:首先有奇环肯定不行 手算一下发现下列两种不行: 不行的: 1. 奇环 2. 形成3个及以上的环$(m n+1)$ 3. $m=n+1$即两个偶环相交是相交的两个点之间的三条链不满足$2+2+偶数$ "详解" 用$dfs$+拓扑排序判一下即可 这个图有点特殊,咋一看出来是3个环,还以为是YES,但按上 阅读全文
posted @ 2020-03-26 16:47 starusc 阅读(289) 评论(0) 推荐(0)
摘要:线段树好题 $n,m,1e5$ 二进制没有位除3的余数是以12121212……循环的 我们用总数减去不合法情况: 1. 只有1个1,0的个数 =2(保证不重复) 2. 奇数个1,0的个数=2个0的方案数,$fr$同理 在记录0/1的个数,左起/右起0的个数,答案 讨论更新即可 时间复杂度$O(nlo 阅读全文
posted @ 2020-03-26 16:33 starusc 阅读(248) 评论(0) 推荐(0)
摘要:堆,贪心 k比较小,我们可以用一个 堆 维护,不断更新更大值 发现最大的伪光滑数的所有质因数相同(把一个合法的伪光滑数小的质因数全部换成最大的也满足式子,质因数个数,最大质因数,N均无变化) 堆维护,每次取出最大值,若最大质因数幂次大于1,就把其中一个最大质因数换成较小,再扔进堆里,这样枚举没有遗漏 阅读全文
posted @ 2020-03-26 10:51 starusc 阅读(71) 评论(0) 推荐(0)
摘要:题目有些绕口,求查询字符串在字符串a至字符串b间匹配项更改了几次 添加时,掩码长度是多少就只添加那么多位 用trie树进行匹配,每次匹配到新项时加入维护递增的单调栈 (若又短又靠后,根本没机会与查询串匹配) 最后的答案即为单调栈的大小 阅读全文
posted @ 2020-03-26 10:15 starusc 阅读(77) 评论(0) 推荐(0)
摘要:"学习博客" 此题主要是将N分解成p q,使用Pollard Rho算法 我的理解并不是很深入,还有加油 把测试样本在模N的意义下乘起来,再对N做gcd,为了避免在环上停留太久,每127次就做一次gcd 阅读全文
posted @ 2020-03-26 09:29 starusc 阅读(111) 评论(0) 推荐(0)
摘要:数位DP 不必算出所有状态,多用 记忆化搜索 实现 具体看代码 阅读全文
posted @ 2020-03-25 21:39 starusc 阅读(141) 评论(0) 推荐(0)
摘要:KDT 为多维的点构造相对平衡的二叉树结构(空间划分) 原理:每次按照某维排序(可以按顺序依次,也可随机,貌似按方差大的维更优),取中间点作为当前点,递归左右区间 时间复杂度$O(n^{1 \frac1w}),w$为维度 题意:求平面上第K远点对的距离 $N100000K100$ 阅读全文
posted @ 2020-03-25 19:43 starusc 阅读(173) 评论(0) 推荐(0)
摘要:最小割树 快速求无向图两点间的最小割 分治建立: 1. 区间内任选两点$x,y$,跑最小割,连边$(x,y,cut_{x,y})$ 2. 根据此最小割,把点割成两部分,递归处理 3. 新建出的树,两点路径上的最小值即为他们在原图上的最小割 时间复杂度$O(n^3m)$,但网络流很难卡满 "正确性证明 阅读全文
posted @ 2020-03-25 18:02 starusc 阅读(136) 评论(0) 推荐(0)
摘要:数据范围: 1. $max(c_i) using namespace std; inline int read(){ int x=0,f=1;char c=getchar(); while(!isdigit(c)){if(c==' ')f= 1;c=getchar();} while(isdigit 阅读全文
posted @ 2020-03-25 16:05 starusc 阅读(146) 评论(0) 推荐(0)
摘要:乱搞构造 想到判断是否可行,可以找一个分割点,判断能否在此分割,递归左右两边 但是!!只有一个分割点可行(抽象理解一下,后面的向前面的点循环连边,若移动分割点会打坏循环) 如何找到这个点呢? 方法很多,仔细想想都可以想到,这里提供一种思路 遍历第一个点(即0号点)的连边情况,找到一个分割点使得其余边 阅读全文
posted @ 2020-03-25 15:55 starusc 阅读(193) 评论(0) 推荐(0)
摘要:计算几何,直接模拟即可 找最近的交点然后模拟旋转 会求直线交点&向量旋转即可 注: 1. $acos$值域$[0,pi]$ 2. $asin,atan$值域$[ pi/2,pi/2]$ 3. $atan2$值域$[ pi,pi]$(平面直角坐标系上找点) 阅读全文
posted @ 2020-03-25 15:46 starusc 阅读(234) 评论(0) 推荐(0)
摘要:定义函数,方便表示 $$ans=f(n,k)=\sum_{i=0}^kC_n^i\%p$$ 根据$lucas$定理:$C_n^m\%p=C_{n/p}^{m/p} C^{m\%p}_{n\%p}\%p$ (组合数大模数小用$lucas$) $$\sum^{k/p 1}_{i=0}C_{n/p}^i\ 阅读全文
posted @ 2020-03-24 21:10 starusc 阅读(116) 评论(0) 推荐(0)
摘要:WQS二分 适用条件: 1. 选固定个数的物品,最大化(最小化)权值 2. 关于个数的函数$f(x)$是凸函数 先不考虑限制个数,每次多选一块就要带上一个贡献$k$ $y=kx+b,b=y kx,b$要尽量大,就可以找到使这个值最小的位置,我们二分调整$k$即可让个数恰好为某个数是,减去我们强行加的 阅读全文
posted @ 2020-03-24 17:51 starusc 阅读(114) 评论(0) 推荐(0)
摘要:$$ans=C^m_nD_{n m}$$ D为错排 $$D_1=0,D_2=1,D_n=(n 1) (D_{n 1}+D_{n 2})$$ $$D_n=nD_{n 1}+( 1)^{n 2}$$ $$D_n=n!(1 \frac 1{1!}+\frac 1{2!} \frac 1{3!}+…+( 1 阅读全文
posted @ 2020-03-24 17:25 starusc 阅读(134) 评论(0) 推荐(0)
摘要:每次修改可以看成是一个一次函数,分成两个点到$lca$分别修改 于是树链剖分+李超线段树+标记永久化求最小值 时间复杂度$O(nlog_n^3)$,但出题人良心可以过 阅读全文
posted @ 2020-03-24 16:26 starusc 阅读(149) 评论(0) 推荐(0)
摘要:后缀自动机clo节点是q的复制,不是新建节点 建立后缀自动机,题意为每次加入字符后求不同子串个数 新加入节点的贡献为$maxlen(cur) minlen(cur)+1=s[cur].len s[s[cur].link].len$ (从起点出发到当前点的路径数,若长度相同那么子串就相等的,所以是起点 阅读全文
posted @ 2020-03-24 16:20 starusc 阅读(58) 评论(0) 推荐(0)
摘要:李超线段树用来在平面内动态插入线段,求$x=t$直线与这些线段交点的最值 核心是维护每个区间的“最优势线段”,即终点位置处最高的线段,询问室对所有包含$t$的区间的最优势线段计算答案,最后取$max$ 模板题:JSOI2008BlueMary开公司 插入直线,求单点最大值 (看代码) 阅读全文
posted @ 2020-03-24 12:07 starusc 阅读(92) 评论(0) 推荐(0)
摘要:网络流算法基于贪心 很容易想到最大费用最大流,但我们无法保证费用是非负的 因为每次的最长路都是在逐渐变小的,所以可以贪心 $dfs$是先不加费用,完了后根据流量看费用是否非负,如果变负数就贪心选尽可能多的的对数,不然继续 可以看$mcmf$函数,一下就明白了 小技巧:$cn_i$是$a_i$质因数分 阅读全文
posted @ 2020-03-24 11:21 starusc 阅读(155) 评论(0) 推荐(0)
摘要:数位DP,枚举转移 $f[i][1/0][1/0][1/0]$表示前$i$位,$x$前$i$位卡满/比$n$的前$i$位小,$y$前$i$位卡满/比$m$的前$i$为小,异或后前$i$位卡满/比$k$的前$i$为大的总分数,$g[i][1/0][1/0][1/0]$同理表示方案数(也有可能是第,我也 阅读全文
posted @ 2020-03-24 10:32 starusc 阅读(137) 评论(0) 推荐(0)
摘要:刚开始一头雾水 不过考虑分解一下 1. 选k个同学不被碾压$ans =C^k_{n 1}$ 2. 不被碾压的同学中至少有一门课成绩大于B神 考虑容斥,$i$个同学完全碾压,剩余不知 $ans =\sum_{i=0}^{k}( 1)^iC^i_k\prod_{j=1}^mC^{k i}_{r_j 1} 阅读全文
posted @ 2020-03-21 16:16 starusc 阅读(180) 评论(0) 推荐(0)