<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Time is up , let's go .]]></title><description><![CDATA[愿我的生命有够多的云翳，来打造一个美丽的黄昏！ ]]></description><link>https://blog.youkuaiyun.com/chl_3205</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chl_3205]]></copyright><item><title><![CDATA[2013 ACM/ICPC Asia Regional Changchun Online  hdu Theme Section]]></title><link>https://blog.youkuaiyun.com/chl_3205/article/details/12158583</link><guid>https://blog.youkuaiyun.com/chl_3205/article/details/12158583</guid><author>chl_3205</author><pubDate>Sun, 29 Sep 2013 11:53:18 +0800</pubDate><description><![CDATA[题意：给定一个字符串，是否存在字符串的首部，尾部和中部 ，求最长的。
kmp解决。



#include
#include
#include
using namespace std;
const int N=1e6+50;
int next[N];
char str[N];
void Get_Next(char *p,int len)
{
    int j=1;
    next[0]]></description><category></category></item><item><title><![CDATA[2013 ACM/ICPC Asia Regional Changsha Online]]></title><link>https://blog.youkuaiyun.com/chl_3205/article/details/12001113</link><guid>https://blog.youkuaiyun.com/chl_3205/article/details/12001113</guid><author>chl_3205</author><pubDate>Wed, 25 Sep 2013 09:41:30 +0800</pubDate><description><![CDATA[题意 描述不理解， 是让求（l+sqrt（l*（l-1）））^k%k ;向下取整。
设b=sqrt(l*(l-2))
 (l+b )^k是小数直接算会有错误。所以要凑成整数。
Cn=（l+b）^k +(l - b)^k   ；  Cn的二项式展开可以知道 b 的奇数次方会相消掉。
（l-b）是在0和1范围内的，（l-b）^k也是在0和1之间。所以结果是向上取整的。最后减1
Cn*( (l]]></description><category></category></item><item><title><![CDATA[poj 2773 Happy 2006]]></title><link>https://blog.youkuaiyun.com/chl_3205/article/details/11526531</link><guid>https://blog.youkuaiyun.com/chl_3205/article/details/11526531</guid><author>chl_3205</author><pubDate>Tue, 10 Sep 2013 15:22:35 +0800</pubDate><description><![CDATA[题意： 求与m互质的第k个数。
我们可以找到规律，
1 ，2 ，3 ，4， 5， 6 ，7，8,9,     11，12,13,14 与5互质的数 x*m + 小于5与互质的数。


gcd（b×t+a，b）=gcd（a，b）  （t为任意整数）

则如果a与b互素，则b×t+a与b也一定互素，如果a与b不互素，则b×t+a与b也一定不互素

