<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[abc0372的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/abc0372</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; abc0372]]></copyright><item><title><![CDATA[【学习笔记】manacher算法]]></title><link>https://blog.youkuaiyun.com/abc0372/article/details/102072338</link><guid>https://blog.youkuaiyun.com/abc0372/article/details/102072338</guid><author>abc0372</author><pubDate>Wed, 25 Sep 2019 18:00:00 +0800</pubDate><description><![CDATA[\(manacher\)算法解决的问题是求一个字符串中的最长回文字串，也就是极长回文子串的长度，长度大约在\(10^7\)
引入
回文串有两种情况：长度为奇数和长度为偶数
若长度为奇数则对称轴落在中间字符上，若长度为偶数则对称轴落在中间两个字符之间
如果这两种情况都考虑就会复杂很多，我们可以在每两个字符之间（包括开头结尾）加入一个分隔符
比如\(abcdefg\)变成\(|a|b|c|...]]></description><category></category></item><item><title><![CDATA[[ZROI]分组]]></title><link>https://blog.youkuaiyun.com/abc0372/article/details/102072337</link><guid>https://blog.youkuaiyun.com/abc0372/article/details/102072337</guid><author>abc0372</author><pubDate>Sat, 07 Sep 2019 21:31:00 +0800</pubDate><description><![CDATA[\(Description\)
有\(n\)个员工，需要从中选择\(k\)组员工，每组\(2\)人，\(1\)人组长了，\(1\)人组员。
每个员工有三个数值:\(w,s,q\)，\(w\)表示经验值，\(s\)表示薪水,\(q\)是意愿\(q=1,2,3\)
\(q=1\)表示该员工想当组长，\(q=2\)表示该员工想当组员,\(q=3\)表示该员工随意
要求每个组内组长的经验值\(...]]></description><category></category></item><item><title><![CDATA[BSGS与扩展BSGS]]></title><link>https://blog.youkuaiyun.com/abc0372/article/details/102072336</link><guid>https://blog.youkuaiyun.com/abc0372/article/details/102072336</guid><author>abc0372</author><pubDate>Sun, 18 Aug 2019 19:26:00 +0800</pubDate><description><![CDATA[\(BSGS\)
\(BSGS(Baby　Step　Giant　Step)\)，中文名大步小步算法，也有拔山盖世、北上广深、阿姆斯特朗算法等别称
解决问题为求\(A^x\equiv B(mod　C)\)的最小整数解，其中\(A　C\)互质。

首先因为\(\phi(C)\)一个循环节且\(\phi(C)&lt;C\)，所以答案不会超过\(C\)
使得\(x=i\times m-j\)，...]]></description><category></category></item><item><title><![CDATA[Crt and ExCrt]]></title><link>https://blog.youkuaiyun.com/abc0372/article/details/102072335</link><guid>https://blog.youkuaiyun.com/abc0372/article/details/102072335</guid><author>abc0372</author><pubDate>Sun, 18 Aug 2019 18:34:00 +0800</pubDate><description><![CDATA[\(Crt\)
求解不定方程组

设\(M=\prod\limits_i^nm_i\)
\(M_i=\frac{M}{m_i}=\prod\limits_{k,k\neq i}^nm_k\)
\(t_i\)为\(M_i\)在模\(m_i\)时的逆元
先上结论 通解为\(\sum\limits_i^na_iM_it_i　mod　LCM(m_i)\)
证明:
对于方程组中第\(i\)个方程...]]></description><category></category></item><item><title><![CDATA[BZOJ 3884 上帝与集合的正确使用方法]]></title><link>https://blog.youkuaiyun.com/abc0372/article/details/102072334</link><guid>https://blog.youkuaiyun.com/abc0372/article/details/102072334</guid><author>abc0372</author><pubDate>Sun, 18 Aug 2019 10:20:00 +0800</pubDate><description><![CDATA[扩展欧拉定理

