<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Lazier’s blog]]></title><description><![CDATA[物生心，心映物，如此纷纷扰扰.]]></description><link>https://blog.youkuaiyun.com/laziercs</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; laziercs]]></copyright><item><title><![CDATA[表达式求值]]></title><link>https://blog.youkuaiyun.com/laziercs/article/details/12354565</link><guid>https://blog.youkuaiyun.com/laziercs/article/details/12354565</guid><author>laziercs</author><pubDate>Sun, 06 Oct 2013 18:10:55 +0800</pubDate><description><![CDATA[#include
#include
#include
#include
#include
#include
using namespace std;


template
class expCal{
    public:
    expCal(){ expMid.clear();expSuffix.clear();}
    expCal(string s){
        expCal();]]></description><category></category></item><item><title><![CDATA[其他的资料连接]]></title><link>https://blog.youkuaiyun.com/laziercs/article/details/11727579</link><guid>https://blog.youkuaiyun.com/laziercs/article/details/11727579</guid><author>laziercs</author><pubDate>Mon, 16 Sep 2013 11:44:19 +0800</pubDate><description><![CDATA[搜索引擎简介：点击打开链接]]></description><category></category></item><item><title><![CDATA[hdu 4686 （等比解法）]]></title><link>https://blog.youkuaiyun.com/laziercs/article/details/10177881</link><guid>https://blog.youkuaiyun.com/laziercs/article/details/10177881</guid><author>laziercs</author><pubDate>Thu, 22 Aug 2013 12:53:38 +0800</pubDate><description><![CDATA[这题的正解是矩阵快速幂，但是在比赛的时候没有构造出矩阵，然后直接用数学的方法把这题ac了，方法如下：


可以得出an和bn都是类等比数列，类等比数列暂且定义为等比数列之间的加减乘除组合后的数列，an,bn如下：
an=A0*Ax^n+Ay*(Ax^(n-1)+Ax^(n-2)+......+Ax^1+Ax^0).(n>=1)
bn=B0*Bx^n+By*(Bx^(n-1)+Bx^(n-]]></description><category></category></item><item><title><![CDATA[hdu 4680(splay tree)]]></title><link>https://blog.youkuaiyun.com/laziercs/article/details/10033069</link><guid>https://blog.youkuaiyun.com/laziercs/article/details/10033069</guid><author>laziercs</author><pubDate>Sat, 17 Aug 2013 19:29:24 +0800</pubDate><description><![CDATA[解题思路：
   第一种操作，用小集合暴力插入到大集合，可以证明总的时间复杂度O(n*logn);
   第二种和第三种操作，每次操作O(logn)
   第四种操作，因为任意3个数不能组成一个三角型，则就是长边大于剩下的两边之和，和斐波那契数列类似，
   所以对于10^9的数据范围来说只有几十个，用贪心的思路，从最小的开始，暴力二分查找即可。
   第五种操作，因为一个区间的gcd值]]></description><category></category></item><item><title><![CDATA[hdu 4667（几何）]]></title><link>https://blog.youkuaiyun.com/laziercs/article/details/9981729</link><guid>https://blog.youkuaiyun.com/laziercs/article/details/9981729</guid><author>laziercs</author><pubDate>Thu, 15 Aug 2013 13:15:39 +0800</pubDate><description><![CDATA[解题思路：求出所有可能在外围的点。也就是将两圆两两求外公切线，得到所有的切点；将圆和三角形的三个点依次做切线，
也得到切点，再加上所有三角形的三个点。最后对这些点求凸包，对于凸包上的每条边，如果它们在同一个圆上，用相应的圆弧替代。


#include
#include
#include
#include
#include
#include
#include
#include
#inclu]]></description><category></category></item><item><title><![CDATA[hdu 3547(Polya计数)]]></title><link>https://blog.youkuaiyun.com/laziercs/article/details/9946587</link><guid>https://blog.youkuaiyun.com/laziercs/article/details/9946587</guid><author>laziercs</author><pubDate>Tue, 13 Aug 2013 13:20:34 +0800</pubDate><description><![CDATA[//根据Polya计数的原理，我们先要求出每个置换群中的循环的个数
//这里有24个置换群，为什么是24个了，很容易想到，把每一个面当作正面并按一个方向（顺时针或逆时针）旋转4次，总共6个面，所以就是24个置换群了；
//我们可以先对立方体的8个顶点编号，然后就可以暴力预处理出24置换群的循环个数了，最后就是用Polya的计数公式计数了,代码如下：


