摘要: 差分约束系统例如,5 620 34 54 10 15这一组测试数据先编号,分别为1 2 3 4 5 ,然后可以写出一组表达式,两个编号之间的距离必定大于等于1的,所以i+1到i建立有向边,权值为-1,然后进行结构体排序,根据高度来排序。然后相邻两个节点再写表达式,标号小的到标号大的之间建立有向边,权... 阅读全文
posted @ 2015-06-10 16:54 Fighting_Heart 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 差分约束系统。根据题意,可以写出不等式L =L/Xij由于差分约束系统是减法。。除法变减法可以用对数来解决。两个式子两边取对数,可以写成log(Ai)-log(Bj)=log(L/Xij)log(Ai)和log(Bj)看作两个节点。编号分别为i和n+j,建立有向图,判断有没有负环存在。if(summ... 阅读全文
posted @ 2015-06-10 13:04 Fighting_Heart 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 差分约束系统。求最小值,用最长路来解决。#include#include#include#include#include#includeusing namespace std;const int maxn=50010;const int INF=0x7fffffff;struct abc{ i... 阅读全文
posted @ 2015-06-09 23:11 Fighting_Heart 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 关于差分约束系统,今天又回顾了一下,发现了新的知识。如果要求的是最大值,也就是确定上界,那么就用最短路来求解,例如X-Y=3&&X-Y>=8,那么X-Y的最小值不可能是3,最小也会是8,所以确定最小值用的是最长路。关于有向边和权值的确定:不管是求最短路(上界,最大值)还是最长路(下界,最小值),先把... 阅读全文
posted @ 2015-06-09 21:10 Fighting_Heart 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 判断一个连通图无向图是否存在欧拉回路的条件: 无奇度的节点判断是不是连通图,可以用并查集判断节点是不是奇度可以开一个数组记录。#include#include#include#includeusing namespace std;const int maxn=1010;int ff[maxn],fa... 阅读全文
posted @ 2015-06-09 16:41 Fighting_Heart 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 这几天写题比较少,做了一下网页设计的期末大作业。搞了个连连看,核心代码和hdu 1175那个题目一样。 越来越觉得学ACM是十分有用的,软件的核心是数据结构和算法,学会了DFS,连连看就水到渠成了。 下载地址:http://pan.baidu.com/s/1pJspnWR 下面放出源码: html部 阅读全文
posted @ 2015-06-08 14:27 Fighting_Heart 阅读(3181) 评论(1) 推荐(4) 编辑
摘要: 先进行拓扑排序,删除那些不会成环的节点。剩下的节点再重建一张图,进行DFS。#include#include#include#include#include#includeusing namespace std;const int maxn = 2000 + 5;int jz[maxn][maxn]... 阅读全文
posted @ 2015-06-04 16:01 Fighting_Heart 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 并查集+拓扑排序把等号的那些东西都用并查集合并一下,这样一来,建立邻接表的时候用根来建立就好了。然后就是拓扑排序。如果有两个入度为0的节点,那么说明肯定是条件不足,如果有成环的肯定是没法排序了。#include#include#include#include#includeusing namespa... 阅读全文
posted @ 2015-06-04 14:28 Fighting_Heart 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 答案=字典树节点个数+单词个数-最长的单词的长度。表示不会推倒。看了大牛博客。#include#include#include#includeusing namespace std;struct shu{ int nn[27]; }node[500010];int ii, i, n, m, zz, ... 阅读全文
posted @ 2015-06-03 16:11 Fighting_Heart 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 放慢写题的节奏,毕竟期末考要到来了,不想挂科。暑假开始再努力奋斗! 阅读全文
posted @ 2015-06-02 19:18 Fighting_Heart 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 字典树+DFS。#include#include#include#include#includeusing namespace std;struct shu{ int value, nn[27]; }node[250010];int n, q, i, ii, v, zz, tott, anss, t... 阅读全文
posted @ 2015-06-02 17:27 Fighting_Heart 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 字典树。字典树可以很快的算出某个前缀出现的次数,所以以每个字母作为起点,都插入到字典树中,单词的某一前缀只加一次,加一次之后标记掉,之后不再加。由于之前没有考虑到查询的单词在字典树中没有出现,导致RE了N次。。。#include#include#include#include#includeusin... 阅读全文
posted @ 2015-06-02 14:56 Fighting_Heart 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 几天的北京之行就这样结束了,疲惫。勉强B组二等,很多题目不会做,前路漫漫,上下求索。 阅读全文
posted @ 2015-06-01 10:59 Fighting_Heart 阅读(281) 评论(2) 推荐(0) 编辑
摘要: 一个水题WA了60发,数组没开大,这OJ也不提示RE,光提示WA。。。。。。思路:先求出最短路,如果删除的边不是最短路上的,那么对结果没有影响,要有影响,只能删除最短路上的边。所以枚举一下最短路上的边,每次求最短路即可。#include#include#include#include#include... 阅读全文
posted @ 2015-05-27 16:51 Fighting_Heart 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 写的很丑的字典树。听王大神的话 需要改进。#include#include#include#includeusing namespace std;struct nn{ int zero; int one;}node[320005];int findd[35];int main(){ ... 阅读全文
posted @ 2015-05-26 17:50 Fighting_Heart 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 接触图论一个月了,学了拓扑排序、 最小生成树的两种写法,最短路的三种写法、差分约束系统,但总觉得网络流,支配集,独立集,匹配,连通性才是图论的精髓,出题应该就是出这些知识点,但是依旧没有学过............一个月中别的内容一点也没有学,蓝桥杯全国赛即将来袭,目测要完蛋! 阅读全文
posted @ 2015-05-25 14:21 Fighting_Heart 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 最短路+二分。对容量进行二分,因为容量和时间是单调关系的,容量越多,能用的边越少,时间会不变或者增加。因为直接暴力一个一个容量去算会TLE,所以采用二分。#include#include#include#include#include#includeusing namespace std;const... 阅读全文
posted @ 2015-05-23 15:53 Fighting_Heart 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 最短路+记忆化搜索#include#include#include#include#includeusing namespace std;const int maxn = 1003;const int INF = 0x3f3f3f3f;vectorljb[maxn];int jz[maxn][max... 阅读全文
posted @ 2015-05-23 14:06 Fighting_Heart 阅读(159) 评论(0) 推荐(0) 编辑
摘要: DescriptionInk最近得到了一张藏宝图,这张图上共有n个藏宝室,但因为年代久远藏宝图上的路已经模糊不清,于是Ink找到了智慧的Pseudo,Pseudo告诉Ink,这个宝藏中每两个藏宝室之前都有一条通路,每条通路上都有一定数量的机关。现在Ink已经探明了其中n-1条路上的机关数目,这n-1... 阅读全文
posted @ 2015-05-23 09:23 Fighting_Heart 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 按题意建立好二叉树,再按照先序遍历输出结果。#include#include#include#include#includeusing namespace std;struct node{ int left, right, date;}node[1005];int a[1005], flag[... 阅读全文
posted @ 2015-05-22 20:46 Fighting_Heart 阅读(323) 评论(0) 推荐(0) 编辑