<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ACMer_ZP的博客]]></title><description><![CDATA[奔向自己的诗和远方]]></description><link>https://blog.youkuaiyun.com/ACMer_ZP</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ACMer_ZP]]></copyright><item><title><![CDATA[STL集合]]></title><link>https://blog.youkuaiyun.com/ACMer_ZP/article/details/80448951</link><guid>https://blog.youkuaiyun.com/ACMer_ZP/article/details/80448951</guid><author>ACMer_ZP</author><pubDate>Fri, 25 May 2018 11:04:52 +0800</pubDate><description><![CDATA[string

定义迭代器



string::iterator it;

插入字符 在迭代器之前插入字符



s.insert(it,'p');

删除字符 删除迭代器指向字符



s.erase(it);

删除区间元素 左闭右开区间



s.erase(it,it+2);

替换 从a位置开始将长度为b的串替换为c字符串



s.replace(a,b,c);

查找a字符串第一次...]]></description><category></category></item><item><title><![CDATA[js知识点]]></title><link>https://blog.youkuaiyun.com/ACMer_ZP/article/details/79499312</link><guid>https://blog.youkuaiyun.com/ACMer_ZP/article/details/79499312</guid><author>ACMer_ZP</author><pubDate>Fri, 09 Mar 2018 16:58:59 +0800</pubDate><description><![CDATA[JSON

菜鸟的JSON教程 
JSON 对象使用在大括号({})中书写。 
对象可以包含多个 key/value（键/值）对。 
key 必须是字符串，value 可以是合法的 JSON 数据类型（字符串, 数字, 对象, 数组, 布尔值或 null）。 
key 和 value 中使用冒号(:)分割。 
每个 key/value 对使用逗号(,)分割。

**eg:**var myjson=...]]></description><category></category></item><item><title><![CDATA[前端知识点]]></title><link>https://blog.youkuaiyun.com/ACMer_ZP/article/details/79269599</link><guid>https://blog.youkuaiyun.com/ACMer_ZP/article/details/79269599</guid><author>ACMer_ZP</author><pubDate>Tue, 06 Feb 2018 13:16:57 +0800</pubDate><description><![CDATA[1.不让用户选取内容 
在不想让用户选取的容器css中添加以下代码 
    -webkit-user-select:none; 
    -moz-user-select:none; 
    -ms-user-select:none; 
    user-select:none;]]></description><category></category></item><item><title><![CDATA[ACM生涯总结]]></title><link>https://blog.youkuaiyun.com/ACMer_ZP/article/details/78759213</link><guid>https://blog.youkuaiyun.com/ACMer_ZP/article/details/78759213</guid><author>ACMer_ZP</author><pubDate>Sat, 09 Dec 2017 14:50:58 +0800</pubDate><description><![CDATA[1.关于个人    两年半的时间里，经历了大大小小许多场比赛，有的好，有的不好，有的打出了真正的实力，而有的因为小失误而错失了奖牌。两年前的这个时候估计我还是再iava工作室，因为举办省赛的时候在大一中选拔，我没有被选上，而又因为我根本没有3个人的完整的队伍，我看不到继续下去有什么希望，因为我当时认为，如果不能出去比赛拿到奖牌，那么所有的努力都将是白费的，毕竟3年来什么成果都没有根本就没有办法承受，]]></description><category></category></item><item><title><![CDATA[最小点覆盖，最小边覆盖，最大匹配，最小路径覆盖，最大独立集总结。]]></title><link>https://blog.youkuaiyun.com/ACMer_ZP/article/details/78570926</link><guid>https://blog.youkuaiyun.com/ACMer_ZP/article/details/78570926</guid><author>ACMer_ZP</author><pubDate>Sat, 18 Nov 2017 20:17:37 +0800</pubDate><description><![CDATA[如果没有申明是什么图默认是二分图最小点覆盖：点覆盖的概念定义： 