当\(gcd(a,m)=1\)时就是欧拉定理
后面两种情况对\(gcd\)无要求，注意\(c\)与\(\phi(m)\)的关系
\(Description\)
求\(2^{2^{2^{2^{\cdots}}}}(mod　p)\)
简化为求\(x\equiv 2^x　(mod 　p))\)
\(Solution\)
因为\(2^{2^{2^{2^{\cdots}}}} &...]]></description><category></category></item><item><title><![CDATA[ZJOI2016 旅行者]]></title><link>https://blog.youkuaiyun.com/abc0372/article/details/102072332</link><guid>https://blog.youkuaiyun.com/abc0372/article/details/102072332</guid><author>abc0372</author><pubDate>Wed, 14 Aug 2019 17:07:00 +0800</pubDate><description><![CDATA[\(Description\)
给你一张\(n\times m\)的网格图及每条边边权，有\(q\)组询问，每次询问两点间的最短距离。
\(Solution\)
暴力做法是枚举所有询问点跑最短路，复杂度\(O(qnlogn)\)，由于\(q\)很大，过不了这个题
考虑分治，每次找到一条分界线，如果询问两点都在左边或者都在右边，递归处理即可，当点在两边，以分界线上每个点为起点跑最短路，扫...]]></description><category></category></item><item><title><![CDATA[最短路再放送]]></title><link>https://blog.youkuaiyun.com/abc0372/article/details/102072310</link><guid>https://blog.youkuaiyun.com/abc0372/article/details/102072310</guid><author>abc0372</author><pubDate>Tue, 06 Aug 2019 15:54:00 +0800</pubDate><description><![CDATA[前言
当我做另一道题使用最短路算法时，我习惯性地去\(Luogu\)博找\(Dijksttra\)的板子，这时候我觉得这种算法应该记住，于是我又重温了一遍最短路算法，发现了很多困惑，尤其是关于\(SPFA\)和\(Dijkstra\)算法的区别。因为我的\(SPFA\)和\(Dijkstra\)都使用了堆优化。
然后我困惑了很久，终于明白了，准备推样例理解一下，又心血来潮重温了一下\(...]]></description><category></category></item><item><title><![CDATA[P1122 最大子树和]]></title><link>https://blog.youkuaiyun.com/abc0372/article/details/102072308</link><guid>https://blog.youkuaiyun.com/abc0372/article/details/102072308</guid><author>abc0372</author><pubDate>Thu, 01 Aug 2019 18:55:00 +0800</pubDate><description><![CDATA[一道水题，我也不知道为什么要写博客，这应该是最后一次了
\(Description\)
给你\(n\)个节点的树，要求你在上面选取一个联通块，使得点权和最大
\(Soution\)
树形\(DP\)，我们实际上是在求一颗子树，用\(dp[i]\)表示以\(i\)为根的子树能得到的最大值即可
转移方程显然：\(DP[i]=a[i]+\Sigma_j max(DP[j],0)\)其中\(j...]]></description><category></category></item><item><title><![CDATA[P2216 理想的正方形]]></title><link>https://blog.youkuaiyun.com/abc0372/article/details/102072309</link><guid>https://blog.youkuaiyun.com/abc0372/article/details/102072309</guid><author>abc0372</author><pubDate>Thu, 01 Aug 2019 09:30:00 +0800</pubDate><description><![CDATA[题目描述
有一个\(a*b\)的整数组成的矩阵，现请你从中找出一个\(n*n\)的正方形区域，使得该区域所有数中的最大值和最小值的差最小。
输入输出格式
输入格式：
第一行为\(3\)个整数，分别表示\(a,b,n\)的值
第二行至第\(a+1\)行每行为\(b\)个非负整数，表示矩阵中相应位置上的数。每行相邻两数之间用一空格分隔。
输出格式：
仅一个整数，为\(a*b\)矩阵中所有\...]]></description><category></category></item><item><title><![CDATA[LIS&LCS总结(最长上升子序列与最长公共子序列)]]></title><link>https://blog.youkuaiyun.com/abc0372/article/details/102072306</link><guid>https://blog.youkuaiyun.com/abc0372/article/details/102072306</guid><author>abc0372</author><pubDate>Wed, 31 Jul 2019 19:37:00 +0800</pubDate><description><![CDATA[\(LIS\)
首先区分一组概念
子序列：一个序列的子集，可以是连续也可以是不连续的。
子串：一个序列的子集，必须是连续的。
最长上升子序列的意思就不多说了
\(1.\)朴素做法\(O(n^2)\)
用\(dp[i]\)表示以\(i\)为结尾的最长子序列的长度
在遍历的同时让\(j\)从\(1到i-1\)遍历，如果\(a[i]&gt;a[j]\)那么\(dp[i]=max(dp[i],...]]></description><category></category></item><item><title><![CDATA[01分数规划问题]]></title><link>https://blog.youkuaiyun.com/abc0372/article/details/102072333</link><guid>https://blog.youkuaiyun.com/abc0372/article/details/102072333</guid><author>abc0372</author><pubDate>Wed, 31 Jul 2019 19:01:00 +0800</pubDate><description><![CDATA[问题模型1：
给定\(n\)个二元组\((value_i,cost_i)\)，在其中选出\(m\)个，\(value_i\)是选择此二元组获得的价值（非负），\(cost_i\)是选择此二元组付出的代价（非负），设\(xi(xi\in{0,1})\)代表第\(i\)个二元组的选与不选，最大化下式
\(r=\frac{\Sigma value_i*Xi}{\Sigma cost_i*Xi...]]></description><category></category></item><item><title><![CDATA[【学习笔记】概率与期望]]></title><link>https://blog.youkuaiyun.com/abc0372/article/details/102072331</link><guid>https://blog.youkuaiyun.com/abc0372/article/details/102072331</guid><author>abc0372</author><pubDate>Mon, 29 Jul 2019 09:01:00 +0800</pubDate><description><![CDATA[基本概念
随机变量：有多种可能的取值的变量
\(P(A)：\)事件\(A\)发生的概率
\(E(X)：\)随机变量X的期望值，\(E(X)=\Sigma[P(X=i)*i]\)
独立事件：互相不影响的事件，满⾜\(P(AB)=P(A)P(B)\) 前提：\(A,B\);两个随机变量是独立的
对于独立事件，我们有\(E(AB)=E(A)E(B)\)
常用公式

