<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[whj_lim的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/whj_lim</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; whj_lim]]></copyright><item><title><![CDATA[Firefox 此链接不安全去除]]></title><link>https://blog.youkuaiyun.com/whj_lim/article/details/77892267</link><guid>https://blog.youkuaiyun.com/whj_lim/article/details/77892267</guid><author>whj_lim</author><pubDate>Fri, 08 Sep 2017 11:11:35 +0800</pubDate><description><![CDATA[1 浏览器输入地址 about:config
 
2  搜索 security.insecure_field_warning.contextual.enabled


3 双击值true使之变成false]]></description><category></category></item><item><title><![CDATA[最大流算法_Dinic]]></title><link>https://blog.youkuaiyun.com/whj_lim/article/details/48086747</link><guid>https://blog.youkuaiyun.com/whj_lim/article/details/48086747</guid><author>whj_lim</author><pubDate>Sat, 29 Aug 2015 13:30:05 +0800</pubDate><description><![CDATA[/*
最大流之Dinic算法
(1)以原点s为根节点，将所有的节点按深度分层，直到将汇点t找到为止，如果直到最后都没有找到t,那说明没有路径了，最大流结束
(2)从s开始，一层一层的向下寻找t,找到之后，求出最小容量边tr,依次为流量，将各边，减去tr,在将各边反向边加tr
(3)回溯到f点，（f点事距离s最近，且，以该点为端点的边的容量被减为0）之后跳到第二步，继续寻找t的路径，当找不到t时，跳到]]></description><category></category></item><item><title><![CDATA[最大流算法_最短增广算法]]></title><link>https://blog.youkuaiyun.com/whj_lim/article/details/48050743</link><guid>https://blog.youkuaiyun.com/whj_lim/article/details/48050743</guid><author>whj_lim</author><pubDate>Fri, 28 Aug 2015 13:05:47 +0800</pubDate><description><![CDATA[/*
网络流最短增广路算法
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<cmath>
#define oo 0x3f3f3f3f
using namespace std;
const int maxn = 1010;
struct node
{
    int c,f;
};
in]]></description><category></category></item><item><title><![CDATA[最大流算法_一般曾广路算法Ford]]></title><link>https://blog.youkuaiyun.com/whj_lim/article/details/48036865</link><guid>https://blog.youkuaiyun.com/whj_lim/article/details/48036865</guid><author>whj_lim</author><pubDate>Thu, 27 Aug 2015 22:23:18 +0800</pubDate><description><![CDATA[/*
最大流增广路算法
*/
#include<iostream>
#include<queue>
#include<cstdio>
#include<cstring>
#include<cmath>
#define oo 0x3f3f3f3f
const int maxn = 1010;
using namespace std;
struct point
{
    int c,f;
};
poi]]></description><category></category></item><item><title><![CDATA[HDU_3679]]></title><link>https://blog.youkuaiyun.com/whj_lim/article/details/47706827</link><guid>https://blog.youkuaiyun.com/whj_lim/article/details/47706827</guid><author>whj_lim</author><pubDate>Sun, 16 Aug 2015 21:31:37 +0800</pubDate><description><![CDATA[#include<iostream>
#include<queue>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<map>
#define Mod 1000000007 
typedef __int64 ll;
const int maxn = 1100;
using namespac]]></description><category></category></item><item><title><![CDATA[DFS_HDU_3699]]></title><link>https://blog.youkuaiyun.com/whj_lim/article/details/47705817</link><guid>https://blog.youkuaiyun.com/whj_lim/article/details/47705817</guid><author>whj_lim</author><pubDate>Sun, 16 Aug 2015 20:22:15 +0800</pubDate><description><![CDATA[有一股wa点，就是除相等判定的时候，不能直接/，因为酱紫没有保证整除#include<iostream>
#include<queue>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<map>
#define Mod 100000000 
typedef __int64 ll;
usin]]></description><category></category></item><item><title><![CDATA[HDU_3600_八数码之类的问题是否有解]]></title><link>https://blog.youkuaiyun.com/whj_lim/article/details/47700643</link><guid>https://blog.youkuaiyun.com/whj_lim/article/details/47700643</guid><author>whj_lim</author><pubDate>Sun, 16 Aug 2015 10:54:43 +0800</pubDate><description><![CDATA[/*
八数码的真谛
逆序数：前面比当前位小的个数zuih
据说线段数可以用来求逆序数
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<map>
const int maxn = 1000000;
using namespace std;
int n;
int tree[maxn<<2]]]></description><category></category></item><item><title><![CDATA[HDU_5010_广搜，状压]]></title><link>https://blog.youkuaiyun.com/whj_lim/article/details/47627155</link><guid>https://blog.youkuaiyun.com/whj_lim/article/details/47627155</guid><author>whj_lim</author><pubDate>Fri, 14 Aug 2015 00:01:22 +0800</pubDate><description><![CDATA[/*
状态如何保存呢，不懂
因为题目已经说了，最多的可以走的位置不会大于32，这是不是暗示着什么呢，有点意思
在仔细看一下这个地图上面的东西，会有“.(0)”、“S(1)”、“M(2)”、“P(3)”
那么就是四个状态，也就是4进制，32位来表示
一个四进制的3210表示十进制为3*4^3+2*4^2+1*4^1+0*4^0=228
那就是4^3 = 2^6，我们记录了相对位置之后，就可以在对应位置]]></description><category></category></item><item><title><![CDATA[数学_Lightoj_1214大数整出]]></title><link>https://blog.youkuaiyun.com/whj_lim/article/details/47336315</link><guid>https://blog.youkuaiyun.com/whj_lim/article/details/47336315</guid><author>whj_lim</author><pubDate>Fri, 07 Aug 2015 11:15:02 +0800</pubDate><description><![CDATA[/*
大数除法
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
typedef long long ll;
const int maxn = 222;
using namespace std;
char a[maxn];
int b;
vector<ll> ve;
int Divisible()
{]]></description><category></category></item><item><title><![CDATA[水_CF_257B]]></title><link>https://blog.youkuaiyun.com/whj_lim/article/details/47312813</link><guid>https://blog.youkuaiyun.com/whj_lim/article/details/47312813</guid><author>whj_lim</author><pubDate>Thu, 06 Aug 2015 10:34:39 +0800</pubDate><description><![CDATA[这题就是告诉你一个房间进进出出的情况，问房间最少容量为多少 
标记进入的人，进就++， 出来则要考虑，标记过的，则不用处理，没标记过的，说明人就在里面，总人数就要++#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
#define Max(a,b) (a)>(b)?(a)]]></description><category></category></item><item><title><![CDATA[水_CF_567A]]></title><link>https://blog.youkuaiyun.com/whj_lim/article/details/47312723</link><guid>https://blog.youkuaiyun.com/whj_lim/article/details/47312723</guid><author>whj_lim</author><pubDate>Thu, 06 Aug 2015 10:31:10 +0800</pubDate><description><![CDATA[题意很简单就是x轴上一些点，然后叫你输出这个点与之最近和最远的距离长分别为什么#include<iostream>
#include<cstdio>
#include<algorithm>
#define Max(a,b) (a)>(b)?(a):(b)
#define Min(a,b) (a)<(b)?(a):(b)
const int maxn = 200010;
using namespace]]></description><category></category></item><item><title><![CDATA[最短路_POJ_1062]]></title><link>https://blog.youkuaiyun.com/whj_lim/article/details/47312617</link><guid>https://blog.youkuaiyun.com/whj_lim/article/details/47312617</guid><author>whj_lim</author><pubDate>Thu, 06 Aug 2015 10:26:38 +0800</pubDate><description><![CDATA[/*
很明显这个可以跑一个最短路，1出发到n个点的价值距离，取最小即为答案，但是，有一个问题，就是等级限制m
如果起点等级为L1,那么他接下来能访问的是[L1-m, L1+m],假设他接下来访问了L2, L2下面可以访问[l2-m,l2+m]
显然，这应该是两个区间取交集[Max(L1,L2)-m, Min(L1,L2)+m]为接下来可以访问的
但是酱紫处理不了一种情况，就是1-3-4是最短，但是1]]></description><category></category></item><item><title><![CDATA[最短路_HDU_4370]]></title><link>https://blog.youkuaiyun.com/whj_lim/article/details/47306277</link><guid>https://blog.youkuaiyun.com/whj_lim/article/details/47306277</guid><author>whj_lim</author><pubDate>Wed, 05 Aug 2015 23:29:57 +0800</pubDate><description><![CDATA[/*
我溜啊，太神了，给定的关系居然能转换成酱紫的一副图的问题，完全没有这方面的觉悟啊
X12+X13+……+X1n=1可以翻译为1的初度是1
X1n+X2n+……+Xn-1n=1则翻译为n的入度是1
Xki(1<=k<=n) = Xij(1<=j<=n)表示为其他点的入度等于出度
所以说1到n跑一遍最短路就妥妥的了，这刚好满满足条件
但是，题给又没有说1的入度和n的出度情况，所以，可能在1跟n存在]]></description><category></category></item><item><title><![CDATA[最短路_HDU_4725]]></title><link>https://blog.youkuaiyun.com/whj_lim/article/details/47299309</link><guid>https://blog.youkuaiyun.com/whj_lim/article/details/47299309</guid><author>whj_lim</author><pubDate>Wed, 05 Aug 2015 16:24:33 +0800</pubDate><description><![CDATA[wa了无数发/*
无向图，共n个点,点分层，x层-x+1层花费C(双向)，此外还有m条额外的路，求1-n最短
然后告诉你点的层数，那么如何建图(if(layer[u]+1==layer[v]))
Dijkstra超时了
Spfa也超，难道还要在搞
稍微用了一下堆，还是超，似乎是建图问题
如何建图比较巧妙，
点是1-N,然后呢层数也是1-N，我们将层拆成点来连接，即第一层为N+1
额，为何将层拆成点需]]></description><category></category></item><item><title><![CDATA[最短路_POJ_3268]]></title><link>https://blog.youkuaiyun.com/whj_lim/article/details/47286527</link><guid>https://blog.youkuaiyun.com/whj_lim/article/details/47286527</guid><author>whj_lim</author><pubDate>Wed, 05 Aug 2015 00:55:05 +0800</pubDate><description><![CDATA[/*
最短路
Dijkstra、
Ford:
先给距离赋值为oo,然后扫描所有边，对于起点距离不为oo更新终点距离
扫描n-1遍，之后如果还能有满足更新的条件，则表明有负环
Floyd:
每个点间的最短距离
k从1-n，k为转折点
每次跟新dis[u][v] > dis[u][k] + dis[k][v]
SPFA:
先距离为oo,起点为0，
入队列，标记在队列中，标记进入队列次数，取出点，遍历跟新]]></description><category></category></item><item><title><![CDATA[POJ_3660]]></title><link>https://blog.youkuaiyun.com/whj_lim/article/details/47286429</link><guid>https://blog.youkuaiyun.com/whj_lim/article/details/47286429</guid><author>whj_lim</author><pubDate>Wed, 05 Aug 2015 00:50:37 +0800</pubDate><description><![CDATA[/*
poj 3660
又是n（100）头牛，牛要干一架了，给你打架的结果M(a,b),a赢b,问
几头牛的实力可以被确定
（4，3）（4，2）（3，2）（1，2）（2，5）
这个会是最短路，感觉不像啊
还不如顶点出发，扫描遍过去，最后如果访问次数为n-1,表示其他点都可以访问我，几关系确定
嘿嘿，AC
*/
#include<iostream>
#include<cstdio>
#include<]]></description><category></category></item><item><title><![CDATA[最短路_POJ_3259]]></title><link>https://blog.youkuaiyun.com/whj_lim/article/details/47281985</link><guid>https://blog.youkuaiyun.com/whj_lim/article/details/47281985</guid><author>whj_lim</author><pubDate>Tue, 04 Aug 2015 20:24:41 +0800</pubDate><description><![CDATA[/*
给你一副图，能否从一点出发，回到起点，距离为负，
floyd跑一遍，看自己到自己的距离会不会为负数
500*500*500 12500，0000应该可以,然而无情tle
这个难道只要有负环就是yes了？
试一下SPFA
居然真的是，然后就re了，因为队列开太小了
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#define M]]></description><category></category></item><item><title><![CDATA[最短路_Djistra_Poj_2387]]></title><link>https://blog.youkuaiyun.com/whj_lim/article/details/47272789</link><guid>https://blog.youkuaiyun.com/whj_lim/article/details/47272789</guid><author>whj_lim</author><pubDate>Tue, 04 Aug 2015 10:11:35 +0800</pubDate><description><![CDATA[本来是水的最短路，然而我用邻接表存边，强势wa无数发，尽管说有重边，我觉得不也是可以选最小边来搞，无法直视，最后妥协用数组存了/*
最短路
Dijkstra、Ford、SPFA
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#define oo 0x3f3f3f3f
const int maxn = 2020;
using name]]></description><category></category></item><item><title><![CDATA[线段树_HDU_4107]]></title><link>https://blog.youkuaiyun.com/whj_lim/article/details/47208179</link><guid>https://blog.youkuaiyun.com/whj_lim/article/details/47208179</guid><author>whj_lim</author><pubDate>Sun, 02 Aug 2015 16:07:49 +0800</pubDate><description><![CDATA[/*
区间操作，最后输出区间内的值，每一个叶子节点
线段树区间维护，但是又不能更新到根节点咋搞？
将操作预处理存起来？有点不靠谱啊
对每个节点来说，肯定是存值为伤害的值，但是究竟是+c还是+2c,这是一个问题
当然，如果我们在区间里面，保存区间的最大伤害，最小伤害，那么，如何最小伤害>=p，则说明这个区间都在+2c
如果区间最大伤害<p，则说明这个区间都是进行+c操作，但是，问题来了，
如果区间既有]]></description><category></category></item><item><title><![CDATA[线段树_HDU_1698]]></title><link>https://blog.youkuaiyun.com/whj_lim/article/details/47205141</link><guid>https://blog.youkuaiyun.com/whj_lim/article/details/47205141</guid><author>whj_lim</author><pubDate>Sun, 02 Aug 2015 10:35:50 +0800</pubDate><description><![CDATA[/*
一段区间内连续修改，最后求和
*/
#include<iostream>
const int maxn = 100010;
using namespace std;
int lazy[maxn<<2];
struct node
{
    int l, r,d;
};
node tree[maxn<<2];
int ans;
void work(int rt)
{
    tree[rt].d]]></description><category></category></item></channel></rss>