<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[细雨欣然]]></title><description><![CDATA[孤单是一个人的狂欢]]></description><link>https://blog.youkuaiyun.com/qq_35546274</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_35546274]]></copyright><item><title><![CDATA[kd-tree]]></title><link>https://blog.youkuaiyun.com/qq_35546274/article/details/103076781</link><guid>https://blog.youkuaiyun.com/qq_35546274/article/details/103076781</guid><author>qq_35546274</author><pubDate>Thu, 14 Nov 2019 23:33:11 +0800</pubDate><description><![CDATA[#include&lt;bits/stdc++.h&gt;
#define alpha (1.130/2)
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;

const int DEM=2;
const int maxn=1000010;
int n,m,now,ans,root,points;
queue&lt;...]]></description><category></category></item><item><title><![CDATA[半平面交]]></title><link>https://blog.youkuaiyun.com/qq_35546274/article/details/102866490</link><guid>https://blog.youkuaiyun.com/qq_35546274/article/details/102866490</guid><author>qq_35546274</author><pubDate>Fri, 01 Nov 2019 23:52:20 +0800</pubDate><description><![CDATA[#include &lt;cstdio&gt;
#include &lt;cmath&gt;
#include &lt;iostream&gt;
using namespace std;
#define eps 1e-8
const int MAXN=10017;
int n;
double r;
int cCnt,curCnt;//此时cCnt为最终切割得到的多边形的顶点数、暂存顶点个数
str...]]></description><category></category></item><item><title><![CDATA[凸包 极角排序]]></title><link>https://blog.youkuaiyun.com/qq_35546274/article/details/102847520</link><guid>https://blog.youkuaiyun.com/qq_35546274/article/details/102847520</guid><author>qq_35546274</author><pubDate>Thu, 31 Oct 2019 22:49:36 +0800</pubDate><description><![CDATA[const int maxn=1005;

struct point{
    int x;
    int y;
    point(){} 
    point(int xx,int yy):x(xx),y(yy){}
    bool friend operator &lt;(const point &amp;a,const point &amp;b){
        if(a.x==b....]]></description><category></category></item><item><title><![CDATA[KM 二分图匹配]]></title><link>https://blog.youkuaiyun.com/qq_35546274/article/details/102792891</link><guid>https://blog.youkuaiyun.com/qq_35546274/article/details/102792891</guid><author>qq_35546274</author><pubDate>Tue, 29 Oct 2019 09:26:21 +0800</pubDate><description><![CDATA[#include &lt;bits/stdc++.h&gt;
const int maxn = 305;
const int INF = 2e9;
int match[maxn],lx[maxn],ly[maxn],slack[maxn];
int G[maxn][maxn];
bool visx[maxn],visy[maxn];
int n,nx,ny,ans;

bool findpath(...]]></description><category></category></item><item><title><![CDATA[等差数列除以一个数字求和（2019牛客暑期多校训练营（第九场）I题）]]></title><link>https://blog.youkuaiyun.com/qq_35546274/article/details/99676399</link><guid>https://blog.youkuaiyun.com/qq_35546274/article/details/99676399</guid><author>qq_35546274</author><pubDate>Fri, 16 Aug 2019 13:41:27 +0800</pubDate><description><![CDATA[？？神仙算法，类欧几里得的另一种用法
首先对于一个a为公差，b为首项，n为项数的等差数列，我们以c为除数
我们先考虑首项的贡献，很明显为b/c*n（还用你说 ）。
然后对于公差a，我们一共也是计算了(n-1)n次（1到n-1等差数列求和），所以也很明显是
a/c(n-1)*n。
到这里就完成一半了（根本还没开始 ）
因为是整除，所以接下来我们考虑加起来而导致的溢出情况（a&lt;c,b&lt;c，...]]></description><category></category></item><item><title><![CDATA[数学模板]]></title><link>https://blog.youkuaiyun.com/qq_35546274/article/details/98961411</link><guid>https://blog.youkuaiyun.com/qq_35546274/article/details/98961411</guid><author>qq_35546274</author><pubDate>Fri, 09 Aug 2019 15:26:54 +0800</pubDate><description><![CDATA[#include&lt;bits/stdc++.h&gt;
using namespace std;
typedef long long ll;
const int maxn=100005;

const ll mod=100000007; 
//gcd 
ll gcd(ll x,ll y){return x==0?y:gcd(y%x,x);}