#include
#include]]></description><category></category></item><item><title><![CDATA[自己实现用FFT加速多项式计算]]></title><link>https://blog.youkuaiyun.com/laziercs/article/details/9925555</link><guid>https://blog.youkuaiyun.com/laziercs/article/details/9925555</guid><author>laziercs</author><pubDate>Mon, 12 Aug 2013 14:45:42 +0800</pubDate><description><![CDATA[/*
 * FFT之所以能加速DFT的计算，得益于n次单位复数根的几个性质：
 * 1.消去引理  w(d*n,d*k)=w(n,k);
 * 1.折半引理  w(n,k)^2=w(n/2,k)；
 * 2.求和引理，即：sum{w(n,k)^j}=0 (0
 * 详见：算法导论第30章，p527～p535
*/
#include
#include
#include
#include]]></description><category></category></item><item><title><![CDATA[hdu 4622(后缀自动机｜后缀数组)]]></title><link>https://blog.youkuaiyun.com/laziercs/article/details/9669747</link><guid>https://blog.youkuaiyun.com/laziercs/article/details/9669747</guid><author>laziercs</author><pubDate>Wed, 31 Jul 2013 16:37:03 +0800</pubDate><description><![CDATA[//昨天晚上一直用后缀数组来写，怎么写都超时，今天看了多校3的官方解题，然来是卡常数；
//今天上午就去学习了缀自动机（以前没有主动去学后缀自动机，以为后缀自动机能解的，后缀数组都能解，这次尝到了苦头）；
//这题官方解题说可以O(n^2)+O(1),可是我写的后缀自动机时间复杂度还是O(n*q),因为每次计算字串的个数的还是把所有的step遍历了的一遍，但是没事重新建树，建树的常数小了一些；]]></description><category></category></item><item><title><![CDATA[zoj 题型分类]]></title><link>https://blog.youkuaiyun.com/laziercs/article/details/9492365</link><guid>https://blog.youkuaiyun.com/laziercs/article/details/9492365</guid><author>laziercs</author><pubDate>Fri, 26 Jul 2013 10:17:58 +0800</pubDate><description><![CDATA[简单题
#1001 -____-b  A+B。
#1110 Dick and Jane 胡乱枚举收缩一下情况就可以了。
#1115 a[i+1] = a[i] 的全部数位上的加起来，直到剩下一个，直接模拟。
#1414 太弱太弱，按照模 4 分类讨论一下即可。
#1713 简单的字符串截取和字符计数。
#1716 简单的二维数组区间求和，作累加，然后容斥一下；预处理 O(W*H)，查询]]></description><category></category></item><item><title><![CDATA[图论知识点记录]]></title><link>https://blog.youkuaiyun.com/laziercs/article/details/9419803</link><guid>https://blog.youkuaiyun.com/laziercs/article/details/9419803</guid><author>laziercs</author><pubDate>Tue, 23 Jul 2013 11:30:49 +0800</pubDate><description><![CDATA[//此知识点记录一下





学习的思路：比较经典的题目了，首先按照边权分离边，从小到大添加进树中，可以知道相同边权的边形成的联通分支是一样的，所以在上一次操作存留下来的图中对每种边权先求一次生成树，记录哪些联通分支被连起来了，再按照这些联通分支进行构图，求这个图中不同的生成树的个数，这一步按照Kirchhoff定理求幺模矩阵的秩就可以了



原博客：http://hi.b]]></description><category></category></item><item><title><![CDATA[hdu 湫秋系列故事——安排座位(组合dp)]]></title><link>https://blog.youkuaiyun.com/laziercs/article/details/9410639</link><guid>https://blog.youkuaiyun.com/laziercs/article/details/9410639</guid><author>laziercs</author><pubDate>Mon, 22 Jul 2013 16:29:15 +0800</pubDate><description><![CDATA[/*
 * 以前比赛的时候做这题，一点思路都没有，后面就放了放；
 * 
 * 今天突然想来弄下这题，于是去拜访了大牛的博客，了解到了组合dp的解法
 * 
 * 解法如下： 首先我们令F[i][j]表示前i个系的所有学生坐在座位上，出现了j对相邻学生是同一个系的
 * 
 * 那么对于接下来一个系的a个学生，我们可以把这个系的学生插入前面出现的j对相邻学生的中间，从而使他们变得不相]]></description><category></category></item><item><title><![CDATA[hdu 3939 (Sticks and Right Triangle)]]></title><link>https://blog.youkuaiyun.com/laziercs/article/details/9407869</link><guid>https://blog.youkuaiyun.com/laziercs/article/details/9407869</guid><author>laziercs</author><pubDate>Mon, 22 Jul 2013 13:29:06 +0800</pubDate><description><![CDATA[//数论（勾股数组相关），在acdream 群里看到的


实现代码如下：
#include
#include
#include
#include
using namespace std;


vector fac[1000001];
int prime[100000],phi[1000001],m;

void init(){    //预处理phi[]
    int i,j; m=0]]></description><category></category></item><item><title><![CDATA[几何代码总结]]></title><link>https://blog.youkuaiyun.com/laziercs/article/details/9314895</link><guid>https://blog.youkuaiyun.com/laziercs/article/details/9314895</guid><author>laziercs</author><pubDate>Fri, 12 Jul 2013 20:21:26 +0800</pubDate><description><![CDATA[struct Point{
    int x,y;
    Point(int a=0,int b=0):x(a),y(b){}
};

