<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[unintended]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/SM_545</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; SM_545]]></copyright><item><title><![CDATA[数据结构--线段树--维护等差数列--uva12436 Rip Van Winkle's Code]]></title><link>https://blog.youkuaiyun.com/SM_545/article/details/83506542</link><guid>https://blog.youkuaiyun.com/SM_545/article/details/83506542</guid><author>SM_545</author><pubDate>Mon, 29 Oct 2018 15:35:19 +0800</pubDate><description><![CDATA[N=250000

op1. 区间[ql,qr] ql的位置+1,ql+1的位置+2。。。

op2. 区间[ql,qr] qr的位置+1,qr-1的位置+2。。。

op3.区间[ql,qr] 区间修改为x

op4.求区间和

大佬博客 https://blog.youkuaiyun.com/hei_nero/article/details/9798723

将梯形划分为左右区间的时候，相当于左区间维护小...]]></description><category></category></item><item><title><![CDATA[线段树--区间修改--cf1070-c Cloud Computing]]></title><link>https://blog.youkuaiyun.com/SM_545/article/details/83273111</link><guid>https://blog.youkuaiyun.com/SM_545/article/details/83273111</guid><author>SM_545</author><pubDate>Mon, 22 Oct 2018 15:09:11 +0800</pubDate><description><![CDATA[n天每天需要k个东西，有m种价格方案：

方案i [Li,Ri] 内每天有ci个，每个pi元

（如果某天所能获得的东西不足k个，全部借完）

求最小花费。

解：

按价格排序，线段树记录某天已经借了的数量，成段更新。

更新时判断，1.如果最小值 &amp;gt;= k，即该区间已经满足条件，不用再借，return

2.如果最大值 + c &amp;lt;= k，即该区间全部都可以借c个，利用lazy标记区...]]></description><category></category></item><item><title><![CDATA[数据结构--线段树&离散化可能有的问题--poj2528 Mayor's posters]]></title><link>https://blog.youkuaiyun.com/SM_545/article/details/83032797</link><guid>https://blog.youkuaiyun.com/SM_545/article/details/83032797</guid><author>SM_545</author><pubDate>Fri, 12 Oct 2018 21:08:32 +0800</pubDate><description><![CDATA[给定n个区间，按顺序覆盖后，问最后几个是可见的。

l,r,范围1e7，需要离散化。

//但是注意简单的离散化可能会出现错误，给出下面两个简单的例子应该能体现普通离散化的缺陷:

//例子一:1-10 1-4 5-10

//例子二:1-10 1-4 6-10

//解决的办法则是对于距离大于1的两相邻点，中间再插入一个点

这样离散化后

例子一：[1,6] [1,3] [4,6]

例子二：...]]></description><category></category></item><item><title><![CDATA[数据结构--离线树状数组--hdu4605 Magic Ball Game]]></title><link>https://blog.youkuaiyun.com/SM_545/article/details/83002155</link><guid>https://blog.youkuaiyun.com/SM_545/article/details/83002155</guid><author>SM_545</author><pubDate>Wed, 10 Oct 2018 19:42:37 +0800</pubDate><description><![CDATA[n个点的树，每个点有一个权值。1为根，每个点要么有2个儿子，要么没有儿子。

Q次询问，每次给节点v，和数X，一个球从根往下走：

1.X = w[i]或i没有儿子，球停下

2.X &amp;lt; w[i]，球有1/2可能往左走，1/2可能右走

3.X &amp;gt; W[I]，球有1/8可能往左走，7/8可能右走

统计根到v的路径上，（往左走、往右走）*（大于x、小于x）的个数

则到达v点的可能性为...]]></description><category></category></item><item><title><![CDATA[数据结构--线段树--牛客练习赛28B]]></title><link>https://blog.youkuaiyun.com/SM_545/article/details/82948136</link><guid>https://blog.youkuaiyun.com/SM_545/article/details/82948136</guid><author>SM_545</author><pubDate>Fri, 05 Oct 2018 23:42:19 +0800</pubDate><description><![CDATA[https://www.nowcoder.com/acm/contest/200/B

op = 1 sum

op = 2 sum2 平方和

op = 3 *mul

