自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

野生的TFgirl

厚厚一堵墙,却挡不住心底的月光。

  • 博客(43)
  • 资源 (1)
  • 收藏
  • 关注

原创 poj3635 Full Tank?(spfa+dp)

//package project1;//可以先不用考虑加油//只考虑到这个点剩余油量为j的最小花费//那么我们可以按照最短路的方式来更新//然后再在这个点统一加油//一升一升的更新,因为j-1是最优的,用j-1更新的j也一定是最优的。//因为要么不加油,要么加的油量肯定大于等于1升//如果j-1不是最优,那么少加一升的适合肯定会更新的,import java.io.*;impo

2015-07-31 16:41:20 450

原创 hdu 5335 Walk Out

//package project1;//hdu 5335//很神奇,首先找到走0可以走的最远的地方//然后每一斜行为一组,有0扩展,没有0走1import java.io.*;import java.util.Arrays;import java.util.Queue;import java.util.Scanner;import java.util.StringTokenize

2015-07-31 12:24:52 406

原创 hdu 5324 Boring Class(15多校第三场1009)(cdq分治)

//cdq分治//用cdq分治变无序为有序,降低时间复杂度。//降二维为一维。好神奇,虽然还是不大明白。orz#include#include#include#include#include#includeusing namespace std;#define eps 1e-9#define inf 1e9const int N=120010;int c[N];stru

2015-07-30 08:51:27 390

原创 hdu 5323 Solve this interesting problem(15多校第三场1008)(暴力)

//hdu 5323 暴力= =#include#includeusing namespace::std;typedef long long LL;const LL INF=1e18;LL ans=0;void dfs(LL L,LL R){ if(L<0)return; if(R>=ans)return;//剪枝 if(L==0){//符合条件

2015-07-28 21:25:54 438

原创 hdu 5319 Painter(15多校第三场1004)

#include#include#include#include using namespace std;char map[100][100];bool vis[100][100];int D1[2][2]={{1,1},{-1,-1}};int D2[2][2]={{1,-1},{-1,1}};int n,m;bool check(int x,int y){ if(x

2015-07-28 21:01:07 379

原创 hdu5317 RGCDQ(15多校第三场1002)(大暴力)

//hdu 5317//预处理+暴力#include#includeusing namespace::std;typedef long long LL;const int N = 1000005;int F[N],num[N][10];void init(){ F[0]=F[1]=0; for(int i=2;i<N;i++){ if(F[i])

2015-07-28 20:41:09 581

原创 hdu5316 Magician(15多校第三场1001)(线段树)

//15多校第三场1001//线段树 奇偶区间合并//保证00、01、10、11分别维护的是偶偶,偶奇,奇偶,奇奇开头结尾的区间最大值#include#includeusing namespace::std;typedef long long LL;const int N = 100010;const int INF=-0x7fffffff;#define lson 2*o,l

2015-07-28 20:05:26 340

原创 poj3621 最优比例生成环

//给出一个有向图,问求一个回路,使得回路上的点权之和/边权之和 最大//01分数规划//首先可以证明最优解一定是一个单独的环。//设大环套小环最优,大环为花费x1,收益y1,小环为花费x2,收益y2,重叠部分花费x3,收益y3//那么大环套小环花费x1+x2,收益y1+y2-y3,可以推出(y1+y2-y3)/(x1+x2)要么小于y1/x1,要么小于y2/x2//则最优解一定是一个单

2015-07-28 17:01:08 450

原创 poj3613Cow Relays (经过n条边的最短路)

//poj 3613//求经过n条边的最短路//此题让我更深入的了解了最短路的floyed算法//首先对于一个图的可达矩阵A而言(可达为1,不可达为0),A表示是否直接可达。//A*A表示是否中间经过一个点k可达(因为是累加所有情况,只要有一个k可达,数字大于1,即为可达)。//那么我们求的这个数字除了表示是否可达,有没有别的含义呢?//在矩阵乘法过程中,我们做的累加实际上就是加法原理

2015-07-27 22:29:32 1638

原创 poj3463Sightseeing(最短路条数+次短路条数)

//poj 3463//次短路长度为最短路长度+1//最短路条数+次短路条数//分四种情况更新,练习了dijstra的更新//路条数用加法原理更新#include#include#include#includeusing namespace std;const int N=10100,M=100100;const int INF=0x3fffffff;#define clr

2015-07-27 17:18:36 453

原创 poj2499 Remmarguts' Date 第K短路(spfa+A*)

