<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Rewriter_huanying的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Rewriter_huanying</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Rewriter_huanying]]></copyright><item><title><![CDATA[SDKD 2019 Spring Training Series C2 10th Round 题解]]></title><link>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/89647972</link><guid>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/89647972</guid><author>Rewriter_huanying</author><pubDate>Wed, 01 May 2019 16:38:48 +0800</pubDate><description><![CDATA[POJ 2689 Prime Distance
TAG：
筛法、思维 = 大素数区间筛
难度：
★★★
题意：
给定两个整数L,R(1&amp;lt;=L&amp;lt;=R&amp;lt;=231,R−L&amp;lt;=1061&amp;lt;=L&amp;lt;=R&amp;lt;=2^{31}, R-L &amp;lt;= 10^{6}1&lt;=L&lt;=R&lt;=231,R−L&l...]]></description><category></category></item><item><title><![CDATA[HDU 2108 Shape of HDU 计算几何 判断多边形凹凸性]]></title><link>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/88409286</link><guid>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/88409286</guid><author>Rewriter_huanying</author><pubDate>Mon, 11 Mar 2019 20:47:13 +0800</pubDate><description><![CDATA[题目：https://cn.vjudge.net/problem/HDU-2108
题意：给一个多边形点的坐标，输入按逆时针排序，判断多边形的凹凸性。
思路：
方法一：求凸包，比较顶点数是否相等。
方法二：根据凸多边形定义：
（1）对于每一条边，其余的边都在该边同一侧。
（2）多边形内角都小于180度。
也就是说对于逆时针排序的边，下一条边必定在上一条边左侧。
实现上可以用叉积判断，向量v1和v2...]]></description><category></category></item><item><title><![CDATA[HDU 1107 武林 大模拟]]></title><link>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/88406358</link><guid>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/88406358</guid><author>Rewriter_huanying</author><pubDate>Mon, 11 Mar 2019 19:47:21 +0800</pubDate><description><![CDATA[题目：https://cn.vjudge.net/problem/HDU-1107
题意：中文题干不再赘述，仅强调两处细节
（1）仅当一个各自里有两名弟子，且二者分属不同门派时才会发生战斗。
（2）每次战斗+移动称作一步，最后一次移动后的战斗不需处理。
思路：模拟题怎么写都能写出来，我提供几处的实现方法供参考。
（1）存储结构：滚动二维结构体数组，相当于两个二维数组，从一步走向另一步时将属性改变后...]]></description><category></category></item><item><title><![CDATA[HDU 1595 find the longest of the shortest 最短路变形]]></title><link>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/88405051</link><guid>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/88405051</guid><author>Rewriter_huanying</author><pubDate>Mon, 11 Mar 2019 19:19:04 +0800</pubDate><description><![CDATA[题目：https://cn.vjudge.net/problem/HDU-1595
题意：给出一个不超过1000个点的带权无向图，求删掉其中一条边后最短路的最大值。
思路：先Dijkstra或SPFA求出原图最短路，显然，当删掉的边不在最短路内时，最短路不变。
因此只需枚举原图最短路上的每一条边，将其删掉求最短路求最大值即为答案。
代码：C++11
#include &amp;lt;cstdio&amp;gt;
...]]></description><category></category></item><item><title><![CDATA[HDU 1237 简单计算器 表达式求值]]></title><link>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/88399445</link><guid>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/88399445</guid><author>Rewriter_huanying</author><pubDate>Mon, 11 Mar 2019 17:40:45 +0800</pubDate><description><![CDATA[题目：https://cn.vjudge.net/problem/HDU-1237
题意：中文题干不再赘述
思路：由于表达式中不含括号，可以简单处理。
具体方法如下：
开一个符号栈，一个数值栈
先读入一个数放到数值栈中
之后每次分别读一个符号一个数值，若符号为乘除，直接将数值栈栈顶的元素与本次读入的数值进行乘除运算，再放回数值栈中。若符号为加减，则先将符号栈中留存的加减号与数值栈栈顶的两个数进行运...]]></description><category></category></item><item><title><![CDATA[HDU 3791 二叉搜索树 二叉搜索树的建树和遍历]]></title><link>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/88398621</link><guid>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/88398621</guid><author>Rewriter_huanying</author><pubDate>Mon, 11 Mar 2019 17:08:41 +0800</pubDate><description><![CDATA[题目：https://cn.vjudge.net/problem/HDU-3791
题意：中文题干不再赘述
思路：根据输入建二叉搜索树，若前序和中序遍历的结果相同则必定是同一棵二叉树。
代码：C++
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;cmath&amp;gt;
#include &amp;lt;iostream&amp;gt;
#i...]]></description><category></category></item><item><title><![CDATA[HDU 1503 Advanced Fruits 最长公共子序列（LCS）]]></title><link>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/88398258</link><guid>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/88398258</guid><author>Rewriter_huanying</author><pubDate>Mon, 11 Mar 2019 17:02:05 +0800</pubDate><description><![CDATA[题目：https://cn.vjudge.net/problem/HDU-1503
题意：输入两个长度不超过一百的非空字符串，求一个字符串，使该字符串存在子序列分别是输入的两字符串，要求所求字符串最短。有多个答案时，输出任意一个。
思路：要找最短的包含两字符串的字符串，把输入的两字符串，公共部分输出一次，其他部分按照一定顺序各自输出。具体做法：找出最长公共子序列，标记好LCS的每个字符在原字符串中...]]></description><category></category></item><item><title><![CDATA[HDU 1875 畅通工程再续 最小生成树]]></title><link>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/88391182</link><guid>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/88391182</guid><author>Rewriter_huanying</author><pubDate>Mon, 11 Mar 2019 11:53:53 +0800</pubDate><description><![CDATA[题目：https://cn.vjudge.net/problem/HDU-1875
题意：平面坐标系上，C个点，坐标[0, 1000]整数，要求修路使之变成连通图，一条边费用等于长度*100，长度不在[10, 1000]范围内的边不能选择。求最小费用。
思路：二重循环计算两点距离建边，边长不符合[10, 1000]的边忽略，之后求最小生成树即可。
代码：C++
#include &amp;lt;cstdi...]]></description><category></category></item><item><title><![CDATA[UVA10827 Maximum sum on a torus 枚举 + 二维前缀和]]></title><link>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/81414693</link><guid>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/81414693</guid><author>Rewriter_huanying</author><pubDate>Sat, 04 Aug 2018 20:04:23 +0800</pubDate><description><![CDATA[题目：https://cn.vjudge.net/problem/UVA-10827

题意：给一个大小不超过75*75的方阵，里面是-100到100的整数，让你求子矩阵里的元素和最大值。这个矩阵有一个特点，矩阵上下、左右是认为是相邻的，所以取可以取类似下图的子矩阵。 


思路：这个球面矩阵的特殊性可以用一个简单的技巧的解决，将四个相同的方阵拼在一起就可以忽略它的特殊性。直接枚举复杂度高达O(n...]]></description><category></category></item><item><title><![CDATA[HDU 1496 Equations 简单折半枚举 + 简单哈希]]></title><link>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/81414518</link><guid>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/81414518</guid><author>Rewriter_huanying</author><pubDate>Sat, 04 Aug 2018 19:46:03 +0800</pubDate><description><![CDATA[题目：https://cn.vjudge.net/problem/HDU-1496

题意：求方程a*x1^2+b*x2^2+c*x3^2+d*x4^2=0整数解的个数 
注：（1） a、b、c、d为整数常数，属于闭区间[-50，50] 
（2）x属于闭区间[-100,100]的非零整数

思路：分别枚举a*x1^2+b*x2^2和c*x3^2+d*x4^2，将前者结果保存，枚举后者使c*x3^2...]]></description><category></category></item><item><title><![CDATA[CodeForces 485D Maximum Value 技巧枚举 + 二分]]></title><link>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/81414327</link><guid>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/81414327</guid><author>Rewriter_huanying</author><pubDate>Sat, 04 Aug 2018 19:24:36 +0800</pubDate><description><![CDATA[题目：https://cn.vjudge.net/problem/CodeForces-485D

题意：给出n个整数，求这里面任取两个数取模的最大值 
注：（1）最多2e5个数，数字大小1到1e6 
（2）大数膜小数

思路：对于一个数a，要使b%a最大，自然要找大于等于a的倍数且最接近的数作为b。由此，我们先将数排序、去重，然后枚举每一个a和它的倍数，二分找到大于等于比这个数的最小的数b，计算...]]></description><category></category></item><item><title><![CDATA[HDU 5968 异或密码 预处理异或前缀和+枚举 or 预处理+二分]]></title><link>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/81413871</link><guid>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/81413871</guid><author>Rewriter_huanying</author><pubDate>Sat, 04 Aug 2018 18:30:20 +0800</pubDate><description><![CDATA[题目：https://cn.vjudge.net/problem/HDU-5968

思路： 
思路一：利用异或运算 a^b^b = a的性质，O(n)预处理出异或的前缀，即可O(1)查询区间连续异或值。之后对于给出的x只需枚举所有子区间即可得到答案。总复杂度O(n + m*n^2)

思路二：直接预处理求出所有区间的异或值和区间长度，将其排序，对于输入的x，二分查找到与x作差绝对值最小的值，其对...]]></description><category></category></item><item><title><![CDATA[Gym 101612C Consonant Fencity 建图预处理 + 二进制枚举]]></title><link>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/81413607</link><guid>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/81413607</guid><author>Rewriter_huanying</author><pubDate>Sat, 04 Aug 2018 17:59:52 +0800</pubDate><description><![CDATA[题目：https://cn.vjudge.net/problem/Gym-101612C

题意：给出一个字符串（长度不超过1e6），仅由小写字母组成。定义一个叫consonant fencity的东西，含义是如果两个连续字母是辅音（本题中辅音指除aeiouwy以外的字母），且大小写不相同，就有一对consonant fencity。题目要求指定每个字母的大小写形式（要求相同字母的大小写形式相同）...]]></description><category></category></item><item><title><![CDATA[CodeForces 124B Permutations 枚举全排列]]></title><link>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/81412610</link><guid>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/81412610</guid><author>Rewriter_huanying</author><pubDate>Sat, 04 Aug 2018 16:44:26 +0800</pubDate><description><![CDATA[题目：https://cn.vjudge.net/problem/CodeForces-124B

题意：给出n个k位数，将每个数字的各个位置上的数重新排列，让重排后的数字极差最小，求极差。 
注：（1）数字可以有前导零。 
（2）重排时，所有数字按照相同规则重新排列。 
（3）1 ≤ n, k ≤ 8

思路：既然重排时所有数字规则都相同，那么我们只需要枚举全排列作为重排的规则，在计算出每种重排...]]></description><category></category></item><item><title><![CDATA[CodeForces 427D Match & Catch 后缀数组]]></title><link>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/78707617</link><guid>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/78707617</guid><author>Rewriter_huanying</author><pubDate>Mon, 04 Dec 2017 11:06:06 +0800</pubDate><description><![CDATA[题目：https://cn.vjudge.net/problem/CodeForces-427D题意：给出两个字符串，求最小公共子串长度，使这个子串仅在两个串均出现一次。思路：将这两个字符串拼成一个串，中间用一个没出现过的字符隔开（我用的空格），对合成的串求后缀数组，这样两个数组的公共子串所在的后缀在sa中应该是相邻的。通过观察，只有当这两个sa中相邻的后缀sa[i]和sa[i-1]左右的后缀都不含]]></description><category></category></item><item><title><![CDATA[Uvalive 6471 Triangle Count Sequences of Polygon Triangulations 多边形三角剖分 递归思想]]></title><link>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/78704805</link><guid>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/78704805</guid><author>Rewriter_huanying</author><pubDate>Sun, 03 Dec 2017 22:05:58 +0800</pubDate><description><![CDATA[题目：https://cn.vjudge.net/problem/UVALive-6471题意：一个n边形的三角剖分是指用n-3条不相交的内对角线，把一个n边形分成n-2个三角形。三角剖分的三角数目序列指的是，依次列出与每个顶点相连的三角形数目组成的序列。 
给出一份长度为n的三角数目序列，判断这个序列是否符合是一个n边形的三角数目序列。如果符合，输出所有三角形的顶点编号，并按字典序排列。思路：可以]]></description><category></category></item><item><title><![CDATA[ZOJ 3987 Numbers 2017CCPC秦皇岛站G题 大整数 二进制 贪心]]></title><link>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/78633023</link><guid>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/78633023</guid><author>Rewriter_huanying</author><pubDate>Sat, 25 Nov 2017 17:20:41 +0800</pubDate><description><![CDATA[题目：https://cn.vjudge.net/problem/ZOJ-3987题意：给出一个数n（不超过4000个十进制数字），将其分成m（不超过10的100次方）个数，要求这m个数的和等于n。求这m个数最小可能的按位或的值。思路：按位或的特点是这m个数如果在某一个二进制位上有一个为1的，那么最终结果在那一位就会是1，所以我们想要尽可能的让高位上没有1，而且只要有一位上确定必须是1，就尽可能利用]]></description><category></category></item><item><title><![CDATA[Puzzles CodeForces 696B 树形DP 期望计算]]></title><link>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/78522855</link><guid>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/78522855</guid><author>Rewriter_huanying</author><pubDate>Mon, 13 Nov 2017 17:45:54 +0800</pubDate><description><![CDATA[题目：https://cn.vjudge.net/problem/CodeForces-696B题意：给出一棵n个点的有根树，节点编号从1到n，编号为1的节点为树根。 
从1号节点开始dfs，从父节点访问子节点时对子节点的选择是随机的，每访问一个节点需要1秒的时间。问访问到每个节点的时间期望是多少秒。思路：从树根向下递推。 
dp(i)表示节点的时间期望，dp（fa）表示父亲节点的期望，dp（chi]]></description><category></category></item><item><title><![CDATA[An Easy Problem?! POJ 2826 计算几何]]></title><link>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/78522588</link><guid>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/78522588</guid><author>Rewriter_huanying</author><pubDate>Mon, 13 Nov 2017 17:25:14 +0800</pubDate><description><![CDATA[题目：https://cn.vjudge.net/problem/POJ-2826题意：二维平面上，给出两条线段，雨水竖直下落，问由这两条线段组成的容器能盛多少水（面积）。思路：一句话就描述完的题意，看似简单，却情况繁多，想AC一点不容易。 
这题的具体做法很灵活，以下是我的方法，未必是最佳做法。先说一下有解情况下的面积计算方法： 
如图： 
 
AB CD两线段交点为O，从过C点引平行线交AB与E]]></description><category></category></item><item><title><![CDATA[The Same Game UVA 758/Uvalive 5423 大模拟 求最大联通块并清除]]></title><link>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/78518916</link><guid>https://blog.youkuaiyun.com/Rewriter_huanying/article/details/78518916</guid><author>Rewriter_huanying</author><pubDate>Mon, 13 Nov 2017 12:02:27 +0800</pubDate><description><![CDATA[题目：https://cn.vjudge.net/problem/UVA-758题意：模拟一个游戏，棋盘大小10行15列，取左下角为原点建立坐标系，有三种棋子，题目给出一个初始状态。游戏初始得分为0。 
要求进行以下三个阶段的操作： 
（1）找到最大联通块，（若有多个优先选择最左的，若还有多个优先选择最下的），若联通块中棋子数>=2则清除，此时会得到（删除的棋子数 - 2）的平方的分数，依照要求输出]]></description><category></category></item></channel></rss>