把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end
摘要: 题面传送门 这道题可以用$EK$算法来解。啥?你问我$EK$是啥? 我们可以尝试着用爆搜来打网络流,可是无疑会$T$ 爆搜的慢体现在哪里呢?爆搜走了很多重复的路。 这时$EK$算法的精髓就可以出来了。 $EK$算法对于每一条边$s$建一条反向边$s1$,并满足$s+s1=w$。这条反向边有着断边和连 阅读全文
posted @ 2020-04-06 14:41 275307894a 阅读(48) 评论(0) 推荐(0)
摘要: 题面传送门 考虑用树形$dp$来解。 则设$f_i$为让$i$节点的子树的叶子节点被封锁的最小值,那么$f_i=min(w,\sum\limits_{(i,j)∈E})$ 跑一遍$dfs$就可以求出答案 时间复杂度$O(n)$ 代码实现: #include<cstdio> #include<cstr 阅读全文
posted @ 2020-04-06 14:34 275307894a 阅读(43) 评论(0) 推荐(0)
摘要: 题面传送门 不知道你看没看出来这里有两个链接啊。 题目叫我们求子串,就很容易想到前缀和,异或又是拥有前缀和性质的,所以就可以用莫队来求啦。 记录$f_i$为$i$这个数出现的次数,那么莫队的前移后移就可以通过$k⨁a_l$来转移。 顺序很重要!! 代码实现: #include<cstdio> #in 阅读全文
posted @ 2020-04-04 13:27 275307894a 阅读(46) 评论(0) 推荐(0)
摘要: 题面传送门 看上去很玄学的亚子。 我们很容易发现,要想$rp$最大,要让每次取出的都是一个严格上升的序列,则原问题转换成最少取几次。 那么对于有$v_i$的一个数,一定要取$v_i$次才能取完。则答案为区间内最多的数。则变成了求区间众数。 那么可以用莫队求区间众数,开一个$f_i$数组记录$i$这个 阅读全文
posted @ 2020-04-03 17:14 275307894a 阅读(44) 评论(0) 推荐(0)
摘要: 题面传送门 对于这道题,正着枚举是很难枚举的,但我们可以反着来。 俗话说得好,正难则反。 考虑最小的一个数$h_i$,则所有数都是大于等于它的,所以它的排位应该是在$v_i$。 考虑第二小的数$h_j$,则除了$h_i$没有其他数小于它,所以我们可以直接找到除了$v_i$外的第$i$位,它的答案就是 阅读全文
posted @ 2020-04-03 12:43 275307894a 阅读(42) 评论(0) 推荐(0)
摘要: 题面传送门 考虑把两个操作合并,会发现把每$4$个分为一组,会剩下第$3$个。 则我们可以很容易地推出递推式:\(f_{x}=4\times f_{\frac{x+1}{4}}-1\) 则我们就可以很容易地找到最后剩下的位置了。 那么根据位置求数字就很简单了。 代码实现: #include<cstd 阅读全文
posted @ 2020-04-03 09:31 275307894a 阅读(56) 评论(0) 推荐(0)
摘要: 题面传送门 题号好评。 这道题状态不难想,就是设$f_{i,j}$为第$i$个站点换了第$j$次车的方案数。一般的转移方程为$f_{i,j}=f_{i-1,j-1}+f_{i+1,j-1}$空间爆了。 我们注意到,$A$和$E$是两个对称的点,所以我们可以把它对称成两部分,空间减小一半,如果你卡空间 阅读全文
posted @ 2020-04-02 17:34 275307894a 阅读(55) 评论(0) 推荐(0)
摘要: 题面传送门 这道题......真的无语了。 一眼看上去这道题似乎可以状压$dp$,只有$L$和$R$两种,然后我手算把样例转成了二进制,准备推转移方程,结果惊奇的发现$RBR=(101)2=2$,这不就是样例的答案吗?接着推了第二个样例的答案,居然也对了。 言归正传,那么我们设$f_i$为把$i$以 阅读全文
posted @ 2020-04-01 21:11 275307894a 阅读(55) 评论(0) 推荐(0)
摘要: 题面传送门 题目的询问是互相独立的,这一点给了我们思考的空间。 我们可以用单调队列优化多重背包做正反两趟背包,然后对于询问用$dp1_{d_-1,k}+dp1_{d_-1,e_i-k}$来拼,其中$0\leq k\leq e_i$,取最大值。 代码实现: #include<cstdio> #defi 阅读全文
posted @ 2020-04-01 12:18 275307894a 阅读(52) 评论(0) 推荐(0)
摘要: 题面传送门 题面传送门(加强版) 其实这两道题是双倍经验啦哈哈。 这道题要求所有$x$,$y$满足$x\neq y&&a_x=a_y&&min(b_k)<=p&&x\leq k\leq y$ 我们设$a_i$为第$i$种元素的当前最后一个的值,$b_i$表示第$i$中颜色到当前位置已经可以有$min 阅读全文
posted @ 2020-03-31 18:12 275307894a 阅读(54) 评论(0) 推荐(0)
摘要: 题面传送门 直接暴力$BFS$,判断当前点和下一个单位时间有没有石头,并且当时间$>22$时就跳出。 为什么是$22$呢? 考虑极端情况,一块石头在$1,x$的位置,如果这块石头掉到底部要$8$单位时间,然后如果现在再开始走,走到终点要$14$个单位时间。 代码实现: #include<cstdio 阅读全文
posted @ 2020-03-31 17:49 275307894a 阅读(40) 评论(0) 推荐(0)
摘要: 题面传送门 显然这是一道$SPFA$水题,难点在建边。 题目中给三个点求另一个点,那么只要找到对角线,然后把另一个点对称过去就好了。 代码实现: #include<cstdio> #include<queue> #include<cmath> #include<cstring> #define mi 阅读全文
posted @ 2020-03-30 13:31 275307894a 阅读(40) 评论(0) 推荐(0)
摘要: 题面传送门 这次$JX$重考的题目也太水了点吧,完全比不上原来的$T3$。 题目要求拆除的边数最多,那么要留下的边数最少。 那么这样的话$1$到$s1$和$s2$的路程中最好有一部分是重叠的。 而$1$到$s1$和$s2$的路程均为一条链,这两条链可能有一部分是重叠的。无论重叠也好,不重叠也好,总会 阅读全文
posted @ 2020-03-29 20:49 275307894a 阅读(110) 评论(0) 推荐(0)
摘要: 考虑一下变形,得到每一次变化等于$ans=\left\lfloor\dfrac+1\right\rfloor\times i$ 变形,得$ans=\left\lfloor\dfrac\right\rfloor\times i+i$ 因为 \(ans\%(i-1)=0\) 所以$ans=\left\l 阅读全文
posted @ 2020-03-29 18:39 275307894a 阅读(47) 评论(0) 推荐(0)
摘要: 题面传送门 运用集合思想,用总集减去补集得到所求集合。 总共的点个数减去平行于坐标系的三点共线减去斜边三点共线。 斜边三点共线:枚举一个点,算出他与原点中间点的个数,再把这条线分别向上向右平移, 分别减去。 代码实现: #include<cstdio> using namespace std; in 阅读全文
posted @ 2020-03-29 18:32 275307894a 阅读(52) 评论(0) 推荐(0)
摘要: 题面传送门 排列组合题。 总共有 \(4n\) 个点,\(5n\) 条边,所以要删 \(n+1\) 条边。每个五边形要删一条,中间的还要删一条, 所以是 \(4\times n\times 5^{n-1}\)。 可以用快速幂实现。 代码实现: #include<cstdio> using names 阅读全文
posted @ 2020-03-29 18:27 275307894a 阅读(32) 评论(0) 推荐(0)
摘要: 题面传送门 又是数学题。 设 \(a_i\) 为本来钱数,\(b_i\) 为给后一个人多少钱,\(m\) 为平均分的钱数。 则: \(a_1-b_1+b_2=m\) \(a_1-b_1+b_2=m\) \(b_2=b_1-(a_1-m)\) \(a_2-b_2+b_3=m\) \(b_3=2m-a_ 阅读全文
posted @ 2020-03-29 18:24 275307894a 阅读(48) 评论(0) 推荐(0)
摘要: 题面传送门 对于这道题,用递推的思想。 设$f_i$表示$i$这个数的$lqp$拆分的值,那么考虑一下,除了自身的拆分,其他拆分一定是$x\times(i-x)$,其中$x$是一个多数组成的集合,而$(i-x)$是一个单个的数,然后问题就变成了怎么求$x$这个集合的$lqp$拆分的答案。因为这是递推 阅读全文
posted @ 2020-03-28 16:08 275307894a 阅读(63) 评论(0) 推荐(0)
摘要: 题面传送门 既然是算期望,所以可以用$\frac$来求得。 把这道题抽象成一个模型,$i$个节点是在$i-1$个节点的树上再挂一个节点,那么就会有两种情况:加一个点与不加点,这就是卡特兰数模型,所以可以用通项公式。 \(h_n=\frac{2n!}{n!(n+1)!}\) 所以带进去可得 \(ans 阅读全文
posted @ 2020-03-28 15:58 275307894a 阅读(54) 评论(0) 推荐(0)
摘要: 题面传送门 首先一段告诉我们这$n$条线任意三线不共点,任意两线不平行。 所以这个图像可以反过来。 那么第一层一定是$2$段,一个焦点。 第二层那一个焦点可以延伸出$2$个焦点,所以有四段。 以此类推。 而又因为它可以反过来,所以应该考虑两种情况。 代码实现: #include<cstdio> #d 阅读全文
posted @ 2020-03-28 15:54 275307894a 阅读(32) 评论(0) 推荐(0)
摘要: 题面传送门 这题因为他只能对头尾两个进行操作,所以根据分治思想,只要考虑头尾两个就好了 代码实现: #include<cstdio> #define abs(x) ((x)>0?(x):-(x)) using namespace std; int t,n,a[100039],flag,tot,ans 阅读全文
posted @ 2020-03-28 15:52 275307894a 阅读(63) 评论(0) 推荐(0)
摘要: 题面传送门 也很简单,统计二进制下有几位就好了(即$log^2n$) 代码实现: #include<cstdio> using namespace std; int m; int ans; int main(){ scanf("%d",&m); while(m){ m>>=1; ans++; } p 阅读全文
posted @ 2020-03-28 15:50 275307894a 阅读(52) 评论(0) 推荐(0)
摘要: 题面传送门 简单博弈论,直接判奇偶就行了 代码实现: #include<cstdio> using namespace std; int n; int main(){ scanf("%d",&n); while(n){ if(n&1) printf("Bob\n"); else printf("Al 阅读全文
posted @ 2020-03-28 15:49 275307894a 阅读(27) 评论(0) 推荐(0)
摘要: 题面传送门 对于这道题,明显可以$dp$,将一张表预处理出来。 我们可以设$f_{i,j,x,y,k}$表示左下角为$i,j$右上角为$x,y$,切大小为$k$的,转移时横竖各枚举切分点与$k$的分配转移,时间复杂度$O(305\times 502)=O(1)$ 不过我们发现,实际上这道题任意大小一 阅读全文
posted @ 2020-03-28 13:57 275307894a 阅读(30) 评论(0) 推荐(0)
摘要: 题面传送门 这道题一眼就是二分,重点是$check$函数怎么写。 $62$分思路:把所有点按权值排序,每次枚举大于$mid$的点,枚举对角线并进行判断,一有满足条件的就退出,期望复杂度$O(n2m2log2(max{a_i}))$,咋一看复杂度比暴力还高,但在随机数据下摊还分析一下只有$O(nm\s 阅读全文
posted @ 2020-03-28 13:29 275307894a 阅读(59) 评论(0) 推荐(0)
浏览器标题切换
浏览器标题切换end