op = 4 +add

2个lazy标记


#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;iostream&amp;gt;
using namespace std;
#define lc (rt &amp;lt;...]]></description><category></category></item><item><title><![CDATA[数据结构--LCA--DFS+RMQ--zoj3195 Design the city]]></title><link>https://blog.youkuaiyun.com/SM_545/article/details/82635173</link><guid>https://blog.youkuaiyun.com/SM_545/article/details/82635173</guid><author>SM_545</author><pubDate>Wed, 12 Sep 2018 01:06:14 +0800</pubDate><description><![CDATA[用DFS和RMQ实现LCA步骤：

1.E[1]..E[2n-1]表示dfs的过程中经历的所有点

2.id[i]表示点i在E[]中第一次出现的位置，即在dfs中第一次出现的位置

3.任意2点x,y的LCA就是id[x]...id[y]区间中，深度最小的那个点，使用RMQ预处理即可。

ps：

1.E[..]和ST[..][20]都要开2 * n



#include &amp;lt;cstdio&amp;...]]></description><category></category></item><item><title><![CDATA[unordered map使用]]></title><link>https://blog.youkuaiyun.com/SM_545/article/details/82590445</link><guid>https://blog.youkuaiyun.com/SM_545/article/details/82590445</guid><author>SM_545</author><pubDate>Mon, 10 Sep 2018 15:38:36 +0800</pubDate><description><![CDATA[1.基本数据类型，string等使用unordered map可以直接使用，如hash&amp;lt;int&amp;gt;()(x)。

结构体使用unordered map需要一个hash函数和一个equal函数。

2.

hash函数一般用函数对象实现。（注意：返回值size_t）

equal函数可以用函数对象，也可以直接重载==运算符。


struct point{
    int x,y;
}p;...]]></description><category></category></item><item><title><![CDATA[数论--莫比乌斯反演&分块--bzoj2154 Crash的数字表格]]></title><link>https://blog.youkuaiyun.com/SM_545/article/details/82419801</link><guid>https://blog.youkuaiyun.com/SM_545/article/details/82419801</guid><author>SM_545</author><pubDate>Wed, 05 Sep 2018 11:23:51 +0800</pubDate><description><![CDATA[大佬博客

http://www.cnblogs.com/cjyyb/p/8253033.html


//1.mu[1] = 1
//2.long long 注意
//3.2次分块好神奇，而且min(n/ (n/ i),m/ (m/ i))可以解决2个变量一起分块
//4.直接预处理1e7超时，max(n,m) 7s+
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;i...]]></description><category></category></item><item><title><![CDATA[数论--筛法变形--ACM-ICPC 2018 南京赛区网络预赛 J.Sum]]></title><link>https://blog.youkuaiyun.com/SM_545/article/details/82316957</link><guid>https://blog.youkuaiyun.com/SM_545/article/details/82316957</guid><author>SM_545</author><pubDate>Sun, 02 Sep 2018 17:07:35 +0800</pubDate><description><![CDATA[https://nanti.jisuanke.com/t/30999

f[i]表示将i分解为2个数相乘的方案数,i = a*b，且a,b均不能有平方因子。

求f[i]前缀和

n = p1^a1 * p2^a2 * p3^a3 * ... * pk^ak

= a * b

若a1 = 1，则a可能有p1,可能没有，f[n] = f[n / p1] * 2

a1 = 2,则a必须选p1（a,...]]></description><category></category></item><item><title><![CDATA[数论--常见公式]]></title><link>https://blog.youkuaiyun.com/SM_545/article/details/82290191</link><guid>https://blog.youkuaiyun.com/SM_545/article/details/82290191</guid><author>SM_545</author><pubDate>Sat, 01 Sep 2018 20:04:09 +0800</pubDate><description><![CDATA[1. 1 * 1! + 2 * 2! + 3 * 3! + ... + n * n! = (n + 1)! - 1


证明 (n + 1)! - n! = n * n!

2! - 1! = 1 * 1!

3! - 2! = 2 * 2!

...

(n + 1)! - n! = n * n!

