<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[MikeZHW的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/MikeZHW</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; MikeZHW]]></copyright><item><title><![CDATA[重邮第八届ACM大赛-决赛题解报告]]></title><link>https://blog.youkuaiyun.com/MikeZHW/article/details/70539015</link><guid>https://blog.youkuaiyun.com/MikeZHW/article/details/70539015</guid><author>MikeZHW</author><pubDate>Sun, 23 Apr 2017 18:49:16 +0800</pubDate><description><![CDATA[A. 果姐姐的项链贪心、构造长度为N的01序列一共有2N2^N种，所以L的理论最大值为2N2^N 
当N比较小时，尝试暴力构造，找规律发现：
答案具有000…0……111…1的形式（N个0+中间部分+N个1）
尝试贪心构造：
初始化序列为11…100…0（N个1+N个0），并标记其中已经出现过的序列
尝试在末尾加0，若新组成的序列（当前序列的后N-1个字符+0）未出现，则确定加0，并标记该序列出现过]]></description><category></category></item><item><title><![CDATA[重邮第八届ACM大赛-预赛题解报告]]></title><link>https://blog.youkuaiyun.com/MikeZHW/article/details/70199540</link><guid>https://blog.youkuaiyun.com/MikeZHW/article/details/70199540</guid><author>MikeZHW</author><pubDate>Sun, 16 Apr 2017 23:24:24 +0800</pubDate><description><![CDATA[A. a x b (Ⅰ)签到题
学会如何处理多组数据
注意爆int
codeB. 多关键字排序水题
读入的时候可以考虑使用
scanf(" (%d,%d)", &x, &y);
排序可以直接使用std::sort，当然也可以自己写，但冒泡排序等高复杂度算法无法通过该规模的数据；考虑使用快排、归并排序等高效算法
可以自己写结构体，当然这里推荐使用std::pair；如果自己写结构体，需要写cmp函数或]]></description><category></category></item><item><title><![CDATA[HDU 5838 Mountain（状压DP+容斥）]]></title><link>https://blog.youkuaiyun.com/MikeZHW/article/details/52395716</link><guid>https://blog.youkuaiyun.com/MikeZHW/article/details/52395716</guid><author>MikeZHW</author><pubDate>Thu, 01 Sep 2016 06:13:44 +0800</pubDate><description><![CDATA[[题目链接][题意] 
给定n*m(1<=n,m<=5)的网格，每个格子的高度各不相同，且在1到n*m内。 
定义一个格子为山谷，当且仅当它的高度小于周围8格（界外高度看成无穷大）。 
现在给定一张地图，其中’X’表示山谷，’.’表示非山谷，问满足这个地图的高度分布情况总数。[分析] 
由于n,m<=5，山谷最多只有9个，容易想到状压每个山谷“高度是否确定”我们从小到大的确定山谷高度，设dp[i][]]></description><category></category></item><item><title><![CDATA[HDU 5800 To My Girlfriend（计数DP）]]></title><link>https://blog.youkuaiyun.com/MikeZHW/article/details/52158011</link><guid>https://blog.youkuaiyun.com/MikeZHW/article/details/52158011</guid><author>MikeZHW</author><pubDate>Tue, 09 Aug 2016 03:12:49 +0800</pubDate><description><![CDATA[[题目链接][题意] 
有n个物品，每个物品的价值为aia_i，设f(i,j,k,l,m)f(i,j,k,l,m)表示从n个物品中取若干个，满足第i，j个物品必取，第k，l个物品必不取，价值总和为m的方案数，求 
∑i=1n∑j=1n∑k=1n∑l=1n∑m=1sf(i,j,k,l,m)（i,j,k,l各不相同）
\sum_{i=1}^n\sum_{j=1}^n\sum_{k=1}^n\sum_{l]]></description><category></category></item><item><title><![CDATA[HDU 5785 Interesting（回文树）]]></title><link>https://blog.youkuaiyun.com/MikeZHW/article/details/52157895</link><guid>https://blog.youkuaiyun.com/MikeZHW/article/details/52157895</guid><author>MikeZHW</author><pubDate>Tue, 09 Aug 2016 02:04:05 +0800</pubDate><description><![CDATA[[题目链接][题意] 
给定字符串s，找所有的三元组i,j,k满足s[i,j]以及s[j+1,k]均为回文串，求所有满足条件的三元组的i*k的和。[分析]回想起以前刷回文树专题时做过的一道题HDU 5157，求不重叠回文子串的对数，做法类似回文树中，num[now]表示添加该字符后新产生的回文串个数，即以该字符为结尾的回文串个数，num[now] = num[fail[now]]+1 
正着跑一次，]]></description><category></category></item><item><title><![CDATA[HDU 5745 La Vie en rose（DP+bitset优化）]]></title><link>https://blog.youkuaiyun.com/MikeZHW/article/details/52026030</link><guid>https://blog.youkuaiyun.com/MikeZHW/article/details/52026030</guid><author>MikeZHW</author><pubDate>Mon, 25 Jul 2016 18:01:58 +0800</pubDate><description><![CDATA[[题目链接][题意] 
给定模式串和主串，模式串可以交换相邻位子的字符，且可以交换多个位子，但每个字符只能被交换一次。问模式串能否通过该变换与主串匹配？输出主串中每个位子的匹配结果，1为可匹配，0为不可匹配。[分析] 
赛上被这道题坑哭了，看到那么多队过自己却没有思路，好不容易想到个方法把样例过了却T了。最后走投无路写了个暴力就A了，1500ms，吓死。 
不过赛后貌似加强了数据，卡了暴力，丧病。]]></description><category></category></item><item><title><![CDATA[HDU 5732 Subway（树hash）]]></title><link>https://blog.youkuaiyun.com/MikeZHW/article/details/52023580</link><guid>https://blog.youkuaiyun.com/MikeZHW/article/details/52023580</guid><author>MikeZHW</author><pubDate>Mon, 25 Jul 2016 14:43:53 +0800</pubDate><description><![CDATA[[题目链接][题意] 
一个城市的铁路线构成一棵树，但是现在车站（顶点）的名字变了，但是铁路线（树）的结构没有变。现在给定原来的结构和现在的结构，确定新旧顶点间的对应关系。[分析] 
树的同构判断 
自己没什么想法，看题解说的树hash，方法应该很多（都不会 
只记得以前做过一道题，hash了字典树，方法也是抄的别人的。。。 
所以这里直接采用了题解提供的策略，即： 
先求树的中点（有2个中点的都试]]></description><category></category></item><item><title><![CDATA[HDU 5725 Game（计数）]]></title><link>https://blog.youkuaiyun.com/MikeZHW/article/details/52013840</link><guid>https://blog.youkuaiyun.com/MikeZHW/article/details/52013840</guid><author>MikeZHW</author><pubDate>Sun, 24 Jul 2016 14:23:07 +0800</pubDate><description><![CDATA[[题目链接][题意] 
n*m的棋盘上有一些守卫，守卫的攻击范围是一行一列以及周围8格，不会有一个守卫出现在另一个守卫的攻击范围内。现在任选不含守卫的起点和终点，求不经过守卫的最短路的平均值。[分析] 
根据守卫间的相互限制关系，可以发现任意两点间的最短路最多只会被一个守卫影响，即最多只需要绕行2格即可。 
所以可以分为2步计算： 
1.计算出所有合法点对间的曼哈顿距离之和 
2.计算出需要绕行的点]]></description><category></category></item><item><title><![CDATA[HDU 5731 Solid Dominoes Tilings（轮廓线DP+容斥）]]></title><link>https://blog.youkuaiyun.com/MikeZHW/article/details/52010440</link><guid>https://blog.youkuaiyun.com/MikeZHW/article/details/52010440</guid><author>MikeZHW</author><pubDate>Sun, 24 Jul 2016 01:05:24 +0800</pubDate><description><![CDATA[[题目链接][题意] 
用1*2的多米诺骨牌完美覆盖n*m的网格，且不存在水平或竖直分割线，求方法数[分析] 
若没有分割线的限制，则此题变为了轮廓线DP入门题POJ 2411 
加入了限制条件后，则要减去不合法的情况。但分割线的组合很多，所以考虑用容斥定理，加加减减。。。初步想法： 
将无限制的算法稍加修改（行转移时，不转移排满的情况），则得到了无行分割线的方案数 
枚举列分割线，使用容斥定理统计]]></description><category></category></item><item><title><![CDATA[HDU 5729 Rigid Frameworks（组合计数，递推）]]></title><link>https://blog.youkuaiyun.com/MikeZHW/article/details/51979461</link><guid>https://blog.youkuaiyun.com/MikeZHW/article/details/51979461</guid><author>MikeZHW</author><pubDate>Thu, 21 Jul 2016 09:25:32 +0800</pubDate><description><![CDATA[[题目链接][题意] 
赛上就没读懂过题意… 
通过转换将问题变为求两个点集大小分别为n和m的连通二分图个数，其中每条边可以有2种选择（主副对角线）[分析] 
如果每条边只有1种选择，那就变成了Project Euler 434，所以我们先来考虑这个问题 
对于n，m点的二分图，若不考虑连通性的限制，那么总方案数为2n∗m2^{n*m} 
只要再减去不连通的情况即可 
如何不重复不遗漏的计算出不连通]]></description><category></category></item><item><title><![CDATA[HDU 5730 Shell Necklace（FFT+分治）]]></title><link>https://blog.youkuaiyun.com/MikeZHW/article/details/51975585</link><guid>https://blog.youkuaiyun.com/MikeZHW/article/details/51975585</guid><author>MikeZHW</author><pubDate>Thu, 21 Jul 2016 00:30:40 +0800</pubDate><description><![CDATA[[题目链接][题意] 
有一串长度为nn的贝壳项链，装饰连续的ii颗贝壳有aia_i种方案。在每颗贝壳都仅被装饰一次的情况下，有多少种装饰方案？[分析] 
设装饰前ii颗贝壳的方案数为f(i)f(i) , 则容易得到递推式f(i)=∑ij=1f(i−j)∗ajf(i) = \sum_{j=1}^i{f(i-j)*a_j} 
朴素的计算复杂度为O(n^2)，肯定T观察递推式的形式，考虑用FFT+分治进]]></description><category></category></item><item><title><![CDATA[HDU 5728 PowMod（数论，欧拉函数的各种性质）]]></title><link>https://blog.youkuaiyun.com/MikeZHW/article/details/51969072</link><guid>https://blog.youkuaiyun.com/MikeZHW/article/details/51969072</guid><author>MikeZHW</author><pubDate>Wed, 20 Jul 2016 15:46:51 +0800</pubDate><description><![CDATA[[题目链接][题意]k = ∑i=1mϕ(i∗n)%1000000007
k \ = \ \sum_{i=1}^m\phi(i*n) \% 1000000007 \\
 
