H煊的博客

好困

排序:
默认
按更新时间
按访问量

拓扑排序

int indegree[100]; queue<int> q; int n,m; bool map[100][100]; int a[100]; int topo(int n) { int cnt = 1; while(!q.empty...

2018-05-24 18:17:43

阅读数:41

评论数:0

青蛙的约会(poj 1061)

青蛙的约会假设:跳x1次后相遇,相遇时路乘差是y1*l(跳了y1圈)列出方程:x+m*x1-(y+n*x1)=y1*l ;化简为(n-m)*x1+y1*l=x-y ;代码:#include<iostream> #include<cs...

2018-05-16 17:30:18

阅读数:33

评论数:0

Romantic(hdu 2669)

Romantic扩展欧几里德算法。先用扩展欧几里德算法求出x,y然后再判断x是否大于0,如果小于0,则通过循环+b,直到x>0,在输出答案.代码:#include<iostream> #include<cstd...

2018-05-16 15:50:08

阅读数:31

评论数:0

欧拉路,回路

判定:   欧拉路:       有向图:图连通,有一点入度>出度,有一点出度>入度,其余点入度=出度或入度=出度;Play on Words       无向图:图连通,零个或两个奇数度,其余偶数度;一笔画问题   欧拉回路:       有向图:图连...

2018-05-16 15:42:15

阅读数:28

评论数:0

Watchcow(poj 2230)

Watchcow求无向图每条边恰好经过两次,在回到原点,输出经过的顶点。容易转化为有向图欧拉回路每条边经过一次。代码:#include <stdio.h> #include <stack> #include &...

2018-05-15 22:16:03

阅读数:34

评论数:0

John's trip(poj 1041)

John's trip题目大意: 给出无向图,每条边有唯一的序号,是否存在欧拉回路,若存在输出边序号最小字典序的路径。下面代码没有判断图连通,根据题意图应该联通了,只需判断零个奇数点就可以了。代码:#include <cstdio> #include &...

2018-05-15 21:16:54

阅读数:34

评论数:0

Play on Words

Play on Words题意就是给你n个由小写字母构成的字符串,问你能不能将这n个字符串连接起来,B能接在A后面的条件是A的最后一个字母==B的第一个字母。然后就是将26个小写字母看成顶点集,对于一个字符串,其首字母向尾字母连一条单向边构图,所以本题就是有向图的欧拉路问题。代码:#include...

2018-05-15 20:22:58

阅读数:23

评论数:0

Ant Trip(HDU 3018)

Ant Trip一笔画问题,无向图欧拉路或者欧拉回路,注意题目说了,如果是孤立点,则不用考虑。对于每个连通块,如果全都是偶数度(欧拉回路),则需要1笔;如果不是,则需要奇数度顶点个数的1/2笔。代码:#include<bits/stdc++.h> us...

2018-05-15 12:27:20

阅读数:47

评论数:0

一笔画问题(nyoj 42)

一笔画问题对于无向图G,具有一条欧拉路(一笔画),当且仅当G是连通的,且有零个或两个奇数度结点。代码:#include<bits/stdc++.h> using namespace std; int par[1001]; int G[1001...

2018-05-15 10:51:55

阅读数:60

评论数:0

战舰萝莉

1164 - 战舰萝莉 #include using namespace std; const int maxn=111111; int add[maxn<<2],sum[maxn<<2]; int a[maxn]; int ans=0; int op,l,r,...

2017-12-23 12:19:05

阅读数:136

评论数:0

2017 ACM/ICPC Asia Regional Qingdao Online 1009(最大流Dinic算法)

Smallest Minimum Cut 题意:求最小割边数。 给权值hash一下即可。使用最大流的Dinic算法,时间复杂度O(m*n^2)。 代码: #include using namespace std; const int max_v=202; const l...

2017-09-20 21:41:04

阅读数:111

评论数:0

最大流之Dinic算法

之前简单介绍了最大流之Ford-Fulkerson算法,此算法时间复杂度为O(F*E)。大多数情况下,这个算法已经足够高效了,但当顶点数或最大流流量非常大时,这个算法就显得不够快了。下面简单介绍易实现的Dinic算法。 Ford_Fulkerson算法通过深度优先搜索寻找增广路,并沿着它增广。与...

2017-09-20 21:00:05

阅读数:173

评论数:0

2017 ACM/ICPC Asia Regional Qingdao Online 1011(数学知识)

A Cubic number and A Cubic Number 题意:判断一个素数是否是两个立方数之差。 x^3-y^3=(x-y)(x^2+xy+y^2),观察(x-y),可以知道只有相邻的立方数之差才可能是素数。 代码: #include using name...

2017-09-18 22:01:13

阅读数:249

评论数:0

HDU 4336 Card Collector(容斥)

Card Collector 模板题。 代码: #include using namespace std; const int max_n=10100; int n; double p[max_n],ans; void dfs(int x, int tot, dou...

2017-09-16 11:12:33

阅读数:185

评论数:0

POJ 2481 Cows(树状数组)

Cows 题意:对于每头牛,吃草的区间在li,ri之间,问在n头牛中,对于第i头牛而言,有几头牛的区间大于这头牛。 先按ri排序(固定一个方向),再用树状数组对li即可。 代码: #include #include #include using namespace std; const...

2017-09-16 10:43:09

阅读数:177

评论数:0

2016 ACM/ICPC Asia Regional Qingdao Online 1003(AC自动机)

Family View 题意:给出一系列的敏感词,如果下面文本以敏感词作为子串,那么输出'*'。 代码: #include using namespace std; const int MAXN = 1000000+100; char str[MAXN]; int pos[MAX...

2017-09-15 21:56:00

阅读数:130

评论数:0

AC自动机

ac自动机是kmp的高级版,实现多模式串匹配。 代码: struct AC{ int next[500005][26], fail[500005], word[500005], Q[500005]; int root, tol; int newNode(){ ...

2017-09-15 21:07:13

阅读数:102

评论数:0

tarjan算法浅谈

1.求割点:  割点:若删掉某点后,原连通图分裂为多个子图,则称该点为割点。  原理:若low[v]>=dfn[u],则u为割点。因low[v]>=dfn[u],则说明v通过子孙无法到达u的祖先。那么对于原图,去掉u后,必然会分成两个子图。  所以处理节点u时,先递归v的子节点,...

2017-09-15 18:15:42

阅读数:212

评论数:0

2015 ACM-ICPC Asia Regional Shenyang Bazinga(KMP+剪枝)

Bazinga 题意:找到最大的i(1≤i≤n),存在一个整数j(1≤jj不是si的子串,若不存在,输出“-1”。 首先想到直接暴力枚举+KMP,时间复杂度O(50*500*500*(500+500)),显然超时。接下来考虑适当剪枝,可以考虑相邻的字符串编号小的串是不是编号大的串的子串...

2017-09-14 22:03:00

阅读数:105

评论数:0

ACM-ICPC Asia Regional Changchun 1008 Sequence I(KMP)

Sequence I 题意:已知序列A和序列B以及p,问有多少个位置q,使得b1,b2,…,bm与恰好匹配。 KMP算法稍作修改即可,next数组部分是不需要修改的,只需要改一下匹配过程,当序列A中的a[i]等于序列B中的b[j]时,将原先的i++改为i+=p即可。 ...

2017-09-14 21:35:26

阅读数:89

评论数:0

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