- 博客(66)
- 资源 (1)
- 收藏
- 关注
翻译 Firefox 此链接不安全去除
1 浏览器输入地址 about:config 2 搜索 security.insecure_field_warning.contextual.enabled3 双击值true使之变成false
2017-09-08 11:11:35 1326
原创 最大流算法_Dinic
/*最大流之Dinic算法(1)以原点s为根节点,将所有的节点按深度分层,直到将汇点t找到为止,如果直到最后都没有找到t,那说明没有路径了,最大流结束(2)从s开始,一层一层的向下寻找t,找到之后,求出最小容量边tr,依次为流量,将各边,减去tr,在将各边反向边加tr(3)回溯到f点,(f点事距离s最近,且,以该点为端点的边的容量被减为0)之后跳到第二步,继续寻找t的路径,当找不到t时,跳到
2015-08-29 13:30:05 355
原创 最大流算法_最短增广算法
/*网络流最短增广路算法*/#include<iostream>#include<cstdio>#include<cstring>#include<queue>#include<cmath>#define oo 0x3f3f3f3fusing namespace std;const int maxn = 1010;struct node{ int c,f;};in
2015-08-28 13:05:47 505
原创 最大流算法_一般曾广路算法Ford
/*最大流增广路算法*/#include<iostream>#include<queue>#include<cstdio>#include<cstring>#include<cmath>#define oo 0x3f3f3f3fconst int maxn = 1010;using namespace std;struct point{ int c,f;};poi
2015-08-27 22:23:18 576
原创 HDU_3679
#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
2015-08-16 21:31:37 435
原创 DFS_HDU_3699
有一股wa点,就是除相等判定的时候,不能直接/,因为酱紫没有保证整除#include<iostream>#include<queue>#include<algorithm>#include<cstdio>#include<cmath>#include<cstring>#include<map>#define Mod 100000000 typedef __int64 ll;usin
2015-08-16 20:22:15 505
原创 HDU_3600_八数码之类的问题是否有解
/*八数码的真谛逆序数:前面比当前位小的个数zuih据说线段数可以用来求逆序数*/#include<iostream>#include<cstdio>#include<cstring>#include<queue>#include<map>const int maxn = 1000000;using namespace std;int n;int tree[maxn<<2]
2015-08-16 10:54:43 616
原创 HDU_5010_广搜,状压
/*状态如何保存呢,不懂因为题目已经说了,最多的可以走的位置不会大于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,我们记录了相对位置之后,就可以在对应位置
2015-08-14 00:01:22 390
原创 数学_Lightoj_1214大数整出
/*大数除法*/#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(){
2015-08-07 11:15:02 429
原创 水_CF_257B
这题就是告诉你一个房间进进出出的情况,问房间最少容量为多少 标记进入的人,进就++, 出来则要考虑,标记过的,则不用处理,没标记过的,说明人就在里面,总人数就要++#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<queue>#define Max(a,b) (a)>(b)?(a)
2015-08-06 10:34:39 498
原创 水_CF_567A
题意很简单就是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
2015-08-06 10:31:10 440
原创 最短路_POJ_1062
/*很明显这个可以跑一个最短路,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
2015-08-06 10:26:38 270
原创 最短路_HDU_4370
/*我溜啊,太神了,给定的关系居然能转换成酱紫的一副图的问题,完全没有这方面的觉悟啊X12+X13+……+X1n=1可以翻译为1的初度是1X1n+X2n+……+Xn-1n=1则翻译为n的入度是1Xki(1<=k<=n) = Xij(1<=j<=n)表示为其他点的入度等于出度所以说1到n跑一遍最短路就妥妥的了,这刚好满满足条件但是,题给又没有说1的入度和n的出度情况,所以,可能在1跟n存在
2015-08-05 23:29:57 414
原创 最短路_HDU_4725
wa了无数发/*无向图,共n个点,点分层,x层-x+1层花费C(双向),此外还有m条额外的路,求1-n最短然后告诉你点的层数,那么如何建图(if(layer[u]+1==layer[v]))Dijkstra超时了Spfa也超,难道还要在搞稍微用了一下堆,还是超,似乎是建图问题如何建图比较巧妙,点是1-N,然后呢层数也是1-N,我们将层拆成点来连接,即第一层为N+1额,为何将层拆成点需
2015-08-05 16:24:33 356
原创 最短路_POJ_3268
/*最短路Dijkstra、Ford:先给距离赋值为oo,然后扫描所有边,对于起点距离不为oo更新终点距离扫描n-1遍,之后如果还能有满足更新的条件,则表明有负环Floyd:每个点间的最短距离k从1-n,k为转折点每次跟新dis[u][v] > dis[u][k] + dis[k][v]SPFA:先距离为oo,起点为0,入队列,标记在队列中,标记进入队列次数,取出点,遍历跟新
2015-08-05 00:55:05 383
原创 POJ_3660
/*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<
2015-08-05 00:50:37 575
原创 最短路_POJ_3259
/*给你一副图,能否从一点出发,回到起点,距离为负,floyd跑一遍,看自己到自己的距离会不会为负数500*500*500 12500,0000应该可以,然而无情tle这个难道只要有负环就是yes了?试一下SPFA居然真的是,然后就re了,因为队列开太小了*/#include<iostream>#include<cstdio>#include<cstring>#define M
2015-08-04 20:24:41 293
原创 最短路_Djistra_Poj_2387
本来是水的最短路,然而我用邻接表存边,强势wa无数发,尽管说有重边,我觉得不也是可以选最小边来搞,无法直视,最后妥协用数组存了/*最短路Dijkstra、Ford、SPFA*/#include<iostream>#include<cstdio>#include<cstring>#define oo 0x3f3f3f3fconst int maxn = 2020;using name
2015-08-04 10:11:35 700
原创 线段树_HDU_4107
/*区间操作,最后输出区间内的值,每一个叶子节点线段树区间维护,但是又不能更新到根节点咋搞?将操作预处理存起来?有点不靠谱啊对每个节点来说,肯定是存值为伤害的值,但是究竟是+c还是+2c,这是一个问题当然,如果我们在区间里面,保存区间的最大伤害,最小伤害,那么,如何最小伤害>=p,则说明这个区间都在+2c如果区间最大伤害<p,则说明这个区间都是进行+c操作,但是,问题来了,如果区间既有
2015-08-02 16:07:49 273
原创 线段树_HDU_1698
/*一段区间内连续修改,最后求和*/#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
2015-08-02 10:35:50 228
原创 线段树_FZU_1921
#include<iostream>#include<cstdio>#include<cstring>const int maxn = 10010;using namespace std;struct node{ int num, score;};node tree[maxn<<2];void work(int rt){ tree[rt] = tree[rt<<1
2015-07-28 20:13:42 340
原创 线段树_HDU_2795
/*h*w的广告牌,每次尽可能选上面贴,尽可能靠左贴,问给定的广告长度中,应该在第几行我应该可以令根节点等于宽度,区间值为区间内能放的最大宽度,尽可能高度10^9,然而广告条数只有n=200000,因此高度只要在n之内就好了*/#include<iostream>#include<cstdio>#include<cstring>const int maxn = 200020;usi
2015-07-28 09:32:36 262
原创 线段数_HDU_3074
区间求积,暴int#include<iostream>#include<cstdio>#define Mod 1000000007const int maxn = 50050;using namespace std;__int64 tree[maxn<<2];void work(int rt){ tree[rt] =(( tree[rt<<1]%Mod) *(tree[rt<<
2015-07-27 19:26:28 378
原创 线段树_POJ_3264
这次算的是区间内,两值只差最大是多少,那就分别存入最大,最小值,两者之差不就是答案了。//区间之内,[a,b]间两数之差最大的//存最大最小值//一个是先算最小,在算最大,跑两边//一个是最大最小一起跑//然而时间复杂度差不多#include<iostream>#include<cstdio>#include<cstring>#define oo 1000010const int
2015-07-27 15:42:00 728
原创 线段树_HDU_1754
前面是区间求和,这里是区间求最大值,写着写着,上一个疑惑就解决了#include<iostream>#include<cstring>#include<cstdio>#define oo 0x3f3f3f3fconst int maxn = 2000010;using namespace std;int tree[maxn<<2];void Max(int t){ int l
2015-07-27 14:00:14 286
原创 线段数_HDU_1166
初级的单点更新,区间求和#include<iostream>const int maxn = 50050;using namespace std;struct node{ int l,r,d; int mid(){return (l+r)>>1;}};node tree[maxn<<2];void build(int l,int r,int rot){ tre
2015-07-27 10:47:12 272
原创 数学_LightOJ_1008
#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;int main(){ int t; long long int s,si,xi,yi,di; scanf("%d",&t); for(int cas = 1; cas <= t; ca
2015-07-27 08:55:13 461
原创 二分匹配_HDU_2768
/*应该是二选一的问题,在宠物爱好上有冲突的,就必须二选1,就有一条边最后就是求最大独立点集合非二分图的最大匹配,link[u] = ,link[v] = ,不为*/#include<iostream>#include<cstdio>#include<cstring>const int maxn = 505;//人的个数using namespace std;int c,d,v;
2015-05-20 21:35:21 313
转载 HDU_1845
#include<iostream>#include<cstdio>#include<cstring>const int maxn = 5005;using namespace std;int n;int main(){ int t; int x,y,xi,yi; scanf("%d",&t); while(t--) { scan
2015-05-20 20:07:04 357
原创 二分匹配_HDU_1525
#include<iostream>#include<cstdio>#include<cstring>const int maxn = 105;using namespace std;int n,map[maxn][maxn];char adam[maxn][5],eve[maxn][5];int link[maxn],vis[maxn];int num(char a){
2015-05-20 19:22:48 280
原创 二分匹配_HDU_2389
二分匹配,建图,hk算法,然道匈牙利算法要退休了?#include<iostream>#include<cstdio>#include<cstring>#include<queue>#define oo 0x3f3f3f3fconst int maxn = 3050;using namespace std;int t,n,m;struct node{ int x,y,spe
2015-05-16 11:32:31 468
原创 二分匹配_HDU_3081
男女搭配,女生还可以跟闺蜜的可搭配的男生搭配,而且闺蜜还具有传递关系,问最后有多少种搭配方式。 首先,求搭配方式就是一种搭配成功,就把这个搭配的边删除,在搭配 然后就是传递之间的搭配,我是比较土的dfs出闺蜜圈,然后在搭上可以配对的#include<iostream>#include<cstdio>#include<cstring>const int maxn = 105;using n
2015-05-11 19:18:54 256
原创 二分图_HDU_2236
心好累,wa成狗,推代码重写过了 选择行列,二分图的性质,选择匹配 要差值最大 二分答案,枚举最小值 为何区间不是成功向上移而是失败向上移呢?[ma,ma+ans]的区块,如果匹配不到,说明范围太小,加大ans,故上移,#include<iostream>#include<cstring>#include<cstdio>const int maxn = 105;using names
2015-05-09 23:59:06 258
原创 并查集_HDU_2235
藏的很深的并查集,先按每个点的高度排序,从最小并查起 每次访问点的四边,看是否有以当前高度为边的可以放水的 然后还要标记点在哪些情况下是是段木板,例如 4 4 4 4 4 4 4 0 1 4 4 2 3 4 4 4 4 4 按照高度排序之后,从小开始,我们先读到0的位置,那么0的四周没有比 0小的,不存在以它为边可以放水的,访问1时,存在0可以放水,放完水之后,0并到1,之后访问2
2015-05-09 14:57:58 373
原创 二分图_HDU_4185
#include<iostream>#include<cstdio>#include<cstring>const int maxn = 605;using namespace std;char map[maxn][maxn];int n;int vis[maxn][maxn],link[maxn*maxn],dp[maxn*maxn];int Hash[maxn][maxn];in
2015-05-06 00:43:01 328
原创 二分图_HDU_1045
/*二分图的构造拆行、拆列*/#include<iostream>#include<cstdio>#include<cstring>const int maxn = 10;using namespace std;char map[maxn][maxn];int n;int link[maxn*maxn],vis[maxn*maxn];int col[maxn], row[ma
2015-05-06 00:41:37 281
原创 二分图_HDU_1054
/*hdu1054_最小点覆盖 = 最大匹配*/#include<iostream>#include<cstdio>#include<cstring>const int maxn = 1505;using namespace std;struct node{ int u, v, next;};node e[maxn*1000];int head[maxn],tot;
2015-05-06 00:40:17 283
原创 DFS_HDU_5222
有双向边,有单向边,问是否存在一点出发,回到出发点,也就是成环 直接深搜一发,在记得回溯边跟点,内存4*maxn#pragma comment(linker, "/STACK:102400000,102400000")#include<iostream>#include<cstdio>#include<cstring>const int maxn = 1000005;using name
2015-05-02 22:56:53 280
原创 二分匹配_HDU_1498
在n*n的矩阵里面有1到50这样标记的气球,每次你可以搓爆同行或列的同标记的气球,问k次机会不能戳爆的气球的编号 PS:这题跟上一题的划掉1一个道理,同种气球就是1,只不过现在是对每一个气球都单独当成01矩阵来最小点覆盖,最后统计不能在k内覆盖的#include<iostream>#include<cstdio>#include<cstring>const int maxn = 105;u
2015-04-24 20:17:03 220
nginx-1.10.3.tar.gz、nginx-sticky-module-1.1.tar.gz 实现session粘性共享
2017-11-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人