sum = (n + 1)! - 1 = 1 * 1! + 2 * 2! + 3 * 3! + ...]]></description><category></category></item><item><title><![CDATA[数论--因子&容斥&bitmask--codeforces1007b Pave the Parallelepiped]]></title><link>https://blog.youkuaiyun.com/SM_545/article/details/82192753</link><guid>https://blog.youkuaiyun.com/SM_545/article/details/82192753</guid><author>SM_545</author><pubDate>Wed, 29 Aug 2018 21:07:56 +0800</pubDate><description><![CDATA[给A,B,C,求他们的因子(a,b,c)的三元组的个数（a|A ,b|B,c|C,不考虑顺序）

A，B，C有重复因子很麻烦，所以考虑容斥

//1.因子总是和bitmask在一起
//要么是对因子用位压缩
//要么用二进制表示是a,b,c谁的因子,并且容斥
//2.m个不同的球有放回的取n个 = C(m + n - 1,n)
//3.__builtin_popcount(i) 返回i二进制中1的...]]></description><category></category></item><item><title><![CDATA[曼哈顿距离&切比雪夫距离--hdu4311&hdu4312]]></title><link>https://blog.youkuaiyun.com/SM_545/article/details/81990525</link><guid>https://blog.youkuaiyun.com/SM_545/article/details/81990525</guid><author>SM_545</author><pubDate>Fri, 24 Aug 2018 01:40:35 +0800</pubDate><description><![CDATA[1.

曼哈顿距离=|x1 - y1| + |x2 - y2| + ... + |xn - yn|

切比雪夫距离=max(|x1 - y1| , |x2 - y2| , ... , |xn - yn|)

2.给n个点，求其中一个点到其他点曼哈顿距离和，的最小值 复杂度为O(nlgn)

3.通过观察

将坐标轴顺时针旋转45度并将所有点的坐标值放大sqrt(2)倍，

切比雪夫距离便是所得到的...]]></description><category></category></item><item><title><![CDATA[最远曼哈顿距离 n维--poj2926 Requirements]]></title><link>https://blog.youkuaiyun.com/SM_545/article/details/81984105</link><guid>https://blog.youkuaiyun.com/SM_545/article/details/81984105</guid><author>SM_545</author><pubDate>Thu, 23 Aug 2018 17:13:25 +0800</pubDate><description><![CDATA[给定一些n维向量[x1,...xn]，求这些向量中，最远曼哈顿距离。

曼哈顿距离[pi,pj] = sum(|xi_1 - xj_1| + |xi_2 - xj_2| + ... + |xi_n - xj_n|)

以2维为例：

pi -&amp;gt; (x1,x2)

pj -&amp;gt; (y1,y2)

|x1 - y1| + |x2 - y2|

= max(x1 - y1 + x2 - y2 ...]]></description><category></category></item><item><title><![CDATA[数据结构--树状数组--dfs&前向星&模拟栈--hdu3887 Counting Offspring]]></title><link>https://blog.youkuaiyun.com/SM_545/article/details/81666428</link><guid>https://blog.youkuaiyun.com/SM_545/article/details/81666428</guid><author>SM_545</author><pubDate>Tue, 14 Aug 2018 14:29:09 +0800</pubDate><description><![CDATA[1.普通的树状数组+dfs

2.但是1e5直接dfs确实可能RE，所以需要手写模拟栈

3.前向星比vector快一倍左右


#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;cstring&amp;gt;
using namespace std;


const int maxn = 2e5 + 5;

struct nod...]]></description><category></category></item><item><title><![CDATA[数据结构--树状数组总结]]></title><link>https://blog.youkuaiyun.com/SM_545/article/details/81665352</link><guid>https://blog.youkuaiyun.com/SM_545/article/details/81665352</guid><author>SM_545</author><pubDate>Tue, 14 Aug 2018 13:54:02 +0800</pubDate><description><![CDATA[1.单点更新&amp;amp;前缀和查询（-&amp;gt;区间查询）


