SOJ 一句话题解整理

#50 离线+按位考虑

#99 %6拆成%2和%3合并+将图定向为DAG的方案数为 (-1)^n P(-1)


#123 储存分数最后求逆元

#124 $\binom{2n}{n}$大概在25的时候就已经足够求解大小 直接爆搜

#125 对0进行分段然后分治NTT

#189 枚举分数(考虑要比最大的区间大)直接判断

#190 考虑每一个数作为min/max的贡献 lucas

#191 $f[i][j]$表示交换完前i个以j结尾的最小值 转移直接枚举这一位是否交换

#205 考虑直接对2,3,5,7分解然后直接记录指数的状态,至多还剩一个大质数随便搞搞就好了

#208 贪心

#209 插板

#210 树状数组维护序列+分块维护询问

#292 发现这个(-1)很灵性 直接求最短路数组的行列式

#331 结论是二分图的邻接矩阵是否满秩

#334 异或具有交换性 直接枚举10的幂次维护动态开点权值线段树

#335 考虑二进制枚举状态容斥

#336 相当于求完最短路以后离散化每次删掉若干行若干列 minmaxdp

#337 二分以后bfs序判断(bfs序有着距离相关的优秀信息) 发现bfs序在其之前且距离不超过an的点都不能染且这些点直接也必定两两不同色 所以直接方案数*(k-点数)

#338 枚举两棵树的分割点 再枚举中心点/中心边 把距离对的扔进去 取最大的k个 写写写就对了

#339 考虑扫描右端点维护左端点 线段树维护+1/-1 以及1出现的个数 搬到树上就是按照dfs序维护 注意还原现场

#340 枚举最大的数 容斥

#341 维护每个质数的出现情况dp

#342 dp+凸优化(林克卡特树换到点权)

#343 暴力区间dp(n^4*26过100)

#344 欧拉回路

#345 预处理逆序计算f[i]表示0时刻从i出发到终点的时间 询问的话找到第一次遇到红灯的点拼上f[j]就好了

#346 找到1的最大的几个儿子删掉

#347 只有20个转折点 找到这几个点转移 套个凸优化

#348 pollard-rho以后meetinthemiddledp

#349 找规律 以后二进制拆位划分

#350 类似差分去做 考虑那一轮没的 然后倒着找到就好了

#352 拆绝对值分别维护

#353 n^2求划分数*贡献

#355 8大会了(。

#356 直接扫描线

#357 建trie以后dp

#358 按照$\lfloor \frac N{i} \rfloor$分类以后算自然数幂和

#359 李超树+线段树

#360 二分以后维护凸包

#361 upanddowndp

#362 SAM+SG 把SG直接压成一个int计算

#381 单位根反演 多项式ln+exp(一个常见的求值方式)

#406 树哈希+状压

#407 找规律

#408 每个点作为子树极值的概率独立 换根dp

#409 数据分治 猜题意(bushi

#410 平衡树维护区间平移 区间加(我特么是怎么场上写出来的。

#416 换元积分以后分部积分可以得到(n-1,m)->(n,m)的递推

#417 给定|A|和|B|的答案很好算 发现求|A|和|B|的方案其实就是一个组合数

#418 直接维护凸包公切线x 对其做射影变换(1/x,y/x)然后求凸包就可以了√

#419 数论题 又不会了x

#423 树上切边游戏 sg(x)= (xor sg(son(x)))+1

#424 正解太难了 随机好啊/dz

#427 显然影响最大的是最小的 然后分别维护转移bitset和权值bitset

#428 AC自动机fail转移 复杂度分析是3/2 n(总之能过x

#429 找到6个雷就可以确定系数

#431 四个四个一组确定0/1期望有一个正确回答

#474 输出n-1

#475 标准莫队 给每个数赋随机权值以后要求xor=0

#477 简单dp

#479 注意特判算一下重点

#482 画一个式子发现是log的x

#483 离线以后把询问差分掉 用bitset维护质因数


#484 最大边的平方x

#485 注意读题x

#492 发现环上一定是可以绕来绕去x 然后每次并查集合并的时候统计答案就可以了

#498 依然是模拟费用流 f[i][j]表示i及其子树都被吃了且i被j吃了的答案(神仙状态)

#511 线性基以后每一位能出现贡献就是它乘上2^秩-1

#514 树剖LCA常数小能过

#515 DAG分别维护前缀后缀答案即可

#516 枚举固定点 然后求其余所有圆和它的交

#517 发现直接拿通项式 Cipolla一下然后BSGS

#518 直接分解到n^(1/3) 然后是1e6级别暴力计算贡献

#519 把二分的边界动态修改 就是先判断再二分降一个n到lgn

#520 拆格子拆成行点列点 费用流即可

#521 神仙构造 见matrix67

#522 构造 手玩一下发现8个一组

#523 把区间操作转化成时间操作 线段树+set维护

#524 O(nm)DP

#528 贪心+线段树维护 具体来说堆直接维护也搞定了

#529 回文自动机维护 神仙思路就是对于回文串的回文后缀显然是他的border 那么就可以拆成log段等差数列来维护

猜你喜欢

转载自www.cnblogs.com/hanyuweining/p/11845579.html