//poj 2449第K短路//spfa + A*#include#include#include#includeusing namespace std;const int N=10100,M=100100;const int INF=0x3fffffff;int cnt;struct Node{ int u,v,w,next;}edge[2*M];int head

2015-07-27 15:56:54 433

原创 hdu 3718Similarity(二分图最大权匹配)

//hdu 3718//两个字符串的最大相似度//容易看出,字符与字符只能一一对应//如果字符i与字符j对应,那么权值就为此类对应存在的数量。#include#include#include#include#includeusing namespace std;#define clr(a) memset(a,0,sizeof(a))const int N=500;const

2015-07-27 10:53:48 419

原创 hdu 2853Assignment (二分图的最大权匹配)

//hdu2853//二分图的最大权匹配,图中有一些边,在等权值的条件下有优先选择权。//因为是选n个进行匹配,我们将每条边的权值扩大(n+1)倍,这样每条边相对大小是一样的//对于有优先选择权的边,我们将这些边的权值加一,这样权值大的优先,但是加1的结果不会大于n//最后除以n就可以把这部分忽略掉。答案对n取模得出的就是我们选择有优先选择权边的数量。#include#include

2015-07-27 09:16:44 552

原创 poj2195 Going Home(二分图的最小权匹配)

//二分图的最小权匹配//将权值以及顶标初始化为负,最后取反就好#include#include#include#includeusing namespace std;#define clr(a) memset(a,0,sizeof(a));const int N=300;const int INF=0x3fffffff;int G[204][204];struct KM{

2015-07-26 20:10:37 389

原创 hdu 3722Card Game(KM匹配求环)

//求图中环的最大权//直接拆点,求二分图的最大权匹配。#include#include#includeusing namespace std;#define clr(a) memset(a,0,sizeof(a));const int N=300;const int INF=0x3fffffff;char dic[204][1024];int score[204][204];

2015-07-26 19:41:50 381

原创 二分匹配小结

对于二分匹配问题有三个常用的结论:1.二分图的最大匹配数等于最小覆盖数2.二分图的独立数等于顶点数减去最大匹配数3.最小路径覆盖 = 顶点数 - 最大匹配数(有向图要先拆点建二分图)设最大匹配为M,匹配数为|M|首先对于我们已经匹配的二分图匹配|M|一定是有这样的性质的:对于任意的属于|M|只存在或,这两者是不可能同时存在的。因为如果同时存在,那么我们必

2015-07-26 14:55:12 427

原创 hdu 3681The King’s Problem(强连通分量+最小路径覆盖)

//hdu 3861//给定一张有向图,划分成几个部分,//对于u可以到v,v可以到u的点必须在同一部分//同一部分中u可以到v或者v可以到u//我们首先将图的强连通分量写出来,缩点,//对于当前的有向无环图求最小路径覆盖//为什么是最小路径覆盖呢?//因为每一个部分的任两个点都是单向可达的,实际上每一部分都是一个路径,//因为若分叉,由于方向性,必然分叉与分叉直接互不可达,不符合

2015-07-26 14:12:45 446

原创 hiho一下 第五十六周 高斯消元·一(高斯消元解整数方程组)

#include#include#include#include#include#includeusing namespace::std;const int N=510,M=1050;#define eps 1e-7double A[M][N];double x[N];int Gauss(int equ,int var){ int row,col; for(r

2015-07-26 10:15:51 573 2

原创 hdu 3517 Adopt or not(二分图最大独立集关键点)

//hdu3517//最大独立集//此题求独立集中的关键点//对于某点,如果未匹配(cx[i]==-1,cy[i]==-1),肯定在关键点中//对于匹配中的点,若此点不是匹配中的关键点,那么删除此点最大匹配数不会改变,//|V|减小,独立集变小,不能删。//那么此点为独立集中的关键点//(如果此点是二分图中的关键点,那么删除此点,最大匹配数减小,那么|V|-|M|增大,可以删。)#

2015-07-25 20:04:05 554

原创 二分匹配Hopcroft-Karp算法

#include#include#includeusing namespace std;const int N = 110;const int INF=0x7fffffff;int bmap[N][N];//每次记得清空//对于两边各50000个点,200000条边的二分图最大匹配可以在1s内出解,效果很好:)struct HK{//用HK算法求解二分最大匹配问题(时间复杂度为sq

2015-07-25 11:08:13 611

原创 hdu 2819 Swap 二分图的最大匹配