故与m互素的数对m取模具有周期性]]></description><category></category></item><item><title><![CDATA[hdu 4712  Hamming Distance]]></title><link>https://blog.youkuaiyun.com/chl_3205/article/details/11484565</link><guid>https://blog.youkuaiyun.com/chl_3205/article/details/11484565</guid><author>chl_3205</author><pubDate>Mon, 09 Sep 2013 17:13:21 +0800</pubDate><description><![CDATA[题意：给n个16进制数，求每对16进制数异或得到的数的二进制中1的个数最少的个数。
#include
#include
#include
#include
using namespace std;
#define mem(x,y) memset(x,y,sizeof(x))
#define FF freopen("Input.txt","r",stdin)
#define Debug puts(]]></description><category></category></item><item><title><![CDATA[CodeForces - 292E 线段树]]></title><link>https://blog.youkuaiyun.com/chl_3205/article/details/9903531</link><guid>https://blog.youkuaiyun.com/chl_3205/article/details/9903531</guid><author>chl_3205</author><pubDate>Sun, 11 Aug 2013 18:32:18 +0800</pubDate><description><![CDATA[题意：给a，b两个数组， 然后有m个操作，t 如果t=2 ，接着输入一个k ，然后输出b【k】；如果t =1，接着输入3个数，x，y，k，表示b【y】到b【y+k-1】等于
a【x】到a【x+k-1】。
线段树设置两个变量，flag1 表示这段区间被x占用，flag2表示这段区间从y位置开始，
#include
#include
#include
using namespace std;
#]]></description><category></category></item><item><title><![CDATA[poj 2886 线段树 （用反素数）]]></title><link>https://blog.youkuaiyun.com/chl_3205/article/details/9899821</link><guid>https://blog.youkuaiyun.com/chl_3205/article/details/9899821</guid><author>chl_3205</author><pubDate>Sun, 11 Aug 2013 14:15:43 +0800</pubDate><description><![CDATA[题意：有n 个人，每个人有一个卡，上面有一个非零的数。第一次给一个数k，第k个人跳出，然后看第k的卡上数字是多少，如果大于0 则顺时针数那人人跳出。小于零，逆时针数到的那个人跳出，一次类推，第x次跳出的人会得到f（x），f（x）等于x的因子个数，求最大的f（x）
f（x）满足反素数。 线段树的区间存的是有多少人。
#include
#include
#include
using namespa]]></description><category></category></item><item><title><![CDATA[STL用法 （set）]]></title><link>https://blog.youkuaiyun.com/chl_3205/article/details/9896727</link><guid>https://blog.youkuaiyun.com/chl_3205/article/details/9896727</guid><author>chl_3205</author><pubDate>Sun, 11 Aug 2013 09:48:04 +0800</pubDate><description><![CDATA[set：
set中的元素师唯一的，multiset中可以存在多个相同的。
set的头文件是#include
set中的元素默认从小到大排序；
也可以这样定义;
int main()
{
    set >s1;//从大到小排序
    set >s2;//从小到大排序
    s1.insert(3);
    s1.insert(2);
    s1.insert(7);
    se]]></description><category></category></item><item><title><![CDATA[poj 3321 线段树（将点转换为对应区间）]]></title><link>https://blog.youkuaiyun.com/chl_3205/article/details/9873039</link><guid>https://blog.youkuaiyun.com/chl_3205/article/details/9873039</guid><author>chl_3205</author><pubDate>Sat, 10 Aug 2013 10:45:52 +0800</pubDate><description><![CDATA[题意：n个点，n-1条边，有m个查询，Q a，表示a的子树中包含a有多少苹果。C a，表示a这个点如果有苹果就被摘掉，没有苹果就长出一个。
将对应点转换成对应区间，然后进行线段树
#include
#include
#include
using namespace std;
#define mem(x,y) memset(x,y,sizeof(x))
const int N=1e5+2;
st]]></description><category></category></item><item><title><![CDATA[hdu 4276 树形dp背包]]></title><link>https://blog.youkuaiyun.com/chl_3205/article/details/9785383</link><guid>https://blog.youkuaiyun.com/chl_3205/article/details/9785383</guid><author>chl_3205</author><pubDate>Tue, 06 Aug 2013 08:28:21 +0800</pubDate><description><![CDATA[题意：n个点，n-1条边，每条边有权值，每个点有价值 ，问你能否在T时间内从1走到n，如果能，获得的最大价值。
       先用spfa求出1至n的最短路径，并且将1到n最短路径上的边权致零，t减去dis【n】这样以后就可以不用考虑怎样回到n了，就和普通的树形dp一样，
状态方程   dp [ u ] [ j ] = max ( dp [ u ][ j ]  ,dp[ v] [k ] +  ]]></description><category></category></item><item><title><![CDATA[hdu 1695 两个区间中互素的个数 （容斥）]]></title><link>https://blog.youkuaiyun.com/chl_3205/article/details/9733611</link><guid>https://blog.youkuaiyun.com/chl_3205/article/details/9733611</guid><author>chl_3205</author><pubDate>Sat, 03 Aug 2013 17:04:48 +0800</pubDate><description><![CDATA[题意是，【1，l】，【1，r】之间个数一个数两个数的最大公约数等于k  求有多少这样的数对。
设x是在【1，l】中取的数，y是在【1，r】中取的数。
x =a*k  ，y=b*k ，k为最大公约数， 所以a与b互素，问题转换为区间（1，l/k）（1  ,  r/k）中有多少互素的数对。
容斥原理在这里求的是 i 在（1，l/k）中与i不互素的个数。例如  1到10中能被2,3整除的个数为 1]]></description><category></category></item><item><title><![CDATA[hdu  3501 欧拉函数求和]]></title><link>https://blog.youkuaiyun.com/chl_3205/article/details/9631567</link><guid>https://blog.youkuaiyun.com/chl_3205/article/details/9631567</guid><author>chl_3205</author><pubDate>Tue, 30 Jul 2013 19:13:42 +0800</pubDate><description><![CDATA[题意：求小于n 的与n不互质的数的和。
 小于n与n互质的欧拉函数的和 sum = n*（phi（n））/ 2;