其中n为无平方因子的数，求 
ans = kkkk...k%p
ans \ = \ k^{k^{k^{k^{...^{k}}}}} \% p \\
[分析]n无平方因子说明n可以表示为 n =p1∗p2∗...∗pl (pi≠pj]]></description><category></category></item><item><title><![CDATA[HDU 5727 Necklace（玄学+状压DP 或 匈牙利）]]></title><link>https://blog.youkuaiyun.com/MikeZHW/article/details/51964101</link><guid>https://blog.youkuaiyun.com/MikeZHW/article/details/51964101</guid><author>MikeZHW</author><pubDate>Wed, 20 Jul 2016 02:44:09 +0800</pubDate><description><![CDATA[[题目链接][题意] 
2n颗宝石，n颗为阴，n颗为阳，阴阳交错的组成一个圈（圆排列） 
给定一系列阴阳宝石对，如果在排列中这两颗宝石相邻，阳宝石就会失去能量 
求如何排列能让最少的阳宝石失去能量，输出最少的宝石数目[分析] 
n比较小（n<=9n <= 9），自然想到状压 
但如果交错的枚举阴阳宝石，状态不好表示，也不好转移 
于是想到先固定阴宝石的排列，再状压dp求阳宝石的最优放法 
朴素做法]]></description><category></category></item><item><title><![CDATA[HDU 5733 tetrahedron（三维几何）]]></title><link>https://blog.youkuaiyun.com/MikeZHW/article/details/51960523</link><guid>https://blog.youkuaiyun.com/MikeZHW/article/details/51960523</guid><author>MikeZHW</author><pubDate>Tue, 19 Jul 2016 23:30:51 +0800</pubDate><description><![CDATA[[题目链接][题意] 
给定四面体的四个顶点，求内切球的球心和半径 
若内切球不存在，输出”O O O O”[分析] 
各种公式~设四面体四个顶点坐标分别为 (xi,yi,zi)(x_i,y_i,z_i),与之相对的面的面积为sis_i,四面体体积为VV,则有 
四面体内心（内切球球心）坐标公式： 
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪xyz===s1x1+s2x2+s3x3+s4x4s1+s2+s3]]></description><category></category></item><item><title><![CDATA[HDU 5726 GCD（线段树+预处理）]]></title><link>https://blog.youkuaiyun.com/MikeZHW/article/details/51960164</link><guid>https://blog.youkuaiyun.com/MikeZHW/article/details/51960164</guid><author>MikeZHW</author><pubDate>Tue, 19 Jul 2016 22:34:05 +0800</pubDate><description><![CDATA[[题目链接][题意] 
给定数列an，每次询问区间[l,r]上所有数的gcd，并求gcd为此值的区间有多少个？[分析] 
区间gcd用线段树很好维护 
关键在于如何求gcd为某值的区间个数 
我们固定右端点r，左端点从1移动到r，求得一个gcd序列 
容易发现，这个序列是非增的，且可以分为许多段数值相同的区间段 
可以证明，这样的区间段个数不超过log2(n)，因为每次gcd值下降时至少降为原来的一]]></description><category></category></item><item><title><![CDATA[HDU 5724 Chess（博弈，SG函数）]]></title><link>https://blog.youkuaiyun.com/MikeZHW/article/details/51959550</link><guid>https://blog.youkuaiyun.com/MikeZHW/article/details/51959550</guid><author>MikeZHW</author><pubDate>Tue, 19 Jul 2016 21:06:50 +0800</pubDate><description><![CDATA[[题目链接][题意] 
在一个n*20的棋盘上，有一些棋子，两人轮流操作。每次操作可以任选一个棋子，把它移动到其右边第一个空的位子。不能操作者输。给定棋盘的状态，判断谁赢？[分析] 
由于棋子只能向右移动，所以每一行可以看成独立的游戏 
由SG定理，整个游戏的SG值为每个子游戏的xor和 
由于一行只有20个位子，总状态数为2^n，可以状压表示，而每个状态的后继也不超过20个，可以枚举求出所有状态的]]></description><category></category></item><item><title><![CDATA[HDU 5723 Abandoned country（最小生成树 + 树形DP）]]></title><link>https://blog.youkuaiyun.com/MikeZHW/article/details/51959138</link><guid>https://blog.youkuaiyun.com/MikeZHW/article/details/51959138</guid><author>MikeZHW</author><pubDate>Tue, 19 Jul 2016 20:18:41 +0800</pubDate><description><![CDATA[[题目链接][题意]  
n座城市m条路，每条路连接2个城市，路的长度各不相同，修建一条路需要的代价等于其长度。求:  
1.使所有城市连通需要的最小代价 
2.在最小代价下，任取2个城市，求他们之间最短路的期望值[分析] 
1.是比较裸的MST，直接上kruskal 
由于边权各不相同，MST的形态应该是固定的 
2.用树形DP求出所有点对的路径和，再除以点对的个数n*(n-1)/2，就是期望值]]></description><category></category></item></channel></rss>