上一页 1 ··· 5 6 7 8 9 10 11 12 下一页
摘要: 参考:@junble19768 考 csp 的小女孩 基本上是真实故事。 “再多复习一个数据结构吧。”笨蛋机脑袋里想着 splay,在考场外孤苦伶仃地站着,周围的人熙熙攘攘,他们都有说有笑,仿佛做足了准备,只有这个考 csp 的笨蛋机因紧张而瑟瑟发抖。 笨蛋机已经坐在学军考场的座位上,这时候的他脑子 阅读全文
posted @ 2020-11-25 21:08 Little09 阅读(145) 评论(1) 推荐(0) 编辑
摘要: 一道有意思的题答构造题。题目是要你卡掉一个算法,给另一个算法过。前 6 个点是最短路的三种解法,后面 2 个点是一个染色问题。 最短路部分 一些需要了解的东西: FloydWarshall 就是 \(O(V^3)\),和边无关。 ModifiedDijkstra 堆优化的 Dijkstra,正权图里 阅读全文
posted @ 2020-10-31 19:56 Little09 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 一个一个加球。 对于每个局面,把所有加和为完全平方数的球对先拆点,再连边。 拆点就是为了变成二分图。 根据二分图相关定理:最小路径覆盖数=总点数-最大匹配数。计算出每个局面的最大匹配数,然后得出最小路径覆盖。和 \(n\) 比较,然后输出就可以了。 怎么看都比网络流简单。 #include<bits 阅读全文
posted @ 2020-10-30 23:01 Little09 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 这种题是经典的二分图套路题,做法也非常经典。 对于在棋盘上的和一行、一列有关的题目,应当把每行、每列作为二分图上的点跑最大匹配,就是把每行和每列匹配起来。 这道题存在“硬石头”的情况,我们应当换个角度。考虑“行段”和“列段”。一个行段即在同一行的连续的没有硬石头的段,列段同理。显然应当满足每个行段和 阅读全文
posted @ 2020-10-30 23:00 Little09 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 对于这类和全排列有关的 dp 题,我们第一时间应该想到的套路是用 \(f[i][j]\) 表示从 $1$ 到 \(i\) 的全排列,存在 \(j\) 个逆序对的情况数。和这题类似的题是 P2401 不等数列。 然后这题的转移也比较容易,只要枚举一下第 \(i\) 个数插入的位置是哪个,用 \(i-1 阅读全文
posted @ 2020-10-29 21:50 Little09 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 莫比乌斯反演 一、线性筛 void init() { v[1]=mu[1]=phi[1]=1; int cnt=0; for (int i=2;i<=MAXN;++i) { if (!v[i]) p[++cnt]=i,mu[i]=-1,phi[i]=i-1; for (int j=1;j<=cnt& 阅读全文
posted @ 2020-10-24 23:16 Little09 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 奇怪的搜索技巧:优化搜索 零、bfs有关 双端队列bfs 解决问题:边权只有0与1的最短路 时间:\(O(n)\) 算法的整体框架与一般的广搜类似,只是在每个节点沿分支拓展时稍作改变。如果这条分支边权为0,则从队首入队,否则从队尾入队。这样我们能保证,任意时刻广搜队列中节点对应的距离值都有“两端性” 阅读全文
posted @ 2020-10-24 23:15 Little09 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 离线分治:整体二分与CDQ分治 这两个算法都是离线的分治算法。其中CDQ分治是基于时间的分治算法。整体二分是基于值域的分治算法。先讲讲整体二分吧。 我们拿[ZJOI2013]K大数查询作为例子。 一、原理:将所有的修改和查询操作离线存下来。每次二分所有修改和询问操作,分成两部分解决。 二、每个子问题 阅读全文
posted @ 2020-10-24 23:13 Little09 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 凸壳上的单调队列:斜率优化 一、性质:一种动态规划的优化。 二、前置:dp、单调队列。 三、适用:\(dp[i]=a[i]*b[j]+c[i]+d[j]\)。$a[i]$单调递增。 四、方法: 移项:\(-a[i]b[j]+dp[i]-a[i]=d[j]\),把$b[j]$看作$x$,把$d[j]$ 阅读全文
posted @ 2020-10-24 23:12 Little09 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 广度优先搜索(水的一波~) 每次交换数组里连续两个数 找到第一个合法答案时不要停,继续 找到第二个时输出就好了 上代码 #include<bits/stdc++.h> using namespace std; int n,f[7]; bool flag;//flag表示是否找到了第一个合法答案 st 阅读全文
posted @ 2020-10-24 20:32 Little09 阅读(59) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 下一页