所以结果就是 ans= （n-1）*n / 2  - sum;
#include
#include
#include
#define ll long long
const int mod=1000000007;
ll phi(ll n)
{
    ll m=(ll)sqrt(n]]></description><category></category></item><item><title><![CDATA[hdu 2588 欧拉函数    &&hdu 2504]]></title><link>https://blog.youkuaiyun.com/chl_3205/article/details/9630409</link><guid>https://blog.youkuaiyun.com/chl_3205/article/details/9630409</guid><author>chl_3205</author><pubDate>Tue, 30 Jul 2013 17:26:52 +0800</pubDate><description><![CDATA[题意：x在1到n之间，求满足条件的gcd（x，n）>=m的x个数
题解：设n=p*d   ；   x= q *d  ；  d为gcd（x，n） 则p与q互质。所以我们只需求d>=m时的 p，与p互质的数就是q的取值，即为x的取值 ，所以（n/p）的和即为答案。
#include
#include
#include
const int N=1e6;
int num[N];
int phi(int]]></description><category></category></item><item><title><![CDATA[hdu 1573 孙子定理]]></title><link>https://blog.youkuaiyun.com/chl_3205/article/details/9624751</link><guid>https://blog.youkuaiyun.com/chl_3205/article/details/9624751</guid><author>chl_3205</author><pubDate>Tue, 30 Jul 2013 10:41:39 +0800</pubDate><description><![CDATA[题意：在1 到n中求有多少个x满足 x%a【i】=b【i】。

令任意固定整数为M，当M/A余a，M/B余b，M/C余c，M/D余d，…，M/Z余z时，这里的A，B，C，D，…，Z为除数，除数为任意自然数（[span]如果为0，没有任何意义，如果为1，在孙子定理中没有计算和探讨的价值，所以，不包括0和1）时；余数a，b，c，d，z为自然整数时。

1、当命题正确时，在这些除数的最小公倍数内]]></description><category></category></item><item><title><![CDATA[3613 kmp应用]]></title><link>https://blog.youkuaiyun.com/chl_3205/article/details/9615287</link><guid>https://blog.youkuaiyun.com/chl_3205/article/details/9615287</guid><author>chl_3205</author><pubDate>Mon, 29 Jul 2013 13:24:33 +0800</pubDate><description><![CDATA[题意：n组数据，先输入26个数，代表a到z每个字母对应的价值，
然后一个字符串，求将字符串分成两个，如果是回文串这个字符串的价值是每个字母的和，不是回文串价值为0  最大价值。
如  第一组样例 ，aba ，分成两个a 和ba ，a就是一个回文串。所以价值为1；
题解求字符串的回文串前缀，和回文串后缀


#include
#include
#include
#include
usin]]></description><category></category></item><item><title><![CDATA[hdu 4614 线段树]]></title><link>https://blog.youkuaiyun.com/chl_3205/article/details/9527015</link><guid>https://blog.youkuaiyun.com/chl_3205/article/details/9527015</guid><author>chl_3205</author><pubDate>Sat, 27 Jul 2013 10:28:59 +0800</pubDate><description><![CDATA[题意：有n个花瓶，编号为0 到 n-1，有m的操作，每个操作输入k，a，b，k=1，表示从标号为a的花瓶开始连续插花，每个瓶插一朵。如果某个瓶被占用，就在这瓶后面的瓶插花，到编号为n-1的瓶还有花，就扔掉剩下的花，并输出 这部操作插花的第一个瓶编号和最后一个瓶标号，
  k=2 表示在区间a b之间，把插的花扔掉，并输出扔掉花的数目，
