<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[fan233的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/fan233</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fan233]]></copyright><item><title><![CDATA[NOIP2017 D1游记]]></title><link>https://blog.youkuaiyun.com/fan233/article/details/78505922</link><guid>https://blog.youkuaiyun.com/fan233/article/details/78505922</guid><author>fan233</author><pubDate>Sat, 11 Nov 2017 12:59:17 +0800</pubDate><description><![CDATA[光棍节打NOIP。。。
T1 
有毒的T1。第一眼看去以为扩欧或者什么数论。。
看了一会儿没什么想法就先过了。
后来回头打了暴力。。。
出来以后就跟我说T1规律ans=n*m-n-m。。
当时心态瞬间爆炸。。。完了呀。。
T2
大模拟。感觉过了两个样例也不是很确定。。
看了一会儿也看不出什么名堂。
就这么交了。。。
T3
看看时间不够。。先打了个暴力。。
完了一看数据范围]]></description><category></category></item><item><title><![CDATA[洛谷P1270 树形DP]]></title><link>https://blog.youkuaiyun.com/fan233/article/details/78500783</link><guid>https://blog.youkuaiyun.com/fan233/article/details/78500783</guid><author>fan233</author><pubDate>Fri, 10 Nov 2017 16:05:53 +0800</pubDate><description><![CDATA[题目描述

经过数月的精心准备，Peer Brelstet，一个出了名的盗画者，准备开始他的下一个行动。艺术馆的结构，每条走廊要么分叉为两条走廊，要么通向一个展览室。Peer知道每个展室里藏画的数量，并且他精确测量了通过每条走廊的时间。由于经验老到，他拿下一幅画需要5秒的时间。你的任务是编一个程序，计算在警察赶来之前，他最多能偷到多少幅画。



输入输出格式
输入格式：


]]></description><category></category></item><item><title><![CDATA[hihocoder1014 trie树模板]]></title><link>https://blog.youkuaiyun.com/fan233/article/details/78443633</link><guid>https://blog.youkuaiyun.com/fan233/article/details/78443633</guid><author>fan233</author><pubDate>Sat, 04 Nov 2017 15:06:25 +0800</pubDate><description><![CDATA[描述

小Hi和小Ho是一对好朋友，出生在信息化社会的他们对编程产生了莫大的兴趣，他们约定好互相帮助，在编程的学习道路上一同前进。

这一天，他们遇到了一本词典，于是小Hi就向小Ho提出了那个经典的问题：“小Ho，你能不能对于每一个我给出的字符串，都在这个词典里面找到以这个字符串开头的所有单词呢？”

身经百战的小Ho答道：“怎么会不能呢！你每给我一个字符串，我就依次遍历词典里的所有单]]></description><category></category></item><item><title><![CDATA[常用模板1]]></title><link>https://blog.youkuaiyun.com/fan233/article/details/78396889</link><guid>https://blog.youkuaiyun.com/fan233/article/details/78396889</guid><author>fan233</author><pubDate>Mon, 30 Oct 2017 20:18:55 +0800</pubDate><description><![CDATA[1.最小生成树
这里给出克鲁斯卡尔的板子。
#include
#include
using namespace std;
int n,m,fa[5001];
struct edge{
	int x,y,z;
	bool operator z;}
}a[200001];
int getfa(int x){return x==fa[x]?x:fa[x]=getfa(fa[x]);}
int mai]]></description><category></category></item><item><title><![CDATA[LCA模板]]></title><link>https://blog.youkuaiyun.com/fan233/article/details/78378120</link><guid>https://blog.youkuaiyun.com/fan233/article/details/78378120</guid><author>fan233</author><pubDate>Sat, 28 Oct 2017 18:39:16 +0800</pubDate><description><![CDATA[题目描述

如题，给定一棵有根多叉树，请求出指定两个点直接最近的公共祖先。

输入输出格式
输入格式：



第一行包含三个正整数N、M、S，分别表示树的结点个数、询问的个数和树根结点的序号。

接下来N-1行每行包含两个正整数x、y，表示x结点和y结点之间有一条直接连接的边（数据保证可以构成树）。