Point operator-(Point a,Point b){ return Point(a.x-b.x,a.y-b.y); }
Point operator+(Point a,Point b){ return Point(a.x+b.x,a.y+b.y)]]></description><category></category></item><item><title><![CDATA[zoj 1030 (dfs+几何)]]></title><link>https://blog.youkuaiyun.com/laziercs/article/details/9314807</link><guid>https://blog.youkuaiyun.com/laziercs/article/details/9314807</guid><author>laziercs</author><pubDate>Fri, 12 Jul 2013 20:04:15 +0800</pubDate><description><![CDATA[//从每一个点开始，向某一个几何方向dfs搜索几何圈，然后判断几何圈里有没有其他的点，再把几何圈去重就是答案，O(n^3).
#include
#include
#include
#include
#include
#include

using namespace std;

struct Point{
    int x,y;
    Point(int a=0,int b=0):x(a),]]></description><category></category></item><item><title><![CDATA[hdu 1625(flyd判正环)]]></title><link>https://blog.youkuaiyun.com/laziercs/article/details/9304317</link><guid>https://blog.youkuaiyun.com/laziercs/article/details/9304317</guid><author>laziercs</author><pubDate>Thu, 11 Jul 2013 21:05:23 +0800</pubDate><description><![CDATA[//自己能到自己，则表示这个点在环上；


#include
#include
#include
using namespace std;

int mat[31][31],n,m;
int main()
{
    int a,b,i,j,k,cas=0;
    while(scanf("%d",&m)!=EOF)
    {
        memset(mat,0,sizeof(ma]]></description><category></category></item><item><title><![CDATA[hdu 3666 THE MATRIX PROBLEM(判负环)]]></title><link>https://blog.youkuaiyun.com/laziercs/article/details/9293925</link><guid>https://blog.youkuaiyun.com/laziercs/article/details/9293925</guid><author>laziercs</author><pubDate>Wed, 10 Jul 2013 19:29:28 +0800</pubDate><description><![CDATA[解题思路：
(U,L,mat[i][j])>0;
因为题目要判定 L
因为减号具有传递性（比如a-b=5,b-c=5由传递性得a-c=10），因为图即具有传递性（可以求出一颗最短路径树的图），又具有矛盾性（负环，下面会详细介绍），我们就可以把它抽象成图来判定判定负环
log(ai)-log(bj)

log(L/mat[i][j])=-log(U/mat[i][j])；


如果]]></description><category></category></item><item><title><![CDATA[CodeforcesRound#191(Div.2)]]></title><link>https://blog.youkuaiyun.com/laziercs/article/details/9249999</link><guid>https://blog.youkuaiyun.com/laziercs/article/details/9249999</guid><author>laziercs</author><pubDate>Fri, 05 Jul 2013 11:10:00 +0800</pubDate><description><![CDATA[A题：直接枚举
#include
#include

int A[110],c[110];
int main()
{
	int n,i,j,ans,sum,x;
	while(scanf("%d",&n)!=EOF){
		sum=x=0;
		memset(c,0,sizeof(c));
		for(i=1;i<=n;i++) scanf("%d",&A[i]);
		f]]></description><category></category></item><item><title><![CDATA[ACM-ICPC 2013 World Finals 简单题解]]></title><link>https://blog.youkuaiyun.com/laziercs/article/details/9247611</link><guid>https://blog.youkuaiyun.com/laziercs/article/details/9247611</guid><author>laziercs</author><pubDate>Thu, 04 Jul 2013 23:23:20 +0800</pubDate><description><![CDATA[原博客地址：http://jiazhipeng.byethost7.com/archives/268]]></description><category></category></item><item><title><![CDATA[hdu 4328 (悬线法+dp)]]></title><link>https://blog.youkuaiyun.com/laziercs/article/details/9224413</link><guid>https://blog.youkuaiyun.com/laziercs/article/details/9224413</guid><author>laziercs</author><pubDate>Tue, 02 Jul 2013 14:10:46 +0800</pubDate><description><![CDATA[悬线法用于求解最大子矩阵问题，资料详见：这篇论文
对于red-and-blue crisscross 方阵可以用dp，既可以用合并两个小方阵得到一个大方阵，合并过程如下图：
 

我们可以把两个绿色的3*3小方阵合成一个4*4大方阵，只要符合color[i][j]!=color[i-1][j]&&color[i][j]!=color[i][j-1]&&color[i][j]==color[]]></description><category></category></item><item><title><![CDATA[hdu 4483(数论)]]></title><link>https://blog.youkuaiyun.com/laziercs/article/details/9209991</link><guid>https://blog.youkuaiyun.com/laziercs/article/details/9209991</guid><author>laziercs</author><pubDate>Sun, 30 Jun 2013 23:06:18 +0800</pubDate><description><![CDATA[/*
  这是一个经典的题目，以前遇到n范围都比较就小，可以直接枚举每一个长方形的两个对角点，最后答案就是
  C(n*n,3)-2*n*C(n,3)-2*sum{sum{(n+1-i)*(n+1-j)*(gcd(i,j)-1)}}(1
  
  然而这题的n范围比较大，直接枚举肯定不行，但是我们可以优化上面的这个公式；
  
  第一次看到这题的时候，不会优化，到后面我做了下uva1]]></description><category></category></item></channel></rss>