对于图G=(V,E)中的一个点覆盖是一个集合S⊆V使得每一条边至少有一个端点在S中。最小点覆盖：就是中点的个数最少的S集合。 
普通图的最小点覆盖数好像只能用搜索解，没有什么比较好的方法（可能我比较弱。。）所以在此只讨论二分图的最小点覆盖的求法结论： 二分图的最小点覆盖数=该二分图的最大匹配数，具体证明的方法看大佬博客，里面还给出了如]]></description><category></category></item><item><title><![CDATA[容斥或欧拉（hdu 5514）]]></title><link>https://blog.youkuaiyun.com/ACMer_ZP/article/details/78219257</link><guid>https://blog.youkuaiyun.com/ACMer_ZP/article/details/78219257</guid><author>ACMer_ZP</author><pubDate>Thu, 12 Oct 2017 20:17:46 +0800</pubDate><description><![CDATA[传送门 
题意:给定n个青蛙，每一个青蛙的步长是ai，可以无限次跳，总共有m块石头，编号从0~m-1,围成一个圆，刚开始所有的青蛙都在0号石头上，青蛙跳到的石头都被占据，问被占据的所有的石头的编号和时多少。 
思路:假如a是一只青蛙的步长，则a*k是它可能走的所有情况（k为正整数），a*k%m的所有值就是这只青蛙你能跳到的所有石头，但是这样根本就求不出来，(a*k+b*m)%m的值和上面的值是相同的]]></description><category></category></item><item><title><![CDATA[母函数]]></title><link>https://blog.youkuaiyun.com/ACMer_ZP/article/details/78150261</link><guid>https://blog.youkuaiyun.com/ACMer_ZP/article/details/78150261</guid><author>ACMer_ZP</author><pubDate>Mon, 02 Oct 2017 11:08:32 +0800</pubDate><description><![CDATA[hdu 1208 
题意:给定n求将n进行整数划分的种类数。 
思路:母函数。 
什么是母函数呢？前面那个链接已经讲的很清楚了，不过有点理论化，可以看看这篇博客比较接地气。 
我个人的理解就是将每一个东西能提供的价值看作是一个一元多项式的系数，然后将所有东西的一元多项式乘起来，然后系数就代表的就是组成系数的方案数有多少种。 
普通型母函数#include<cstdio>
#include<cstri]]></description><category></category></item><item><title><![CDATA[tarjan(hdu 5934)]]></title><link>https://blog.youkuaiyun.com/ACMer_ZP/article/details/78144840</link><guid>https://blog.youkuaiyun.com/ACMer_ZP/article/details/78144840</guid><author>ACMer_ZP</author><pubDate>Sat, 30 Sep 2017 18:59:42 +0800</pubDate><description><![CDATA[题目链接 
题意:给n个炸弹的坐标和爆炸半径，引爆代价。当另一个炸弹在一个炸弹的爆炸范围之内，则这个炸弹也会爆炸。求让所有炸弹爆炸的最小花费。 
思路:根据炸弹之间的关系建图，比如a能引爆b就在a到b建立一条有向边。然后将图缩点，然后统计入度为0的点的爆炸代价，累加就是结果。 
同一个强联通分量里面的点取价值最小的那个引爆，入度不为0的点肯定能由其他入度为0的点到达。#include<iostrea]]></description><category></category></item><item><title><![CDATA[中国剩余定理]]></title><link>https://blog.youkuaiyun.com/ACMer_ZP/article/details/78128162</link><guid>https://blog.youkuaiyun.com/ACMer_ZP/article/details/78128162</guid><author>ACMer_ZP</author><pubDate>Thu, 28 Sep 2017 21:08:12 +0800</pubDate><description><![CDATA[poj 2891 
大佬博客#include<cstdio>
#include<cstring>
#include<cmath>
#include<queue>
#include<iostream>
#include<algorithm>
#define LL long long
using namespace std;
const int maxn=4e6+10;
const int inf=0x]]></description><category></category></item><item><title><![CDATA[树的点分治]]></title><link>https://blog.youkuaiyun.com/ACMer_ZP/article/details/78116938</link><guid>https://blog.youkuaiyun.com/ACMer_ZP/article/details/78116938</guid><author>ACMer_ZP</author><pubDate>Wed, 27 Sep 2017 20:36:16 +0800</pubDate><description><![CDATA[poj 1741 
题意:给定n个点的一棵树，还有一个k值，问树上任意两节点之间距离小于等于k的有多少对。 
思路:先将无根树转化为有根树，可以统计出来每个点到达根的距离，然后就可以将所有的节点深度排序，可以O(n)计算出满足题意的有多少种。 
但是这样包含在同一棵子树中的两个节点的贡献值，而且还漏掉了在同一颗子树的两个节点的贡献，因为这样算的是通过根的距离，所以我们就可以将所有的情况都计算出来，然]]></description><category></category></item><item><title><![CDATA[后缀自动机]]></title><link>https://blog.youkuaiyun.com/ACMer_ZP/article/details/78055005</link><guid>https://blog.youkuaiyun.com/ACMer_ZP/article/details/78055005</guid><author>ACMer_ZP</author><pubDate>Thu, 21 Sep 2017 17:51:55 +0800</pubDate><description><![CDATA[clj大佬论文 
自己对于后缀自动机的理解：每一个节点代表的是具有相同的right集合的子串(right集合的定义具体去看clj大佬的论文),整个最后构成的有向无环图，可以看成是一棵树，step[i]代表的是right[i]中子串的最长长度也就是论文中所说的Max(i),pre[i]代表的是i节点在树中的父节点，这里和AC自动机里的fail指针有点类似，往上找就相当于找到的是当前串的后缀在SAM中出]]></description><category></category></item><item><title><![CDATA[树链剖分]]></title><link>https://blog.youkuaiyun.com/ACMer_ZP/article/details/77895859</link><guid>https://blog.youkuaiyun.com/ACMer_ZP/article/details/77895859</guid><author>ACMer_ZP</author><pubDate>Fri, 08 Sep 2017 16:01:04 +0800</pubDate><description><![CDATA[题目链接 
题意:给定一颗树，树上每一个节点都有一个权值，然后有q次查询， 
I a b c           a节点和b节点之间的路径上的点的权值加上c 
D a b c         a节点和b节点之间的路径上的点的权值减上c 
Q a               查询a节点的权值。 
树链剖分是将树按照重链分成许多链，变成一个线性结构，这样就可以直接用线段树等数据结构处理了，每两个点之间链]]></description><category></category></item><item><title><![CDATA[hdu 6156（数位dp）]]></title><link>https://blog.youkuaiyun.com/ACMer_ZP/article/details/77506580</link><guid>https://blog.youkuaiyun.com/ACMer_ZP/article/details/77506580</guid><author>ACMer_ZP</author><pubDate>Wed, 23 Aug 2017 15:27:39 +0800</pubDate><description><![CDATA[题目链接 
题意:定义了一个f函数f(n,k)=k(如果数字n在k进制下是回文数字)否则的话f(n,k)=1。然后问在区间[L,R]之内进制在l到r之间的f函数的所有所有值之和是多少。 
思路:因为进制比较小所以可以直接枚举进制然后再进行数位dp计算结果。#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>]]></description><category></category></item><item><title><![CDATA[hdu 6143]]></title><link>https://blog.youkuaiyun.com/ACMer_ZP/article/details/77367258</link><guid>https://blog.youkuaiyun.com/ACMer_ZP/article/details/77367258</guid><author>ACMer_ZP</author><pubDate>Fri, 18 Aug 2017 11:08:36 +0800</pubDate><description><![CDATA[题目链接 
题意:给定m个不同的字符，然后每个人名有姓和名两部分，长度都为n。问这姓名不同且姓和名不能有相同字符的人最多有多少种。 
思路:我们可以枚举姓中的字符个数当姓的字符个数定了之后，名的选法就可以选剩下的全部字母了，然后方法有(m−i)n(m-i)^n,当姓不同时，不管名一样不一样，这两个都不是同一个名字。当枚举姓的字符数的时，当字符数为2时，方法不能是2n2^n因为这样会有全选1中字符的情]]></description><category></category></item><item><title><![CDATA[hdu 6109(并查集+set)]]></title><link>https://blog.youkuaiyun.com/ACMer_ZP/article/details/77184590</link><guid>https://blog.youkuaiyun.com/ACMer_ZP/article/details/77184590</guid><author>ACMer_ZP</author><pubDate>Tue, 15 Aug 2017 10:29:46 +0800</pubDate><description><![CDATA[hdu 6109 
思路:尽量让多的条件满足，当有一个条件和前面的冲突时，就是分隔符的时候，用并查集维护相同的数，set维护不同的数。当当两个数在同一个并查集中时代表两个数相同，不在同一个并查集是说明两个数可能相同也可能不同。当a在b的set中时代表b和a不相同。所以当我们每次判断两个数是否相同时先找并查集，并且要顺带更新set因为a==b，b\neq c，所以a\neq c但是这样每次更新一个并查]]></description><category></category></item><item><title><![CDATA[高斯消元]]></title><link>https://blog.youkuaiyun.com/ACMer_ZP/article/details/77113147</link><guid>https://blog.youkuaiyun.com/ACMer_ZP/article/details/77113147</guid><author>ACMer_ZP</author><pubDate>Sat, 12 Aug 2017 11:21:59 +0800</pubDate><description><![CDATA[#include<cstdio>
#include<cstring>
#include<ctime>
#include<map>
#include<iostream>
#include<algorithm>
#define LL long long
using namespace std;
const int maxn=300;
const int inf=0x3f3f3f3f;
int equ,v]]></description><category></category></item><item><title><![CDATA[bitset(hdu 6085)]]></title><link>https://blog.youkuaiyun.com/ACMer_ZP/article/details/77100030</link><guid>https://blog.youkuaiyun.com/ACMer_ZP/article/details/77100030</guid><author>ACMer_ZP</author><pubDate>Fri, 11 Aug 2017 16:44:17 +0800</pubDate><description><![CDATA[题意:给定两个数组a和b然后q次询问，输出ai%bi==k的个数的奇偶性。 
思路:可以转化为给a数组每个都减去k求(ai-k)%bi==0的有多少个，又因为只有当bi>k时才会有结果所以可以预处理处所有的答案为k的结果最后O(1)输出就好了。枚举k然后从大到小枚举bi每次都将bi的倍数统计出来 
然后每次就可以算出(ai-k)%bi==0的有多少个了，具体的看代码和注释。 
这里有一个关于bits]]></description><category></category></item><item><title><![CDATA[pollard_rho(大数质因子分解)]]></title><link>https://blog.youkuaiyun.com/ACMer_ZP/article/details/76864671</link><guid>https://blog.youkuaiyun.com/ACMer_ZP/article/details/76864671</guid><author>ACMer_ZP</author><pubDate>Tue, 08 Aug 2017 08:42:31 +0800</pubDate><description><![CDATA[poj 1811 
题意:判断一个数是不是素数，是的话输出prime否则的话输出这个数的最小素因子。 
大佬博客 
hdu 4344 
题意:给出一个长为n（n小于2^63）的管子，现在要在管子上做标记，每隔L个长度单位做一个标记，从管子头端开始，保证最后一次标记恰好在管子的尾端。让你找出有多少个这样的L(n>L)，且他们之间两两互素，然后求出这些L的和最大值。 
思路:首先可以想到L肯定是n的因子]]></description><category></category></item><item><title><![CDATA[欧拉函数]]></title><link>https://blog.youkuaiyun.com/ACMer_ZP/article/details/76855030</link><guid>https://blog.youkuaiyun.com/ACMer_ZP/article/details/76855030</guid><author>ACMer_ZP</author><pubDate>Mon, 07 Aug 2017 18:01:30 +0800</pubDate><description><![CDATA[这里面有详细的解释/*线性筛O(n)时间复杂度内筛出maxn内欧拉函数值*/
int m[maxn],phi[maxn],p[maxn],pt;//m[i]是i的最小素因数，p是素数表，pt是素数个数，phi[i]是i的欧拉函数
int make()
{
    phi[1]=1;
    int k;
    for(int i=2;i<maxn;i++)
    {
        if(!m[]]></description><category></category></item><item><title><![CDATA[Miller-Rabin随机性素数测试算法]]></title><link>https://blog.youkuaiyun.com/ACMer_ZP/article/details/76854293</link><guid>https://blog.youkuaiyun.com/ACMer_ZP/article/details/76854293</guid><author>ACMer_ZP</author><pubDate>Mon, 07 Aug 2017 17:40:44 +0800</pubDate><description><![CDATA[大佬博客 
个人比较菜会用板子就好了。 
送上例题hdu 2138 
虽然暴力可以过但是还是用来学算法吧。#include<cstdio>
#include<cstring>
#include<ctime>
#include<iostream>
#include<algorithm>
#define LL long long
using namespace std;
const int maxn=1]]></description><category></category></item></channel></rss>