接下来M行每行包含两个正整数a、b，表示询问a结点和b结点的最近公共祖]]></description><category></category></item><item><title><![CDATA[双lazytag线段树板子]]></title><link>https://blog.youkuaiyun.com/fan233/article/details/78369037</link><guid>https://blog.youkuaiyun.com/fan233/article/details/78369037</guid><author>fan233</author><pubDate>Fri, 27 Oct 2017 20:55:14 +0800</pubDate><description><![CDATA[题目描述

如题，已知一个数列，你需要进行下面两种操作：

1.将某区间每一个数加上x

2.将某区间每一个数乘上x

3.求出某区间每一个数的和

输入输出格式
输入格式：



第一行包含三个整数N、M、P，分别表示该数列数字的个数、操作的总个数和模数。

第二行包含N个用空格分隔的整数，其中第i个数字表示数列第i项的初始值。

接下来M行每行包含3或4个]]></description><category></category></item><item><title><![CDATA[51nod 1202 dp]]></title><link>https://blog.youkuaiyun.com/fan233/article/details/78346140</link><guid>https://blog.youkuaiyun.com/fan233/article/details/78346140</guid><author>fan233</author><pubDate>Wed, 25 Oct 2017 20:24:51 +0800</pubDate><description><![CDATA[子序列的定义：对于一个序列a=a[1],a[2],......a[n]。则非空序列a'=a[p1],a[p2]......a[pm]为a的一个子序列，其中1
例如4,14,2,3和14,1,2,3都为4,13,14,1,2,3的子序列。对于给出序列a，有些子序列可能是相同的，这里只算做1个，请输出a的不同子序列的数量。由于答案比较大，输出Mod 10^9 + 7的结果即可。




]]></description><category></category></item><item><title><![CDATA[bzoj1878 莫队]]></title><link>https://blog.youkuaiyun.com/fan233/article/details/78334881</link><guid>https://blog.youkuaiyun.com/fan233/article/details/78334881</guid><author>fan233</author><pubDate>Tue, 24 Oct 2017 21:20:57 +0800</pubDate><description><![CDATA[Description

HH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运，所以每次散步 完后，他都会随意取出一
段贝壳，思考它们所表达的含义。HH不断地收集新的贝壳，因此他的项链变得越来越长。有一天，他突然提出了一
个问题：某一段贝壳中，包含了多少种不同的贝壳？这个问题很难回答。。。因为项链实在是太长了。于是，他只
好求助睿智的你，来解决这个问题。

Input]]></description><category></category></item><item><title><![CDATA[强连通分量模板]]></title><link>https://blog.youkuaiyun.com/fan233/article/details/78323213</link><guid>https://blog.youkuaiyun.com/fan233/article/details/78323213</guid><author>fan233</author><pubDate>Mon, 23 Oct 2017 20:53:55 +0800</pubDate><description><![CDATA[【题目描述】
   给出一个有向图有n个点和m条有向边，输出连通分量的数量。
 概念：
  1. 什么是连通分量？
  答：一个有向图中，选出某些点组成一个团体，这个团体中的任意两点都可互相到达。那么：选出来的这些点+这些点之间原有的边=叫做 连通分量。
  2. 只适合有向图
  答：如果是无向图，那么并查集就可以解决了（还记得“家族”吗？）
 附加1：什么是强连通图？
 答：如]]></description><category></category></item><item><title><![CDATA[hihocoder 1174 拓扑排序模板]]></title><link>https://blog.youkuaiyun.com/fan233/article/details/78322865</link><guid>https://blog.youkuaiyun.com/fan233/article/details/78322865</guid><author>fan233</author><pubDate>Mon, 23 Oct 2017 20:23:55 +0800</pubDate><description><![CDATA[描述

由于今天上课的老师讲的特别无聊，小Hi和小Ho偷偷地聊了起来。

小Ho：小Hi，你这学期有选什么课么？

小Hi：挺多的，比如XXX1,XXX2还有XXX3。本来想选YYY2的，但是好像没有先选过YYY1，不能选YYY2。