#include
#include
#include
us]]></description><category></category></item><item><title><![CDATA[hdu 4602 找规律]]></title><link>https://blog.youkuaiyun.com/chl_3205/article/details/9491477</link><guid>https://blog.youkuaiyun.com/chl_3205/article/details/9491477</guid><author>chl_3205</author><pubDate>Fri, 26 Jul 2013 09:32:02 +0800</pubDate><description><![CDATA[题意是：给你两个数   n  k，，问n的所有整数划分中，k出现的次数。
题解：        1       2     3     4    5     6    7   
当n=5时，28    12    5      2    1 
n =6         64     28    12   5     2     1   ····························]]></description><category></category></item><item><title><![CDATA[hdu 3635 并查集]]></title><link>https://blog.youkuaiyun.com/chl_3205/article/details/9450947</link><guid>https://blog.youkuaiyun.com/chl_3205/article/details/9450947</guid><author>chl_3205</author><pubDate>Wed, 24 Jul 2013 14:57:40 +0800</pubDate><description><![CDATA[题意：有n个球在n个城市，刚开始，1号球在1号城市，依次2号球在2号城市。
有两种操作，T  A B 将A球所在城市的球全部移到B球所在城市。
   Q   A  查询A所在的城市，A求移动的次数，A所在城市的球的总数。
并查集主要是路径压缩时，更改 移动的次数。如 子节点的移动次数等于加等于父节点的次数
#include
#include
#include
#include
using ]]></description><category></category></item><item><title><![CDATA[poj 3071 概率dp]]></title><link>https://blog.youkuaiyun.com/chl_3205/article/details/9445965</link><guid>https://blog.youkuaiyun.com/chl_3205/article/details/9445965</guid><author>chl_3205</author><pubDate>Wed, 24 Jul 2013 09:43:19 +0800</pubDate><description><![CDATA[题意是：有2^n支队伍，告诉你p【j】【k】表示j打败k的概率。求最后赢得比赛概率最大的队伍。
dp【i】【j】 表示在第i回合，j获胜的概率
此题需要注意的是比赛队伍的次序，第一回合：1和2 比赛，3和4 ，5 和6 ，7和8， 依次类推;
if(((j>>(i-1))^1)==(k>>(i-1))) 判断j和k是否可以比赛；

比如3支队伍，可以比赛的队伍是：
0 1    1 0]]></description><category></category></item><item><title><![CDATA[poj 1456 贪心+并查集优化]]></title><link>https://blog.youkuaiyun.com/chl_3205/article/details/9427051</link><guid>https://blog.youkuaiyun.com/chl_3205/article/details/9427051</guid><author>chl_3205</author><pubDate>Tue, 23 Jul 2013 19:06:28 +0800</pubDate><description><![CDATA[题意：题目链接有n个商品，每个商品有两个属性val 和day，val表示商品的价值，day 表示商品最后卖出去的期限，卖每个商品需要一天的时间。
题解：贪心，贪心测率和hdu 1789 一样。按照val从大到小排序。然后从第一个开始，如果它的最后期限没有被占用，这天就用来买这件商品，如果被占用就在这天之前
找出第一个没被占用的。并查集的用处就是找可用的那天，把被占用的连续的天数看做一个集合，根]]></description><category></category></item><item><title><![CDATA[nyoj 项目安排]]></title><link>https://blog.youkuaiyun.com/chl_3205/article/details/9420947</link><guid>https://blog.youkuaiyun.com/chl_3205/article/details/9420947</guid><author>chl_3205</author><pubDate>Tue, 23 Jul 2013 13:15:34 +0800</pubDate><description><![CDATA[题意：
小明每天都在开源社区上做项目，假设每天他都有很多项目可以选，其中每个项目都有一个开始时间和截止时间，假设做完每个项目后，拿到报酬都是不同的。由于小明马上就要硕士毕业了，面临着买房、买车、给女友买各种包包的鸭梨，但是他的钱包却空空如也，他需要足够的money来充实钱包。万能的网友麻烦你来帮帮小明，如何在最短时间内安排自己手中的项目才能保证赚钱最多（注意：做项目的时候，项目不能并行，即两个项]]></description><category></category></item></channel></rss>