//hdu 2819//直接按照给定的矩阵建图//判断匹配是否能达到n//然后选择排序确定交换顺序。#include#include#includeusing namespace::std;const int INF=0x7fffffff;const int N=110;int g[N][N];int L[N],R[N];struct Hungary{ int us

2015-07-25 09:16:08 397

原创 hdu3729 I'm Telling the Truth(二分图最大匹配)

//hdu 3729//对于区间而言,只能选择固定的人数,且每个排名只能有一个人,很显然左边人数,右边区间进行二分匹配。//对于字典序最大的匹配,我们枚举人的时候,从n->1,这样保证尽可能选后面。#include#include#includeusing namespace::std;const int INF=0x7fffffff;const int N=100,M=10001

2015-07-24 21:47:35 812

原创 hdu 3118 Arbiter(枚举构造二分图)

//hdu3118 枚举//实际上是在图中最少减去多少边令图上没有奇数环,实际上就是二分图//利用二进制枚举,0、1表示两个集合。//对于每种染色状态,枚举边,冲突则删掉。#include#include#includeusing namespace::std;const int INF=0x7fffffff;const int N=20,M=500;int g[N][N];

2015-07-24 21:09:30 419

原创 hdu1045 Fire Net(二分图最大匹配)

//hdu 1045 二分最大匹配//以行和列为点,可以放的连边,中间有墙的看做不同的行或列。//求二分图的最大匹配。同一行同一列只能放一个。即连某个点的边只能有一条。//行和行,列和列之间互不影响。#include#include#includeusing namespace::std;const int N=10;char map[N][N];int g[N][N];in

2015-07-24 20:40:59 1132

原创 hiho一下 第五十五周 连通性·四(无向图点双连通分量)

#include#include#includeusing namespace std;const int N=20010;const int M=202000;const int INF=0x7fffffff;struct edge{ int u,v,next; int id;}edge[M];int group[M],mmin[M];int cnt,hea

2015-07-24 17:08:46 438

原创 hdu 2444 The Accomodation of Students (判断二分图+最大匹配)

//hdu 2444(判断二分图+最大匹配)//判断二分图用bfs进行染色,如果染色过程中出现矛盾,就不是二分图。0-1-0-1-0//二分图的充要条件,无向图中,顶点数大于2,且所有回路长度都是偶数。#include#include#includeusing namespace std;const int N=400;int n,m,k;int g[N][N];struct

2015-07-24 11:20:17 337

原创 hdu1151 air Raid(最小路径覆盖)

//hdu 1151//访问小镇最多需要几个士兵,每个士兵的路无交点,实际上就是求有向无环图的最小路径覆盖//最小路径覆盖(不要求二分图):在图中找一些路径,使之覆盖了图中的所有顶点,且任何一个顶点有且只有一条路径与之关联//最小路径覆盖 = 顶点数 - 最大匹配数//对于有向无环图,首先拆点,建成二分图再进行求解#include#include#includeusing name

2015-07-24 10:36:27 311

原创 hdu 1150 Machine Schedule(最小点覆盖)

//hdu 1150//把job看成是一条边,选某个点,就表示某个点要重启一次,实际上,某个点最多需要选择一次就够了。//因为如果重启两次的话,第二次的任务肯定在第一次的时候可以完成。//最小点覆盖=最大匹配#include#include#includeusing namespace std;const int N=110;int n,m,k;int g[110][110];

2015-07-24 09:57:32 368

原创 hdu 1281 棋盘游戏

//hdu 1281 二分匹配//选重要边的时候,暴力枚举每一条边,如果去掉这条边后最大匹配数减小,则为重要边。//因为没写#include RE了一小时,已哭晕。#include#include#includeusing namespace::std;const int N = 110;int g[N][N];struct Hungary{ int used[N

2015-07-23 11:22:09 352

原创 hdu1068 Girls and Boys(二分匹配)

//hdu 1068 二分匹配。//我们要求的是一个二分图的最大点独立集。//对于二分图而言,最大点独立集 = 总点数 - 最大匹配数(边最小覆盖)//集合内部的二分匹配,可以通过拆点进行扩展。//对于一个无法分清哪些点属于A,哪些点属于B的二分图。//可以考虑拆点,实际上就是把原来的二分图作了一个对称,//这两个二分图之间是相互独立的。//对于这个新的二分图,我们求出的最大匹配数是

2015-07-23 10:00:27 391