小Ho：先修课程真是个麻烦的东西呢。

小Hi：没错呢。好多课程都有先修课程，每次选课之前都得先查查有没有先修。教务公布的先修课程记录都是好多年]]></description><category></category></item><item><title><![CDATA[洛谷p1908 逆序对 归并排序]]></title><link>https://blog.youkuaiyun.com/fan233/article/details/78321824</link><guid>https://blog.youkuaiyun.com/fan233/article/details/78321824</guid><author>fan233</author><pubDate>Mon, 23 Oct 2017 18:49:00 +0800</pubDate><description><![CDATA[题目描述

猫猫TOM和小老鼠JERRY最近又较量上了，但是毕竟都是成年人，他们已经不喜欢再玩那种你追我赶的游戏，现在他们喜欢玩统计。最近，TOM老猫查阅到一个人类称之为“逆序对”的东西，这东西是这样定义的：对于给定的一段正整数序列，逆序对就是序列中ai>aj且i

输入输出格式
输入格式：



第一行，一个数n，表示序列中有n个数。

第二行n个数，表示给定的序列。
]]></description><category></category></item><item><title><![CDATA[KMP模板]]></title><link>https://blog.youkuaiyun.com/fan233/article/details/78313314</link><guid>https://blog.youkuaiyun.com/fan233/article/details/78313314</guid><author>fan233</author><pubDate>Sun, 22 Oct 2017 21:13:14 +0800</pubDate><description><![CDATA[描述

小Hi和小Ho是一对好朋友，出生在信息化社会的他们对编程产生了莫大的兴趣，他们约定好互相帮助，在编程的学习道路上一同前进。

这一天，他们遇到了一只河蟹，于是河蟹就向小Hi和小Ho提出了那个经典的问题：“小Hi和小Ho，你们能不能够判断一段文字（原串）里面是不是存在那么一些……特殊……的文字（模式串）？”

小Hi和小Ho仔细思考了一下，觉得只能想到很简单的做法，但是又觉得既然]]></description><category></category></item><item><title><![CDATA[二分图 最大匹配 入门题]]></title><link>https://blog.youkuaiyun.com/fan233/article/details/78296170</link><guid>https://blog.youkuaiyun.com/fan233/article/details/78296170</guid><author>fan233</author><pubDate>Fri, 20 Oct 2017 15:39:29 +0800</pubDate><description><![CDATA[【问题背景】
n只公牛和m只母牛，
某些公牛和某些母牛互相喜欢。
但最后一只公牛只能和一只母牛建立一对一匹配。
要使得最后牛群匹配对数最大。
【输入】
第一行三个整数n, m，k( 1
下来k行，每行两个整数 x，y，表示一条边，连接X集合中x点和Y集合的y点。
【输出】



只有一行。输出一个整数，表示牛群匹配对数最大值.
input:
5 5 9
1 2
2 ]]></description><category></category></item><item><title><![CDATA[模板线段树1]]></title><link>https://blog.youkuaiyun.com/fan233/article/details/78278215</link><guid>https://blog.youkuaiyun.com/fan233/article/details/78278215</guid><author>fan233</author><pubDate>Wed, 18 Oct 2017 21:34:22 +0800</pubDate><description><![CDATA[题目描述

如题，已知一个数列，你需要进行下面两种操作：

1.将某区间每一个数加上x

2.求出某区间每一个数的和

输入输出格式
输入格式：



第一行包含两个整数N、M，分别表示该数列数字的个数和操作的总个数。

第二行包含N个用空格分隔的整数，其中第i个数字表示数列第i项的初始值。

接下来M行每行包含3或4个整数，表示一个操作，具体如下：

