自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 hdu 1511 最小路径覆盖问题

一开始读了题以为是拓扑排序求几个入度是0;但是wa,队友说人走过了不能回头走了,那就不能走另一个岔路了;貌似对哈。。。。然后用二分图匹配一下 最小路径覆盖=n-最大匹配数;#includeusing namespace std;struct node{ int u,next;} e[400];int f[200],book[200],head[200];int

2017-07-28 15:20:26 267

原创 hdu 1498 最小顶点覆盖

也是最小定点覆盖问题只是多了点东西;#includeusing namespace std;int map1[200][200];struct node{ int u,next;} e[400];int f[200],book[200],color[200],out[200];int n,k;int dfs(int x,int c){ for(int

2017-07-28 15:16:32 279

原创 hdu 1498 最小顶点覆盖

也是最小定点覆盖问题只是多了点东西;#includeusing namespace std;int map1[200][200];struct node{ int u,next;} e[400];int f[200],book[200],color[200],out[200];int n,k;int dfs(int x,int c){ for(int i=

2017-07-28 15:16:30 345

原创 hdu 2119 最小顶点能覆盖

将长和宽匹配一下;求最少几个点可以让已知边都有关系;#includeusing namespace std;int map1[200][200];struct node{ int u,next;}e[400];int top,head[200],f[200],book[200];void add(int u,int v){ e[top].u=v; e

2017-07-28 15:13:42 192

原创 hdu 2768 二分图匹配

这题考的貌似是建边;如果俩人喜欢和讨厌有冲突那么俩人之间建边;跑二分图匹配求最大匹配;再用总人数一减就是结果;#includeusing namespace std;struct qq{ int u,next;}g[505];int top;int head[505],f[505],book[505];int map1[505][505];void add(

2017-07-28 15:09:53 193

原创 hdu 3729 二分图匹配

想一想就能看出来,其实就是学生和排名的最大匹配,不过只是反向开始匹配而已#include#include#includeusing namespace std;struct node{ int a,b;} e[65];int book[100100];int f[100100];int true1[65];int dfs(int x){ for(int i=

2017-07-27 10:52:50 221

原创 fzu 2234

找来回拿的最多的价值是多少,也就是俩个人从起点开始,一起走最后到终点的最大价值;dp【i】【j】【k】i为第一个人的横坐标;j为第二个人的横坐标;k为走的步数这样也就能算出纵坐标从而得到4个转移方程分别为 右下 下右 右右 下下#include#include#includeusing namespace std;#define ll long longll dp[105

2017-07-26 14:53:21 259

原创 fzu 2233 贪心并查集

要使俩个集合中的任意俩点匹配的最小值最大,所以优先将权值小的边的两点并到一起,#include#include#include#includeint f[900];using namespace std;struct node{ int x,y,val;} e[800000];int find(int x){ if(x==f[x]) re

2017-07-26 13:33:41 249

原创 hdu 4857 拓扑排序

#include  #include  #include#include#includeusing namespace std;struct node{ int u,next;}g[200000];int indegree[200000];int head[200000];int ans[200000];int top;void add(int a,int b)

2017-07-24 18:26:00 196

原创 hdu 3342 拓扑排序

#include  #include  #include#include#includeusing namespace std;struct node{ int u,next;}g[400];int indegree[400];int head[400];int top;void add(int a,int b){ g[top].u=b; g[to

2017-07-24 17:24:39 197

原创 poj 1273 网络最大流

#include#include#include#include#include#include#include#includeusing namespace std;struct edge{ int to,cap,rev;};int book[500];vectorc[500];int dfs(int s,int t,int f){ if(s==t)

2017-07-24 14:34:24 165

原创 hrbust 1492 二分图匹配

匹配到一个那么就塞进去一个所以为二分图匹配;#include  #include  #include#include#includeusing namespace std;struct node{ int u,val; int next;}e[10000*4];int top;int head[10005];void add(int u,int v)

2017-07-24 12:32:45 204

原创 二分图+染色 poj 2492

用染色法看每一个连通图里有没有相互矛盾的如果有那就是同性恋喽!!#include  #include  #include#include#includeusing namespace std;struct node{ int u,val; int next;}e[1000000*4];int top;int head[1000005];void add

2017-07-24 11:37:50 380

原创 hdu 5285 二分图+染色

#include  #include  #include#include#includeusing namespace std;struct node{ int u,val; int next;}e[100000*4];int top;int head[100005];void add(int u,int v){ e[top].u=v; e[

2017-07-24 10:41:42 280

原创 hdu 1384 差分约束+spfa

约束条件为b-(a-1)>=0和0注意点为a-1可能为0;但是是0的话i-1就越界了;所以里代码a和b全加1;这题没有环;#include  #include  #include#include#includeusing namespace std;struct node{ int u,val; int next;}e[50005*4];int t

2017-07-22 17:38:25 224

原创 poj 3159 差分约束

队列优化dij#include #include #include#include#include#include#include#includeusing namespace std;struct node{ int v,val;};#define inf 0x3f3f3fvector >g;int book[40000],dis[40000];typede

2017-07-21 11:50:18 226

原创 二分图匹配 hdu 1068

要找没关系的人是多少,首先要找到有关系的,所以先进行一次匹配,是相互认识的总人数,在除2就是认识的人一半的人数,再和不认识的加在一起,即相互不认识的最大值#include  #include  #includeusing namespace std;int e[1000][1000];char ss[2000][2000];int book[1000];int f[1000];

2017-07-20 19:40:58 189

原创 拓扑排序 hdu 2094

找到入度为0的点,也就是说没输过的点,如果总数为1个就是唯一冠军,如果不唯一那么冠军不确定,输出-1;#include#include#include#include#include#includeusing namespace std;char ss[500],ss1[500];int g[500][500];int indegree[500];int main(){

2017-07-20 19:37:31 298

原创 拓扑排序 hdu 2647

反向建边,因为最后的是888,所以反向建进行拓扑排序,再用一个数组存储拓扑当前位置的金额;#include#include#include#include#include#includeusing namespace std;vectorg[10005];int indegree[10005];int price[10005];int main(){ int n,

2017-07-20 19:34:49 219

原创 二分图匹配 匈牙利算法 hdu 4185

#include  #include  #include#define ll long long#define N 300010using namespace std;int e[1000][1000];int map2[1000][1000];char map1[1000][1000];int book[1000];int f[1000];int cont;int dfs

2017-07-20 12:59:01 219

空空如也

空空如也

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

TA关注的人

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