（等比数列求和公式+极限法...]]></description><category></category></item><item><title><![CDATA[A*算法详解]]></title><link>https://blog.youkuaiyun.com/abc0372/article/details/102072330</link><guid>https://blog.youkuaiyun.com/abc0372/article/details/102072330</guid><author>abc0372</author><pubDate>Sat, 15 Jun 2019 20:37:00 +0800</pubDate><description><![CDATA[预备知识
A*算法的基本原理
\(A*\)

A-star是什么？下面是百度的解释

A-star算法是一种静态路网中求解最短路径最有效的直接搜索方法，也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近，最终搜索速度越快。

 F[i]=G[i]+H[i];
以上式子中\(G[i]\)表示从起点到当前节点已经付出的代价，这个是准确的
\(A*\)算法最重要的是估价函数\(H...]]></description><category></category></item><item><title><![CDATA[【学习笔记】Lucas定理]]></title><link>https://blog.youkuaiyun.com/abc0372/article/details/102072329</link><guid>https://blog.youkuaiyun.com/abc0372/article/details/102072329</guid><author>abc0372</author><pubDate>Thu, 13 Jun 2019 20:44:00 +0800</pubDate><description><![CDATA[\(Lucas\)定理
$ C_n^m\pmod p\equiv C_{n\mod p}^{m\mod p}*C_{\lfloor n/p\rfloor}^{\lfloor m/p\rfloor}\pmod p $
一句话概括，就是一个组合数可以拆成\(P\)进制下的乘积
这个算法可以处理当\(m,n\)非常大的时候的取模\((\)当然你可以用高精度处理\()\)
需要注意的几点
\(L...]]></description><category></category></item><item><title><![CDATA[P1631 序列合并]]></title><link>https://blog.youkuaiyun.com/abc0372/article/details/102072328</link><guid>https://blog.youkuaiyun.com/abc0372/article/details/102072328</guid><author>abc0372</author><pubDate>Sat, 08 Jun 2019 10:36:00 +0800</pubDate><description><![CDATA[\(Description\)
有两个长度都是\(N\)的序列\(A\)和\(B\)，在\(A\)和\(B\)中各取一个数相加可以得到\(N^2\)个和，求这\(N^2\)个和中最小的\(N\)个。
\(Input\)
第一行一个正整数\(N\)；
第二行\(N\)个整数\(A_i\) 满足\(A_i≤A_{i+1}\)​且\(A_i​≤10^9\);
第三行\(N\)个整数\(B_i\...]]></description><category></category></item><item><title><![CDATA[二分图相关]]></title><link>https://blog.youkuaiyun.com/abc0372/article/details/102072325</link><guid>https://blog.youkuaiyun.com/abc0372/article/details/102072325</guid><author>abc0372</author><pubDate>Fri, 24 May 2019 18:53:00 +0800</pubDate><description><![CDATA[概念
对于一个图\(G=（V,E）\)，若能将其点集分为两个互不相交的两个子集\(X、Y\)，
使得\(X∩Y=\phi\)，且对于\(G\)的边集\(V\)，若其所有边的顶点全部一侧属于\(X\)，
一侧属于\(Y\)，则称图\(G\)为一个二分图。
定理
当且仅当无向图\(G\)的回路个数为偶数时，图\(G\)为一个二分图。
无回路的图也是二分图。
判定
在二分图\(G\)中，任选一...]]></description><category></category></item><item><title><![CDATA[UVA1508 Equipment]]></title><link>https://blog.youkuaiyun.com/abc0372/article/details/102072326</link><guid>https://blog.youkuaiyun.com/abc0372/article/details/102072326</guid><author>abc0372</author><pubDate>Tue, 21 May 2019 17:54:00 +0800</pubDate><description><![CDATA[\(Translate\)
给出\(n\)个\(5\)元组，从中选出\(k\)组，使得在\(k\)组中\(5\)个位置，每个位置上最大数(在选择的\(k\)组中的最大值)之和最大，求这个和。
\(Input\)
(输入有多组数据) 第一行\(T\)为数据组数，每组数据的第一行为\(n,k\),接下来\(n(n&lt;=10^5)\)行每行\(5\)列，表示\(n\)个五元组。
\(Out...]]></description><category></category></item><item><title><![CDATA[奇奇怪怪]]></title><link>https://blog.youkuaiyun.com/abc0372/article/details/102072307</link><guid>https://blog.youkuaiyun.com/abc0372/article/details/102072307</guid><author>abc0372</author><pubDate>Sun, 19 May 2019 15:18:00 +0800</pubDate><description><![CDATA[青山依旧在，几度夕阳红。


