05 2013 档案
摘要:题意:一个无向带权图,候选方案是至少两个点的连通子图,连通子图里的边权的最小值比边界边的最大值大(边界边是一个点在这个子图里,另一个点不在这个子图里)!.问你所有满足候选方案的子图的顶点个数总和是多少?分析:kruskal的思想,先将边权大的连接,然后判断是否满足,,,依次连接即可!// File Name: 1265.cpp// Author: Zlbing// Created Time: 2013/5/31 16:52:09#include<iostream>#include<string>#include<algorithm>#include<c
阅读全文
摘要:题意:要求从左下角到右上角,中间会经过旋转门,而旋转门的房间固定只有一个房间能进入.旋转门每转90度,会消耗时间d,然而每个旋转门所消耗的时间都不同.而一般进入房间消耗单位1时间,求最少时间!分析:其实是个很简单的最短路的题,,,,只是弱菜的我题意看错,每个旋转门消耗时间不同....还有写代码的能力不强,...老写错和漏掉什么的!唉~只要简单处理下旋转门即可!// File Name: 10967.cpp// Author: Zlbing// Created Time: 2013/5/29 10:18:14#include<iostream>#include<string&g
阅读全文
摘要:题意:电梯调度的加强版,有N个电梯,每个电梯只能到规定的楼层停,从A电梯到B电梯时需要花5秒时间,并且还需要等待B电梯停到这层花费的时间(按最糟糕的情况处理)分析:因为最优策略是每个电梯最多搭乘一次,若搭乘多次则花费的时间会更多..所以不用考虑每个电梯搭乘后的状态.. 松弛时一定是一个电梯到另一个电梯,因为在同一个电梯无法松弛!// File Name: 10841.cpp// Author: Zlbing// Created Time: 2013/5/19 12:58:02#include<iostream>#include<string>#include<al
阅读全文
摘要:题意:求A到B的K短路!分析:使用A*算法所谓K短路,就是从s到t的第K短的路,第1短就是最短路。 如何求第K短呢?有一种简单的方法是广度优先搜索,记录t出队列的次数,当t第k次出队列时,就是第k短路了。但点数过大时,入队列的节点过多,时间和空间复杂度都较高。 A*是在搜索中常用的优化,一种启发式搜索。简单的说,它可以用公式表示为f(n) = g(n) + h(n),其中,f(n)是从s经由节点n到t的估价函数,g(n)是在状态空间中从s到n的实际代价,h(n)是从n到t的最佳路径估计代价。在设计中,要保证h(n)<= n到t的实际代价,这一点很重要,h(n)越接近真实值,速度越快。由于
阅读全文
摘要:题意:一个简单图,求这个图两点之间的次短路!分析:因为只要求次短路,所以只要保存两点之间的最短和次短这两个状态即可,用dijkstra可求出....同时要注意,若a->a,这则点的最短路为0!还有要注意的是最短路和次短路的距离不能相等!// File Name: 10342.cpp// Author: Zlbing// Created Time: 2013/5/18 11:02:05#include<iostream>#include<string>#include<algorithm>#include<cstdlib>#include&l
阅读全文
摘要:为数不多的没看题解写出来的题....不容易啊我!!不过还是挺兴奋的吧.题意:给出一个图,有N个点,M条边,边分两种,有单向的,也有无向的,一开始图中任意两点都连通.问你,将尽量多的无向边转换成有向边.分析:通过画图分析,当仅当无向边是桥的时候,无向边不能转换成有向边,否则就能转换成有向边..故,可以通过求桥来得出答案.但边是无向边时,且不是桥,则将边设置成遍历方向即可!// File Name: 1310.cpp// Author: Zlbing// Created Time: 2013/5/17 14:01:49#include<iostream>#include<stri
阅读全文
摘要:题意:求除去任意两点及这两点所连的边的连通分量最大分析:枚举一点,除去这一点形成了一个新图,然后求割点,因为另外一点肯定是割点,不然无法使连通分量最大!然后计算除去割点的连通分量,最后求最大值即可!// File Name: test.cpp// Author: Zlbing// Created Time: 2013/5/14 8:23:10#include<iostream>#include<string>#include<algorithm>#include<cstdlib>#include<cstdio>#include<
阅读全文
摘要:好的讲解manacher算法的文章,图文并茂。http://blog.csdn.net/ggggiqnypgjg/article/details/6645824题解来源:http://blog.sina.com.cn/s/blog_6fa65cf90100s3sg.html题意:求给定串的最长回文子串(2009多校题目)分析:枚举每个点向左向右扩展,看最远能扩展到哪儿.但是普通的枚举是n^2的,肯定超时。现在我们想kmp或扩展kmp一样,给字符串定义一个nex数组,nex[i]表示以i为中心最远能向右扩展的长度,使得s[i – nex[i] + 1……. i + nex[i]- 1]形成的回文
阅读全文
摘要:在环境设置里进行如下设置:把Terminal to launch console programs那个选项改成gnome-terminal -t $TITLE -x原来是xterm -T $TITLE -egnome-terminal和xterm的参数表示方法不一样。
阅读全文
摘要:题意:有N种01字符串,每种有无限个..问你这些字符串是否有多种组成方案组成相同的串!分析:求字符串的组成问题,并且求是否能组成相同的字符串.我们可以把所有字符串的状态表示出来.vis[i][j][k],(0<=i<=1<<22,0<=j<=22,0<=k<2)i表示这个字符串的十进制的数,j表示这个字符串二进制的位数(这样就可以知道有多少前导0了),k表示是否是题目给的原字符串这样当有i==0,j==0这个状态时表示符合题目要求,能找到,..故输出"Ambiguous",否则输出"Not ambiguous&quo
阅读全文
摘要:题意:幼儿园里有很多房屋,房屋与房屋之间连以走廊,走廊与房屋之间有一扇门.幼儿园长想把门漆成绿色或者黄色,使得:任意一条走廊两头门的颜色不同;任意一间房屋上的门,绿色门的数量与黄色门的数量相差不超过1;其实这题就是求多个欧拉路或回路..因为欧拉路的每个点的入度和出度相差不超过一.分析:将从房子出去的门染绿色,进去的门染红色..也就转换成出度和入度关系;若每个房子有偶数个门,这整个图就是个欧拉回路,故一定能行若有奇数个房子有奇数个门,则一定不行,...(不能构成欧拉路或欧拉回路)则对于有偶数个房子有奇数个门,则将这偶数个门两两匹配,形成一条虚拟的走廊...则样就形成了欧拉回路了!!最后去掉加入的
阅读全文
摘要:http://www.notonlysuccess.com/index.php/segment-tree-complete/comment-page-2/#comment-4139题意:给一组数据,有两个询问,一种是给区间[a,b]上每个数加c,另一种是求区间[a,b]的和!#include <cstdio>#include <algorithm>using namespace std; #define lson l , m , rt << 1#define rson m + 1 , r , rt << 1 | 1#define LL long
阅读全文