<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[w4149]]></title><description><![CDATA[T.T.]]></description><link>https://blog.youkuaiyun.com/w4149</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; w4149]]></copyright><item><title><![CDATA[LeetCode刷题笔记 剑指Offer 1～29]]></title><link>https://blog.youkuaiyun.com/w4149/article/details/123337000</link><guid>https://blog.youkuaiyun.com/w4149/article/details/123337000</guid><author>w4149</author><pubDate>Tue, 08 Mar 2022 09:28:04 +0800</pubDate><description><![CDATA[1~29]]></description><category></category></item><item><title><![CDATA[曼哈顿距离几何意义 矩形面积并]]></title><link>https://blog.youkuaiyun.com/w4149/article/details/78470395</link><guid>https://blog.youkuaiyun.com/w4149/article/details/78470395</guid><author>w4149</author><pubDate>Tue, 07 Nov 2017 17:39:56 +0800</pubDate><description><![CDATA[11.7思路： 
二分ans，把所有长度>mid的（lf，rg）都搞出来， 
然后我们要找出一个点对（u，v），使得|x - u| + |y - v| <= mid。 
考虑几何意义，曼哈顿距离的图像限定。 
把一个区间（lf，rg）转换成一个点（x，y）。 
对于每个点（x，y），我们构建出一个以（x，y）为几何中心， 
对角线长2*mid，且对角线平行于坐标轴的正方形。 
满足条件的（u，v）就]]></description><category></category></item><item><title><![CDATA[升序操作 （二分 贪心）]]></title><link>https://blog.youkuaiyun.com/w4149/article/details/78470257</link><guid>https://blog.youkuaiyun.com/w4149/article/details/78470257</guid><author>w4149</author><pubDate>Tue, 07 Nov 2017 17:29:19 +0800</pubDate><description><![CDATA[也可以不用判环，暴力check，按照顺序暴力跑（看代码吧）#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#define LL long long
#define N 400010
using namespace std;int n, cnt;
int a[N], b[N];inline in]]></description><category></category></item><item><title><![CDATA[b进制分解 加乘最小步数]]></title><link>https://blog.youkuaiyun.com/w4149/article/details/78470167</link><guid>https://blog.youkuaiyun.com/w4149/article/details/78470167</guid><author>w4149</author><pubDate>Tue, 07 Nov 2017 17:24:27 +0800</pubDate><description><![CDATA[b进制分解#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#define LL long long
#define N 1000010
using namespace std;int S, T, a, b;
int f[N], pw[110];int run(){
    f[S] = 0;]]></description><category></category></item><item><title><![CDATA[kill （二分 贪心）]]></title><link>https://blog.youkuaiyun.com/w4149/article/details/78444826</link><guid>https://blog.youkuaiyun.com/w4149/article/details/78444826</guid><author>w4149</author><pubDate>Sat, 04 Nov 2017 17:29:47 +0800</pubDate><description><![CDATA[kill思路： 