车马纵兮雁飞翔，
春复秋往世无常。
幽清默兮落暗乡，
何年何月蹉跎降。
莫问莫观你莫惆怅，
山石林木无易样。

莫听穿林打叶声，何妨吟啸且徐行。



转载于:https://www.cnblogs.com/Liuz8848/p/10889364.html...]]></description><category></category></item><item><title><![CDATA[P5259 游戏中的学问]]></title><link>https://blog.youkuaiyun.com/abc0372/article/details/102072324</link><guid>https://blog.youkuaiyun.com/abc0372/article/details/102072324</guid><author>abc0372</author><pubDate>Sat, 18 May 2019 11:33:00 +0800</pubDate><description><![CDATA[神犇学长\(zay\)出的题，代码很简短的一道动态规划，拿出来做一做
\(Describe\)
大家应该都见过很多人手拉手围着篝火跳舞的场景吧？一般情况下，大家手拉手跳舞总是会围成一个大圈，每个人的左手拉着旁边朋友的右手，右手拉着另 一侧朋友的左手。
不过，如果每一个人都随机的拉住两个不同人的手，然后再慢慢散开，事情 就变得有趣多了——此时大家依旧会形成圈，不过却可能会形成多个独立的圈。...]]></description><category></category></item><item><title><![CDATA[CF767C Garland]]></title><link>https://blog.youkuaiyun.com/abc0372/article/details/102072323</link><guid>https://blog.youkuaiyun.com/abc0372/article/details/102072323</guid><author>abc0372</author><pubDate>Fri, 17 May 2019 15:12:00 +0800</pubDate><description><![CDATA[一道树形DP
\(Translate\)
有一颗\(n\)个节点的树
第\(i\)个节点权值为\(a_i\) \((n&lt;=10^6，-100&lt;=a_i&lt;=100)\)
问是否能够删除掉两条边,使得该树分成三个不为空的部分,并且每部分权值之和相等。
无解输出\(−1\) 否则输出要删除边\((u−&gt;v)\)的v节点序号。
\(Solution\)
很明显我们可以在\...]]></description><category></category></item></channel></rss>