操作1]]></description><category></category></item><item><title><![CDATA[codeforces round #441  D]]></title><link>https://blog.youkuaiyun.com/fan233/article/details/78260029</link><guid>https://blog.youkuaiyun.com/fan233/article/details/78260029</guid><author>fan233</author><pubDate>Tue, 17 Oct 2017 14:28:26 +0800</pubDate><description><![CDATA[D. Sorting the Coins


time limit per test
1 second


memory limit per test
512 megabytes


input
standard input


output
standard output



Recently, Dima met with Sasha in a phil]]></description><category></category></item><item><title><![CDATA[codeforeces  Round #441B]]></title><link>https://blog.youkuaiyun.com/fan233/article/details/78259930</link><guid>https://blog.youkuaiyun.com/fan233/article/details/78259930</guid><author>fan233</author><pubDate>Tue, 17 Oct 2017 14:21:53 +0800</pubDate><description><![CDATA[B. Divisiblity of Differences


time limit per test
1 second


memory limit per test
512 megabytes


input
standard input


output
standard output



You are given a multiset of n]]></description><category></category></item><item><title><![CDATA[51nod1605  博弈]]></title><link>https://blog.youkuaiyun.com/fan233/article/details/78244183</link><guid>https://blog.youkuaiyun.com/fan233/article/details/78244183</guid><author>fan233</author><pubDate>Sun, 15 Oct 2017 21:16:43 +0800</pubDate><description><![CDATA[上帝创造了一个n*m棋盘，每一个格子都只有可能是黑色或者白色的。

亚当和夏娃在玩一个游戏，每次寻找边长为x的正方形，其中每个格子必须为黑色，然后将这些格子染白。

如果谁不能操作了，那么那个人就输了。

亚当喜欢质数。

夏娃喜欢1，但讨厌2。

因此他们规定，x只有可能是非2质数或者是1。

现在他们想知道，如果他们都用最优策略进行游戏，谁会赢。

上帝规定亚当先手]]></description><category></category></item><item><title><![CDATA[51nod1366  floyd]]></title><link>https://blog.youkuaiyun.com/fan233/article/details/78243183</link><guid>https://blog.youkuaiyun.com/fan233/article/details/78243183</guid><author>fan233</author><pubDate>Sun, 15 Oct 2017 19:48:49 +0800</pubDate><description><![CDATA[一个国家有N个公民，标记为0,1,2，...，N-1，每个公民有一个存款额。已知每个公民有一些朋友，同时国家有一条规定朋友间的存款额之差不能大于d。也就是说，a和b是朋友的话，a有x元的存款，b有y元，那么|x-y|





Input
多组测试数据，第一行一个整数T，表示测试数据数量，1<=T<=5
每组测试数据有相同的结构构成。
每组数据的第一行两个整数N，d，表示人数与朋友间]]></description><category></category></item><item><title><![CDATA[caioj 1099 线段树]]></title><link>https://blog.youkuaiyun.com/fan233/article/details/78177270</link><guid>https://blog.youkuaiyun.com/fan233/article/details/78177270</guid><author>fan233</author><pubDate>Sun, 08 Oct 2017 20:39:10 +0800</pubDate><description><![CDATA[【题意】
给出N个数，两种操作：
1、C x y：修改第x个数的值为y；
2、P x y：求第x到第y个的最大值，注：x未必比y小
【输入格式】
第一行输入N和M（0
下来N个数
然后是M个操作。
【输出格式】
遇到P操作的时候，输出结果。
【样例输入】
5 6
1 2 3 4 5
P 1 5
C 3 6
P 3 4
P 4 5
C 2 9
P 1 5
【样例]]></description><category></category></item><item><title><![CDATA[luogu p1111 并查集]]></title><link>https://blog.youkuaiyun.com/fan233/article/details/78119252</link><guid>https://blog.youkuaiyun.com/fan233/article/details/78119252</guid><author>fan233</author><pubDate>Thu, 28 Sep 2017 08:43:30 +0800</pubDate><description><![CDATA[题目背景

A地区在地震过后，连接所有村庄的公路都造成了损坏而无法通车。政府派人修复这些公路。

题目描述

给出A地区的村庄数N，和公路数M，公路是双向的。并告诉你每条公路的连着哪两个村庄，并告诉你什么时候能修完这条公路。问最早什么时候任意两个村庄能够通车，即最早什么时候任意两条村庄都存在至少一条修复完成的道路（可以由多条公路连成一条道路）

输入输出格式
输入格式：

]]></description><category></category></item></channel></rss>