二分ans后，直接贪心暴力check。 
每个人去打他能打得到的最远的怪兽。#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define LL long long
#define N 100010
using namespace std;int n, m, S;
LL go]]></description><category></category></item><item><title><![CDATA[codeforces 700B Connecting Universities （贪心详解）]]></title><link>https://blog.youkuaiyun.com/w4149/article/details/78444795</link><guid>https://blog.youkuaiyun.com/w4149/article/details/78444795</guid><author>w4149</author><pubDate>Sat, 04 Nov 2017 17:26:29 +0800</pubDate><description><![CDATA[codeforces 700B Connecting Universities结论思路： 
这个题一眼看上去很难，但是正着做不行，我们换个角度：考虑每条边的贡献。 
因为是一棵树，所以一条边把树分成两个集合，假如左边有x个学校，右边有y个学校。 
贪心地想，让每条边在学校的路径上最多，所以贡献为min(x,y) 
具体实现：一次dfs即可，复杂度O(N) 
听起来很有道理，可我不会证呀~~ 
然后就]]></description><category></category></item><item><title><![CDATA[BZOJ 4423 Bytehattan （对偶图 并查集）]]></title><link>https://blog.youkuaiyun.com/w4149/article/details/78439740</link><guid>https://blog.youkuaiyun.com/w4149/article/details/78439740</guid><author>w4149</author><pubDate>Fri, 03 Nov 2017 21:09:03 +0800</pubDate><description><![CDATA[4423 【AMPPZ2013】 BytehattanDescription 
比特哈顿镇有n*n个格点，形成了一个网格图。一开始整张图是完整的。 
有k次操作，每次会删掉图中的一条边(u,v)，你需要回答在删除这条边之后u和v是否仍然连通。Input 
第一行包含两个正整数n,k(2<=n<=1500,1<=k<=2n(n-1))，表示网格图的大小以及操作的个数。 
接下来k行，每行包含两条信息，]]></description><category></category></item><item><title><![CDATA[reverse （模拟）]]></title><link>https://blog.youkuaiyun.com/w4149/article/details/78437140</link><guid>https://blog.youkuaiyun.com/w4149/article/details/78437140</guid><author>w4149</author><pubDate>Fri, 03 Nov 2017 16:44:09 +0800</pubDate><description><![CDATA[reverse所有的由A和B构成的字符串，在这种操作下形成了一棵二叉树。根是空串，从根开始，向左走表示施加1号操作，向右走施加2号操作。 
知道一个串，我们可以根据它最后一个字符是A还是B把它的父亲还原回来，所以我们有了在这棵树上遍历的能力。 
做法就很显然了，我们只需要先让长的那个串一直向上走，知道他们深度相同，然后一起向上走，直到走到同一点，每走一步我们需要O(长度)的时间，最多走O(长度)步，]]></description><category></category></item><item><title><![CDATA[Tree （树上期望dp）]]></title><link>https://blog.youkuaiyun.com/w4149/article/details/78435765</link><guid>https://blog.youkuaiyun.com/w4149/article/details/78435765</guid><author>w4149</author><pubDate>Fri, 03 Nov 2017 16:32:10 +0800</pubDate><description><![CDATA[Tree11.2 和 11.311.2考虑1个随机过程，第1次走到u号点的时间可以分成两部分，第1部分是从1号点随机游走第1次走到u的父亲p的时间，第2部分是从p开始走，第1次走到u的时间，由期望的线性性，第1次走到u的时间期望等于这两部分期望的和。第1部分是一个子问题，我们考虑怎么解决第2部分，我们把这个问题变成1棵树（并且根节点脑袋上也有1条边），从根节点开始随机游走，走出这棵树期望的时间，我们]]></description><category></category></item><item><title><![CDATA[Rank 后缀排序求原串（贪心）]]></title><link>https://blog.youkuaiyun.com/w4149/article/details/78435541</link><guid>https://blog.youkuaiyun.com/w4149/article/details/78435541</guid><author>w4149</author><pubDate>Fri, 03 Nov 2017 14:46:26 +0800</pubDate><description><![CDATA[Rank11.3对于后缀排名最小的那个位置, 不妨令它为’a’. 本着让使用的字母尽可能少的原则, 对于两个排名相邻的位置i, j, 设rank[i] < rank[j], 那么如果rank[i+1] < rank[j+1]那么i和j位置上的字符就能够相同, 否则不能. 那么从排名为1的往后推就可以了, 至于字典序最小并没有什么用.#include <iostream>
#include <cstd]]></description><category></category></item><item><title><![CDATA[Hanoi 多汉诺塔问题 （dp）]]></title><link>https://blog.youkuaiyun.com/w4149/article/details/78435274</link><guid>https://blog.youkuaiyun.com/w4149/article/details/78435274</guid><author>w4149</author><pubDate>Fri, 03 Nov 2017 14:25:39 +0800</pubDate><description><![CDATA[Hanoi11.3类比只有三个柱子的汉诺塔, 设f[i][j]为有i个盘子j个柱子时的最少步数. 那么肯定是把一些上面盘子移动到某根不是j的柱子上, 然后把剩下的盘子移动到j, 然后再把上面的盘子移动到j. 于是就有递推式f[i][j] = min{f[k][j] * 2 + f[i - k][j - 1]}.#include <cstdio>
#include <iostream>
#includ]]></description><category></category></item><item><title><![CDATA[BZOJ 2815 灾难 （灭绝树）]]></title><link>https://blog.youkuaiyun.com/w4149/article/details/78427115</link><guid>https://blog.youkuaiyun.com/w4149/article/details/78427115</guid><author>w4149</author><pubDate>Thu, 02 Nov 2017 17:16:56 +0800</pubDate><description><![CDATA[BZOJ 2815 灾难Description 
阿米巴是小强的好朋友。  
阿米巴和小强在草原上捉蚂蚱。小强突然想，如果蚂蚱被他们捉灭绝了，那 么吃蚂蚱的小鸟就会饿死，而捕食小鸟的猛禽也会跟着灭绝，从而引发一系列的 生态灾难。  
学过生物的阿米巴告诉小强，草原是一个极其稳定的生态系统。如果蚂蚱灭 绝了，小鸟照样可以吃别的虫子，所以一个物种的灭绝并不一定会引发重大的灾 难。  
我们现在从专业一点]]></description><category></category></item><item><title><![CDATA[BZOJ 4565 字符合并 （区间状压dp）]]></title><link>https://blog.youkuaiyun.com/w4149/article/details/78408489</link><guid>https://blog.youkuaiyun.com/w4149/article/details/78408489</guid><author>w4149</author><pubDate>Tue, 31 Oct 2017 21:43:23 +0800</pubDate><description><![CDATA[4565: [Haoi2016]字符合并Time Limit: 20 Sec  Memory Limit: 256 MB 
Description有一个长度为 n 的 01 串，你可以每次将相邻的 k 个字符合并，得到一个新的字符并获得一定分数。得到的新字 
符和分数由这 k 个字符确定。你需要求出你能获得的最大分数。Input第一行两个整数n，k。接下来一行长度为n的01串，表示初始串。接下来2k]]></description><category></category></item><item><title><![CDATA[BZOJ 2125 最短路 （拆环重建图 lca spfa）]]></title><link>https://blog.youkuaiyun.com/w4149/article/details/78405501</link><guid>https://blog.youkuaiyun.com/w4149/article/details/78405501</guid><author>w4149</author><pubDate>Tue, 31 Oct 2017 17:03:52 +0800</pubDate><description><![CDATA[2125: 最短路Time Limit: 1 Sec  Memory Limit: 259 MBDescription给一个N个点M条边的连通无向图，满足每条边最多属于一个环，有Q组询问，每次询问两点之间的最短路径。Input输入的第一行包含三个整数，分别表示N和M和Q 下接M行，每行三个整数v，u，w表示一条无向边v-u，长度为w 最后Q行，每行两个整数v，u表示一组询问Output输出Q行，每行]]></description><category></category></item><item><title><![CDATA[sumcomb （组合数）]]></title><link>https://blog.youkuaiyun.com/w4149/article/details/78399165</link><guid>https://blog.youkuaiyun.com/w4149/article/details/78399165</guid><author>w4149</author><pubDate>Tue, 31 Oct 2017 07:51:59 +0800</pubDate><description><![CDATA[10.19找规律题目，在图上推推就发现，一个是起点下面的数，一个是起点右下角的数。#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#define LL long long
using namespace std;const LL mod = 1e9 + 7;LL mub[1000010];
LL]]></description><category></category></item><item><title><![CDATA[pay 解方程 （exgcd）]]></title><link>https://blog.youkuaiyun.com/w4149/article/details/78399161</link><guid>https://blog.youkuaiyun.com/w4149/article/details/78399161</guid><author>w4149</author><pubDate>Tue, 31 Oct 2017 07:48:22 +0800</pubDate><description><![CDATA[10.19思路： 
exgcd解方程，等差数列求和#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#define LL long long
using namespace std;LL a, b, c;
LL x, y;LL gcd(LL aa, LL bb, LL &x, LL &y){]]></description><category></category></item><item><title><![CDATA[stone  质检员 （二分）]]></title><link>https://blog.youkuaiyun.com/w4149/article/details/78397786</link><guid>https://blog.youkuaiyun.com/w4149/article/details/78397786</guid><author>w4149</author><pubDate>Mon, 30 Oct 2017 21:46:17 +0800</pubDate><description><![CDATA[stone  质检员10.30我们可以很容易的发现，随着W 的增加，Y 是单调减小的， 
所以说我们可以用类似于二分的方法求出最接近标准值的W，每 
次尝试可以在O(n)的时间计算出Y，所以总复杂度O(nlogn)#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#define LL long]]></description><category></category></item><item><title><![CDATA[BZOJ 2744 朋友圈 （最大团）]]></title><link>https://blog.youkuaiyun.com/w4149/article/details/78397591</link><guid>https://blog.youkuaiyun.com/w4149/article/details/78397591</guid><author>w4149</author><pubDate>Mon, 30 Oct 2017 21:29:38 +0800</pubDate><description><![CDATA[2744: [HEOI2012]朋友圈Time Limit: 30 Sec  Memory Limit: 128 MB 
Description在很久很久以前，曾经有两个国家和睦相处，无忧无虑的生活着。一年一度的评比大会开始了，作为和平的两国，一个朋友圈数量最多的永远都是最值得他人的尊敬，所以现在就是需要你求朋友圈的最大数目。 
两个国家看成是AB两国，现在是两个国家的描述： 
1.]]></description><category></category></item><item><title><![CDATA[CodeVs 2245 股票趋势 （二维线段树 zkw）]]></title><link>https://blog.youkuaiyun.com/w4149/article/details/78396835</link><guid>https://blog.youkuaiyun.com/w4149/article/details/78396835</guid><author>w4149</author><pubDate>Mon, 30 Oct 2017 20:12:13 +0800</pubDate><description><![CDATA[2245 股票趋势10.30 
时间限制: 2 s 
 空间限制: 128000 KB题目描述 Description 
彭先生任职于证券公司，是一位股票分析师。公司经理认为目前的股票分析软件仍可再改进，希望彭先生再设计一套更准确的软件。近日來，彭先生埋头钻研，他发现过去的研究结果，有人提到，如果能在历史资料中，找到与近期股票走势相近的样型，即可使用此历史样型的交易策略，做为近期的买卖策略。为了验证]]></description><category></category></item><item><title><![CDATA[合并序列]]></title><link>https://blog.youkuaiyun.com/w4149/article/details/78396483</link><guid>https://blog.youkuaiyun.com/w4149/article/details/78396483</guid><author>w4149</author><pubDate>Mon, 30 Oct 2017 19:43:37 +0800</pubDate><description><![CDATA[10.29思路： 
多路并行问题，写了个比较暴力的做法，开O2就是能过的。 
同样可以用二分。#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <queue>
#define LL long long
#define N 100010
using namespace std;i]]></description><category></category></item></channel></rss>