//扩展欧几里得 ax+by=gcd(a,b)的解...]]></description><category></category></item><item><title><![CDATA[trie树]]></title><link>https://blog.youkuaiyun.com/qq_35546274/article/details/98961372</link><guid>https://blog.youkuaiyun.com/qq_35546274/article/details/98961372</guid><author>qq_35546274</author><pubDate>Fri, 09 Aug 2019 15:26:09 +0800</pubDate><description><![CDATA[#include&lt;cstdlib&gt;
#include&lt;cstdio&gt;
#include&lt;iostream&gt;
#include&lt;cstring&gt;
using namespace std;
const int maxn=50000*50+5;

int m[maxn][52]={0},cnt=0,root=0,v[maxn]={0},n,mm;
char...]]></description><category></category></item><item><title><![CDATA[2进制trie树]]></title><link>https://blog.youkuaiyun.com/qq_35546274/article/details/98961341</link><guid>https://blog.youkuaiyun.com/qq_35546274/article/details/98961341</guid><author>qq_35546274</author><pubDate>Fri, 09 Aug 2019 15:25:36 +0800</pubDate><description><![CDATA[#include&lt;cstdlib&gt;
#include&lt;cstdio&gt;
#include&lt;cstring&gt;
#include&lt;iostream&gt;
#include&lt;vector&gt;
using namespace std;
const int maxn=250005;

struct edge
{
    int u,v,w,next;
}e...]]></description><category></category></item><item><title><![CDATA[求区间内最大（最小）子区间的线段树]]></title><link>https://blog.youkuaiyun.com/qq_35546274/article/details/98876183</link><guid>https://blog.youkuaiyun.com/qq_35546274/article/details/98876183</guid><author>qq_35546274</author><pubDate>Thu, 08 Aug 2019 16:40:23 +0800</pubDate><description><![CDATA[#include&lt;bits/stdc++.h&gt;
using namespace std;
typedef long long ll;

struct shu
{
    int l,r;
    ll w,lw,rw,ww;
}w[100000];

void up(int k,int l,int r)
{
    int mid=(l+r)/2;
    int lk=k&lt;&l...]]></description><category></category></item><item><title><![CDATA[匈牙利算法]]></title><link>https://blog.youkuaiyun.com/qq_35546274/article/details/98856162</link><guid>https://blog.youkuaiyun.com/qq_35546274/article/details/98856162</guid><author>qq_35546274</author><pubDate>Thu, 08 Aug 2019 11:59:25 +0800</pubDate><description><![CDATA[#include&lt;bits/stdc++.h&gt; 
using namespace std;
const int maxn=1010005;

struct edge
{
    int v,next;
}e[maxn*10];
int f[10005],mx[maxn],state[maxn],fa[maxn]={0},n,cnt=0,T=0;

void add(int u,int ...]]></description><category></category></item><item><title><![CDATA[支配树]]></title><link>https://blog.youkuaiyun.com/qq_35546274/article/details/98856063</link><guid>https://blog.youkuaiyun.com/qq_35546274/article/details/98856063</guid><author>qq_35546274</author><pubDate>Thu, 08 Aug 2019 11:58:48 +0800</pubDate><description><![CDATA[#include&lt;bits/stdc++.h&gt; 
using namespace std;

const int N = 200010;
struct Node{int to,next;};//边 
int n,m,dfn[N],clo,rev[N],f[N],semi[N],idom[N];// idom[x]是支配树上x的父亲   dfn[x]是x的拓扑序 
//n个点m条边,n为...]]></description><category></category></item><item><title><![CDATA[主席树（可持久化线段树）]]></title><link>https://blog.youkuaiyun.com/qq_35546274/article/details/98855975</link><guid>https://blog.youkuaiyun.com/qq_35546274/article/details/98855975</guid><author>qq_35546274</author><pubDate>Thu, 08 Aug 2019 11:57:45 +0800</pubDate><description><![CDATA[#include&lt;iostream&gt;
#include&lt;algorithm&gt;
#include&lt;cmath&gt;
#include&lt;cstdlib&gt;
#include&lt;cstdio&gt; 
using namespace std;
const int maxn=1e6+10;
//root数组代表第i颗树的根 
//插入和查询都是 两棵树同步走相...]]></description><category></category></item><item><title><![CDATA[最短路径树]]></title><link>https://blog.youkuaiyun.com/qq_35546274/article/details/98855928</link><guid>https://blog.youkuaiyun.com/qq_35546274/article/details/98855928</guid><author>qq_35546274</author><pubDate>Thu, 08 Aug 2019 11:56:56 +0800</pubDate><description><![CDATA[#include&lt;iostream&gt;
#include&lt;cstdio&gt;
#include&lt;vector&gt;
#include&lt;cstdlib&gt;
#include&lt;queue&gt;
using namespace std;
const int maxn=105;
const int maxm=3005;
const int inf=2000000...]]></description><category></category></item><item><title><![CDATA[最小表示法]]></title><link>https://blog.youkuaiyun.com/qq_35546274/article/details/98855897</link><guid>https://blog.youkuaiyun.com/qq_35546274/article/details/98855897</guid><author>qq_35546274</author><pubDate>Thu, 08 Aug 2019 11:56:25 +0800</pubDate><description><![CDATA[#include&lt;bits/stdc++.h&gt;
 using namespace std;
 
 char a[105],b[105];
 int n;
 set&lt;string&gt;q;
 