int tr[maxn];//树状数组 
void add(int tr[],int x,int k)
{
    while(x &amp;lt; maxn){
        tr[x] += k;
        x += (x &amp;amp; -x);
    }
}
int query(int tr[],int x){
    int an...]]></description><category></category></item><item><title><![CDATA[数论--n条不相交路径&行列式计算--hdu 5852 Intersection is not allowed!]]></title><link>https://blog.youkuaiyun.com/SM_545/article/details/81264583</link><guid>https://blog.youkuaiyun.com/SM_545/article/details/81264583</guid><author>SM_545</author><pubDate>Sat, 28 Jul 2018 19:56:06 +0800</pubDate><description><![CDATA[题意：n*n矩阵，k个棋子在第一行，将他们移到最后一行，这k条路径不相交的方案数有多少

1.n条不相交路径（严格）

Lindstrom-Gessel-Viennot Lemma

对于一张无边权的DAG图，给定n个起点和对应的n个终点，这n条不相交路径的方案数为

det() （该矩阵的行列式）

其中e(a,b)为图上a到b的方案数

2.行列式计算

https://blog.csdn.n...]]></description><category></category></item><item><title><![CDATA[数论--线性求逆元&线性求阶乘逆元]]></title><link>https://blog.youkuaiyun.com/SM_545/article/details/81262878</link><guid>https://blog.youkuaiyun.com/SM_545/article/details/81262878</guid><author>SM_545</author><pubDate>Sat, 28 Jul 2018 16:58:41 +0800</pubDate><description><![CDATA[线性求逆元

https://blog.youkuaiyun.com/qq_34564984/article/details/52292502

线性求阶乘逆元


const int mod = 1e9 + 7;
ll fac[maxn];//fac[i]表示i!
ll inv[maxn];//inv[i]表示i!的逆元

ll qk_mod(ll a,ll b,ll mod)
{
    ll ans =...]]></description><category></category></item><item><title><![CDATA[数论--求小于n的与n互质的数的和]]></title><link>https://blog.youkuaiyun.com/SM_545/article/details/81157057</link><guid>https://blog.youkuaiyun.com/SM_545/article/details/81157057</guid><author>SM_545</author><pubDate>Sun, 22 Jul 2018 18:17:23 +0800</pubDate><description><![CDATA[给出一个N，求1..N中与N互质的数的和

if gcd(n,i)=1 then gcd(n,n-i)=1 (1&amp;lt;=i&amp;lt;=n)

反证法：

        如果存在K!=1使gcd(n,n-i)=k,那么(n-i)%k==0

        而n%k=0

        那么必须保证i%k=0

        k是n的因子,如果i%k=0那么 gcd(n,i)=k,矛盾出现;
...]]></description><category></category></item><item><title><![CDATA[数论--阶乘幂&扩展欧拉定理--牛客练习赛22E 简单数据结构1]]></title><link>https://blog.youkuaiyun.com/SM_545/article/details/81156635</link><guid>https://blog.youkuaiyun.com/SM_545/article/details/81156635</guid><author>SM_545</author><pubDate>Sun, 22 Jul 2018 17:39:59 +0800</pubDate><description><![CDATA[https://www.nowcoder.com/acm/contest/132/E

给定数组A，有2种操作

1.区间更新，a[l]...a[r]都加x

2.求阶乘幂 a[l] ^ (a[l+1] ^ (...a[r-1] ^ a[r]))

解：

区间更新用树状数组

A[i]记录原数组

delta[i]记录a[i]到a[n]共同的增量

xdelta[i] = i * delta[i...]]></description><category></category></item><item><title><![CDATA[数论--阶乘幂&扩展欧拉定理--codeforces 906d Power Tower]]></title><link>https://blog.youkuaiyun.com/SM_545/article/details/81141794</link><guid>https://blog.youkuaiyun.com/SM_545/article/details/81141794</guid><author>SM_545</author><pubDate>Sat, 21 Jul 2018 10:16:55 +0800</pubDate><description><![CDATA[给定数组w,q次查询，求w[ql]^ ( w[ql + 1] ^ ( ... w[qr - 1] ^ (w[qr]) ) ) % m

扩展欧拉定理 (a,m) != 1时，

if(b &amp;gt;= phi(m)) a^b % m = a ^ (b % phi(m) + phi(m) ) % m

if(b &amp;lt; phi(m)) a^b % m = a ^ b % m（快速幂）

1.快速幂和...]]></description><category></category></item></channel></rss>