<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ACM_Fish的博客]]></title><description><![CDATA[一条咸鱼]]></description><link>https://blog.youkuaiyun.com/ACM_Fish</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ACM_Fish]]></copyright><item><title><![CDATA[LightOJ1197 - Help Hanzo（区间素数筛 + 模板）]]></title><link>https://blog.youkuaiyun.com/ACM_Fish/article/details/75669870</link><guid>https://blog.youkuaiyun.com/ACM_Fish/article/details/75669870</guid><author>ACM_Fish</author><pubDate>Fri, 21 Jul 2017 18:01:56 +0800</pubDate><description><![CDATA[题目链接：https://vjudge.net/problem/LightOJ-1197题目大意：给出a,ba,b求[a,b][a,b]内素数个数，保证b−a<100000b - a < 100000，1≤a≤b<2311\le a\le b<2^{31}。解题过程：这题有点可惜，没仔细想就去翻书了，挑战第二版 P121，当初这里看过了，以为只有一个埃氏筛法然后跳过了，有点可惜…题目分析：首先对于任]]></description><category></category></item><item><title><![CDATA[LightOJ1214 - Large Division（高精度取模 + 模板）]]></title><link>https://blog.youkuaiyun.com/ACM_Fish/article/details/75669699</link><guid>https://blog.youkuaiyun.com/ACM_Fish/article/details/75669699</guid><author>ACM_Fish</author><pubDate>Fri, 21 Jul 2017 17:46:52 +0800</pubDate><description><![CDATA[题目链接：https://vjudge.net/problem/LightOJ-1214题目大意：两个数−10100<a<100100-10^{100}<a<100^{100}, bb 为 32bit范围内(其实并不是)，需要用64位整型才可以。问aa能否被bb整除。解题过程：先用 Java 的大数类水过了，然后感觉应该用到数论的知识，想起来之前好像也有一道高精度取模的题，当初用 Python 水过]]></description><category></category></item><item><title><![CDATA[LightOJ1236 - Pairs Forming LCM（LCM+唯一分解定理）]]></title><link>https://blog.youkuaiyun.com/ACM_Fish/article/details/75669488</link><guid>https://blog.youkuaiyun.com/ACM_Fish/article/details/75669488</guid><author>ACM_Fish</author><pubDate>Fri, 21 Jul 2017 17:29:33 +0800</pubDate><description><![CDATA[题目链接：https://vjudge.net/problem/LightOJ-1236题目大意：给定一个数nn，求满足i≤j<n∧lcm(i,j)=ni \le j < n \wedge lcm(i, j) = n的(i,j)(i, j)对总共有多少个。解题过程：想了一会…不会，看的博客，就当是个结论好了。题目分析：对于每一对(i,j)(i, j)，可由唯一分解定理写成如下形式： 
n=pe11⋅]]></description><category></category></item><item><title><![CDATA[LightOJ1282 - Leading and Trailing（快速幂+数学）]]></title><link>https://blog.youkuaiyun.com/ACM_Fish/article/details/75567308</link><guid>https://blog.youkuaiyun.com/ACM_Fish/article/details/75567308</guid><author>ACM_Fish</author><pubDate>Thu, 20 Jul 2017 17:22:18 +0800</pubDate><description><![CDATA[题目链接：https://vjudge.net/problem/LightOJ-1282题目大意：求nkn^k的前3位数和后三位数。2≤a<231,1≤k≤1072\le a<2^{31} , 1\le k \le 10^7。解题过程：只让求后三位的话我到是会，用快速幂就好了，但是求前三位感一脸懵逼。于是去翻了博客，发现居然还有这种操作！题目分析：后三位直接用快速幂取膜就好了，这里说一下前三位。这里]]></description><category></category></item><item><title><![CDATA[LightOJ1370 - Bi-shoe and Phi-shoe（欧拉函数+打表）]]></title><link>https://blog.youkuaiyun.com/ACM_Fish/article/details/75551987</link><guid>https://blog.youkuaiyun.com/ACM_Fish/article/details/75551987</guid><author>ACM_Fish</author><pubDate>Thu, 20 Jul 2017 16:51:25 +0800</pubDate><description><![CDATA[题目链接：https://vjudge.net/problem/LightOJ-1370题目大意：给出 NN 个数a1,a2…ana_1,a_2\dots a_n，求对每一个 aia_i 找出最小的 kik_i 使得 ϕ(ki)≥ai\phi(k_i) \ge a_i，输出 ∑n1ki\sum_1^n k_i 。解题过程：因为是数论的题，显然题目是要用欧拉函数，于是特意去翻了一下紫书的欧拉函数。想假]]></description><category></category></item><item><title><![CDATA[POJ1015 - Jury Compromise（DP+计算顺序）]]></title><link>https://blog.youkuaiyun.com/ACM_Fish/article/details/74091988</link><guid>https://blog.youkuaiyun.com/ACM_Fish/article/details/74091988</guid><author>ACM_Fish</author><pubDate>Sun, 02 Jul 2017 10:39:58 +0800</pubDate><description><![CDATA[题目链接：http://poj.org/problem?id=1015题目大意：现在两个长度相等的序列，DD和PP，现在要构造一个新的序列A={a1,a2,a3⋯ak}A = \lbrace a_1, a_2, a_3 \cdots a_k\rbrace使得∣∣∑ki=1D[ai]−∑ki=1P[ai]∣∣\big|\sum_{i=1}^kD[a_i]-\sum_{i=1}^kP[a_i]\big|]]></description><category></category></item><item><title><![CDATA[HDU1024 - Max Sum Plus Plus（DP+降维优化）]]></title><link>https://blog.youkuaiyun.com/ACM_Fish/article/details/74001087</link><guid>https://blog.youkuaiyun.com/ACM_Fish/article/details/74001087</guid><author>ACM_Fish</author><pubDate>Fri, 30 Jun 2017 15:18:52 +0800</pubDate><description><![CDATA[题目链接：http://acm.hdu.edu.cn/showproblem.php?pid=1024题目大意：给定一个长度为n的序列，一个数m，求m段不相交的区间和的最大值。解题过程：自己好菜啊，简单的状态转移方程都没推出来，值得以后注意的是，以后定义状态不要太”松“了。比如刚开始定义的状态dp[i][j]dp[i][j]前ii个数构成的jj个区间和的最大值，然后发现不会转移。最后看了博客才发现别]]></description><category></category></item><item><title><![CDATA[HDU2196 - Computer（树的直径+DP）]]></title><link>https://blog.youkuaiyun.com/ACM_Fish/article/details/73863811</link><guid>https://blog.youkuaiyun.com/ACM_Fish/article/details/73863811</guid><author>ACM_Fish</author><pubDate>Wed, 28 Jun 2017 20:41:19 +0800</pubDate><description><![CDATA[题目链接：http://acm.hdu.edu.cn/showproblem.php?pid=2196题目大意：给定一个无向连通无环图，求每个节点到达的最远的节点的距离。解题过程：上午看了一下DP进阶之路的PDF，突然想学树型DP。然后找到了这个题，之前做了一个POJ的BFS求树的直径的，这次再来一发DP的。题目分析：由于题目给的是无向连通无环图，这里构造出一颗树来，不妨假设节点11为根。那么对于任]]></description><category></category></item><item><title><![CDATA[UVA11235 - Frequent values（游程编码+线段树）]]></title><link>https://blog.youkuaiyun.com/ACM_Fish/article/details/73850370</link><guid>https://blog.youkuaiyun.com/ACM_Fish/article/details/73850370</guid><author>ACM_Fish</author><pubDate>Wed, 28 Jun 2017 16:56:15 +0800</pubDate><description><![CDATA[题目链接：https://vjudge.net/problem/UVA-11235题目大意：给定一个递增序列，询问一段区间内出现频率最多的数出现的次数。解题过程：之前图灵杯比赛的题，当时照着板子敲A的，现在突发奇想补一下题，感觉还是挺简单的，就是用到了游程编码。题目分析：由于题目是有序的，那么可以很方便的将一段相同的数合为一个区间，data[i]表示第i段区间元素个数，lb[i]记录第i段区间的左边]]></description><category></category></item><item><title><![CDATA[CodeForces743D - Chloe and pleasant prizes（树型DP）]]></title><link>https://blog.youkuaiyun.com/ACM_Fish/article/details/73805318</link><guid>https://blog.youkuaiyun.com/ACM_Fish/article/details/73805318</guid><author>ACM_Fish</author><pubDate>Tue, 27 Jun 2017 17:10:47 +0800</pubDate><description><![CDATA[题目链接：https://vjudge.net/problem/CodeForces-743D题目大意：给定一颗树，每个节点上有一个权值，求找出两颗不相交子树，使两颗子树的权值和最大。解题过程：好久好久好久之前CF比赛的题，当时好像是没读懂题意，虽然说现在也有点读不懂，最后看了下别人的博客才知道题意。看到下面的标签上有DFS和DP，于是往树型DP上想，不过没系统的学过，之前只写过一个求树的重心的，于]]></description><category></category></item><item><title><![CDATA[CodeForces734E - Anton and Tree（缩点+树的直径）]]></title><link>https://blog.youkuaiyun.com/ACM_Fish/article/details/73771087</link><guid>https://blog.youkuaiyun.com/ACM_Fish/article/details/73771087</guid><author>ACM_Fish</author><pubDate>Tue, 27 Jun 2017 10:17:13 +0800</pubDate><description><![CDATA[题目链接：http://codeforces.com/problemset/problem/734/E题目大意：给定一棵无根数，每个节点有黑白两种颜色，现在有一种涂色操作，一次可以将一块连通的同色区域涂为一个颜色，现在求最少操作几次可以将整棵树涂成黑色或白色。解题过程：因为之前做过一个涂板子的题，进行的操作和这个一样，也是先缩点。不过那个数据范围比较小，枚举所有点BFS一次，求最长路即可，但是做过数]]></description><category></category></item><item><title><![CDATA[HackerRank - pairs-again（暴力+预处理）]]></title><link>https://blog.youkuaiyun.com/ACM_Fish/article/details/73733513</link><guid>https://blog.youkuaiyun.com/ACM_Fish/article/details/73733513</guid><author>ACM_Fish</author><pubDate>Mon, 26 Jun 2017 11:13:17 +0800</pubDate><description><![CDATA[题目链接：https://www.hackerrank.com/contests/w26/challenges/pairs-again题目大意：给定一个数n，问有多少对a,ba,b满足xa+by=nxa+by=n至少有一个解，a<ba<b并且0<b,0<y0 < b, 0 < y，且x,yx,y是整数。解题过程：比赛时候的题，当初那场比赛运气还不错，这道题看到一堆人WA了60多发，于是没敢去做，后来]]></description><category></category></item><item><title><![CDATA[ZOJ3385 - Hanami Party （贪心）]]></title><link>https://blog.youkuaiyun.com/ACM_Fish/article/details/73729415</link><guid>https://blog.youkuaiyun.com/ACM_Fish/article/details/73729415</guid><author>ACM_Fish</author><pubDate>Sun, 25 Jun 2017 20:48:12 +0800</pubDate><description><![CDATA[题目链接：http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3385题目大意：妖梦要准备一个party，所以需要许多食物，初始化妖梦的烹饪技能为LL，每天妖梦有两种选择，一是选择当天做LL个食物，二是提升自己的烹饪技能为L+1L+1。但是幽幽子非常能吃，每天幽幽子都要吃AiA_i的食物，当没食物吃后幽幽子会非常生气，甚至想把妖梦]]></description><category></category></item><item><title><![CDATA[HDU5527 - Too Rich（贪心）]]></title><link>https://blog.youkuaiyun.com/ACM_Fish/article/details/73724723</link><guid>https://blog.youkuaiyun.com/ACM_Fish/article/details/73724723</guid><author>ACM_Fish</author><pubDate>Sun, 25 Jun 2017 18:56:01 +0800</pubDate><description><![CDATA[题目链接：http://acm.hdu.edu.cn/showproblem.php?pid=5527题目大意：现在你有PP元钱，有1010种不同面值的硬币，每种硬币有一定的数量，求用尽量多的硬币凑出P元钱，有可能凑不出。解题过程：当初比赛没看这道题，最近才补，看起来挺简单的，实际知道思路上也不难……题目分析：要用尽量多的硬币凑PP元钱，假设我现在硬币总共的面值和为MM，那么换个思路，我现在要从总共]]></description><category></category></item><item><title><![CDATA[CodeChef MOU2H - Mountain Holidays 2 （DP）]]></title><link>https://blog.youkuaiyun.com/ACM_Fish/article/details/73700728</link><guid>https://blog.youkuaiyun.com/ACM_Fish/article/details/73700728</guid><author>ACM_Fish</author><pubDate>Sun, 25 Jun 2017 11:09:44 +0800</pubDate><description><![CDATA[题目链接：https://www.codechef.com/problems/MOU2H题目大意：理解题意后就是求一个序列中有多少个不同的子序列。解题过程：刚开始看错了题意，样例过不去，后来去翻了博客，才看懂题意，看懂题意后就好做了，就是一个简单的动态规划。题目分析：因为要求不同子序列的个数。定义状态dp[i]dp[i]为前[i]个数中，不同子序列的个数。那么对于dp[i]可以由已下方式转移而来，记]]></description><category></category></item><item><title><![CDATA[HDU4027 - Can you answer these queries? （线段树）]]></title><link>https://blog.youkuaiyun.com/ACM_Fish/article/details/73549995</link><guid>https://blog.youkuaiyun.com/ACM_Fish/article/details/73549995</guid><author>ACM_Fish</author><pubDate>Wed, 21 Jun 2017 15:57:13 +0800</pubDate><description><![CDATA[题目链接：http://acm.hdu.edu.cn/showproblem.php?pid=4027题目分析：区间开根号下取整，询问区间和。解题过程：注意，进行更新和询问的操作的时候要注意xx和yy的大小，这里被坑了，差点以为自己清奇的脑洞不对……发现好多人都是转化为单点更新，自己比较耿直，写了好长的区间更新代码，也算是一题多解吧。题目分析：单点更新解法：首先要注意到对于开根号操作，这里的输入数据]]></description><category></category></item><item><title><![CDATA[HDU1394 - Minimum Inversion Number（线段树）]]></title><link>https://blog.youkuaiyun.com/ACM_Fish/article/details/73549120</link><guid>https://blog.youkuaiyun.com/ACM_Fish/article/details/73549120</guid><author>ACM_Fish</author><pubDate>Wed, 21 Jun 2017 14:49:19 +0800</pubDate><description><![CDATA[题目链接：http://acm.hdu.edu.cn/showproblem.php?pid=1394题目大意：给定一个由00到n−1n-1组成，长度为nn每个元素唯一的序列，可以进行一种操作，把第一个元素放到最后一个位置。求经过若干次操作后的，最小逆序对数。解题过程：这题之前写过一个暴力解法的题解，现在用线段树来解决一下。题目分析：这里用线段树主要是求解初始状态的逆序对数，对于每次的操作有一个结论]]></description><category></category></item><item><title><![CDATA[线段树小结]]></title><link>https://blog.youkuaiyun.com/ACM_Fish/article/details/73460106</link><guid>https://blog.youkuaiyun.com/ACM_Fish/article/details/73460106</guid><author>ACM_Fish</author><pubDate>Mon, 19 Jun 2017 12:46:38 +0800</pubDate><description><![CDATA[前言：实验室要开展每周的算法讲堂活动，大概是每周一个集训队员来给大家将一个知识点，于是我去讲线段树来开头了，但是自己好弱啊，自从寒假集训后就一直没敲过线段树代码了，于是这几天一直在照着金巨巨的博客刷线段树的题（也是抄的金巨巨的模板…）。这里总结一些做到的题，一些线段树的基本思路，也当做理一下总结的思路。用到的一些宏定义：#define lson root<<1
#define rson root<<]]></description><category></category></item><item><title><![CDATA[匹配、覆盖、独立集、二分图与网络流]]></title><link>https://blog.youkuaiyun.com/ACM_Fish/article/details/73250213</link><guid>https://blog.youkuaiyun.com/ACM_Fish/article/details/73250213</guid><author>ACM_Fish</author><pubDate>Wed, 14 Jun 2017 17:08:01 +0800</pubDate><description><![CDATA[概念：设图 G={V,E}G = \{V, E\}
匹配：在GG中两两没有公共端点的边集合M⊆EM\subseteq E
边覆盖：GG中任意顶点都至少是FF中某条边的端点的边集合F⊆EF\subseteq E
独立集：在GG中两两互不相连的顶点集合S⊆VS\subseteq V
顶点覆盖：GG中的任意边都有至少一个端点属于SS的顶点集合S⊆VS\subseteq V
定理：
对于不存在独立点的图，|]]></description><category></category></item><item><title><![CDATA[ZOJ3781 - Paint the Grid Reloaded（缩点+最短路）]]></title><link>https://blog.youkuaiyun.com/ACM_Fish/article/details/73166710</link><guid>https://blog.youkuaiyun.com/ACM_Fish/article/details/73166710</guid><author>ACM_Fish</author><pubDate>Tue, 13 Jun 2017 11:36:07 +0800</pubDate><description><![CDATA[题目链接：http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3781题目大意：给定一个N×MN\times M的矩阵，每个格子涂着黑色或白色。现在有一种涂色操作，每次涂色可以将一个格子与这个格子连通的格子涂成一个颜色。连通是指上下左右的边相接。求最少的操作次数，将这个矩阵涂成一种颜色。解题过程：很久以前比赛的题，当时看到这个题一]]></description><category></category></item></channel></rss>