int getmin()
 {
 	int i=0,j=1,len=strlen(a),k=0;
	while(i&lt;len&amp;&amp;j&lt;len&amp;&amp;k&...]]></description><category></category></item><item><title><![CDATA[最小割树]]></title><link>https://blog.youkuaiyun.com/qq_35546274/article/details/98855857</link><guid>https://blog.youkuaiyun.com/qq_35546274/article/details/98855857</guid><author>qq_35546274</author><pubDate>Thu, 08 Aug 2019 11:55:55 +0800</pubDate><description><![CDATA[#include&lt;bits/stdc++.h&gt; 
using namespace std;
typedef long long ll;
const int maxn=1005;
const ll inf=20000000000005ll;

struct edge //树上的边 
{
	int u,v,next;
	ll w;
}e[maxn*10];

int f[maxn],cnt...]]></description><category></category></item><item><title><![CDATA[中国剩余定理]]></title><link>https://blog.youkuaiyun.com/qq_35546274/article/details/98855694</link><guid>https://blog.youkuaiyun.com/qq_35546274/article/details/98855694</guid><author>qq_35546274</author><pubDate>Thu, 08 Aug 2019 11:54:01 +0800</pubDate><description><![CDATA[#include&lt;iostream&gt;
#include&lt;cstdlib&gt;
#include&lt;cstdio&gt;
#include&lt;algorithm&gt;
#include&lt;cmath&gt; 
using namespace std;
typedef long long ll;

ll n;
ll a,b,x,y,d,A,B;

void exgcd...]]></description><category></category></item><item><title><![CDATA[线段树]]></title><link>https://blog.youkuaiyun.com/qq_35546274/article/details/98735128</link><guid>https://blog.youkuaiyun.com/qq_35546274/article/details/98735128</guid><author>qq_35546274</author><pubDate>Wed, 07 Aug 2019 11:36:26 +0800</pubDate><description><![CDATA[#include&lt;bits/stdc++.h&gt;
using namespace std;

int w[550005],n,m;

void build(int k,int l,int r)
{
	if(l==r) return;
	int mid=(l+r)&gt;&gt;1;
	build(k&lt;&lt;1,l,mid);
	build(k&lt;&lt;1|1,mid+1,r...]]></description><category></category></item><item><title><![CDATA[线性基]]></title><link>https://blog.youkuaiyun.com/qq_35546274/article/details/98734990</link><guid>https://blog.youkuaiyun.com/qq_35546274/article/details/98734990</guid><author>qq_35546274</author><pubDate>Wed, 07 Aug 2019 11:31:27 +0800</pubDate><description><![CDATA[#include&lt;bits/stdc++.h&gt;
using namespace std;
typedef long long ll;

struct LB{
    long long b[65],nb[65];
    int num;
    LB()
    {
        memset(b,0,sizeof(b));
        memset(nb,0,sizeof(n...]]></description><category></category></item><item><title><![CDATA[倍增lca]]></title><link>https://blog.youkuaiyun.com/qq_35546274/article/details/98734623</link><guid>https://blog.youkuaiyun.com/qq_35546274/article/details/98734623</guid><author>qq_35546274</author><pubDate>Wed, 07 Aug 2019 11:27:55 +0800</pubDate><description><![CDATA[#include&lt;cstdlib&gt;
#include&lt;iostream&gt;
#include&lt;cstdio&gt;
#include&lt;cstring&gt;
#include&lt;vector&gt;
using namespace std;
const int maxn=200005;

int n,m,fa[maxn][25],deep[maxn];
int...]]></description><category></category></item><item><title><![CDATA[并查集]]></title><link>https://blog.youkuaiyun.com/qq_35546274/article/details/98734527</link><guid>https://blog.youkuaiyun.com/qq_35546274/article/details/98734527</guid><author>qq_35546274</author><pubDate>Wed, 07 Aug 2019 11:26:29 +0800</pubDate><description><![CDATA[#include&lt;bits/stdc++.h&gt;
using namespace std;
typedef long long ll;
const int maxn=1000005;

int pa[maxn];

int find(int x){return pa[x]==x?x:pa[x]=find(pa[x]);}

void un(int x,int y)
{
    int p...]]></description><category></category></item></channel></rss>