原创 hdu 5296 Annoying problem(15多校第一场1009)(在线lca+dfs序)

//多校第一场 1009 在线lca+树的dfs序//对于每个节点,找S集合中离它最近的一条链。算距离。//如果u在树中,找左右最近的点的lca链,连上去。//如果u不在S树中,就找树上最靠上最外围的链连上去。//虽然并不太明白。。//不得不说,树的dfs序很神奇。。orz//dfs序可以将树转换成线性结构=-=腻害!#include#include#includeusing

2015-07-22 19:40:00 357

原创 hdu 5294 Tricks Device(15多校第一场1007)(spfa+最小割)

//最小割+spfa#include#include#includeusing namespace std;typedef long long LL;#define MIN(a,b) a<b?a:b#define MAX(a,b) a>b?a:bconst int N=50000,M=500000,INF=0x3fffffff;int n,m;struct EDGE{

2015-07-22 19:37:03 368

原创 hdu 5293 Tree chain problem(15多校第一场1006)(树形dp+树状数组+LCA)

//树形dp+LCA+树状数组//对于每个节点i,定义dp[i]为一个i为根节点的选择权值和。// sum[i]=Sum(dp[k]) k为i的儿子//对于转移状态,我们有两种选择,一是,不选择新链 即为sum[i]//二 是选择一条新链,因为定义的状态只包含i及i的子树,所以我们在更新的时候不用考虑i之上的点。//既然为新链,必然包含节点i(否则在i的子树中已经计算过了。)//包

2015-07-22 19:34:25 517

原创 hdu 5289 Assignment(15多校第一场1002)

//15多校第一场1002//RMQ+二分//求最大值最小值小于k的区间数。//RMQ预处理区间的极值。//然后通过枚举区间左端点,二分右端点进行累加。//每次累加的个数为区间长度(R-L+1);#include#includeusing namespace std;typedef long long LL;#define MIN(a,b) a<b?a:b#define MA

2015-07-22 19:31:22 328

原创 hdu 5288 OO’s Sequence(15多校第一场1001)

//15多校第一场 1001 暴力//若有多数需要求因子,且数的范围较小,可以考虑预处理#include#include#includeusing namespace std;const int N=100100;int a[N];vectorf[10010],vec[10010];const long long M=1000000007;int n;#define MAX(

2015-07-22 19:25:01 351

原创 高斯消元模板整理

//高斯消元法解异或方程组,返回方程解得个数。const int N = 30;int A[N][N];//关系矩阵int Gauss(int equ,int var){//返回解得个数。 int row,col; for(row=0,col=0;row<equ&&col<var;col++,row++){ int max_r=row;//默认最大为本行

2015-07-20 12:18:47 2403 2

原创 hdu 4818 RP problem

//高斯消元法解线性方程组//每一个方程都是 进==出//Ai1 * x1 + Ai2 *x2 + Ai3 * x3 +...+ An-1 * xn-1 = xi;//所以别的点流进==本点流出xi//移项发现每个A[i][i]=-1;//A[i][j]=1/d[j];d[j]为j点出度。//n个方程解n个未知数。要么是唯一解,要么是无穷解。//若是唯一解,则枚举所有A->j(j为与

2015-07-20 12:05:28 982

原创 hdu 4307 Matrix( 公式化最小割)

公式1:公式2:    //  膜拜网上的大牛们。。。orz//首先,最小割解决的问题可以转换成的公式(1)(最小割即为求f的最小值)//xi可以取0,1且只能选其中的一个,所以可以考虑用最小割。//其次只考虑一个元素xi时,xi=0,可以获得ai的收益,xi=1时,可以获得bi的收益,//考虑两个元素xi,xj,xi=1,xj=1时,可以获得ci的收益。

2015-07-19 12:55:25 464

原创 图论之树链剖分模板

#include #include #include #include using namespace std;#define MEM(a,b) memset(a,b,sizeof(a));int n,m,s;const int maxn=100010;struct Node{ int u,v,w,next;}e[maxn],edge[2*maxn];int cnt;

2015-07-18 14:08:05 426

原创 图论之离线lca模板

#include #include #include #include using namespace std;#define MEM(a,b) memset(a,b,sizeof(a));const int N=100010;int n,m;struct Edge{ int u,v,w,next;}edge[2*N],Q[N];int fa[N],dis[N];

2015-07-18 14:05:51 419

C语言函数速查

关于C语言的库函数 比较常见的函数 挺好用的 分享给大家

2014-01-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除