08 2015 档案
摘要:题目地址:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=25941#overview概念介绍:割点:如果在图G中去掉一个顶点后,该图的连通分支数增加,则称该顶点为G的割点。(跟桥相对)关于割点的定理:1.当且仅当在G中存在与顶点v不同的两...
阅读全文
摘要:题意:告诉n个数字,在其中选择0~n个数字,异或,然后求得到的结果不小于m的个数。 分析:超了int,本来说的是枚举,后来大姐头自己变成了背包DP。牛牪犇!!! 1 #include <cstdio> 2 #include <iostream> 3 #include <sstream> 4 #inc
阅读全文
摘要:题意:告诉格子规格,颜色个数,以及每个颜色能涂得格子数目,问是否能够实现相邻两个格子的颜色数目不相同。分析:因为数据很小,格子最多是5 * 5大小的,因此可以dfs。TLE了一次之后开始剪枝,31ms过。剪枝看代码。 1 #include 2 #include 3 #include 4 #in...
阅读全文
摘要:题意:给一张无向图,判断是否是哈密顿图。哈密顿路:经过每个点有且仅有一次的一条通路。方法:每次找度数最小的点作为起点,然后dfs整个图,看能遍历到的点的数目能否达到n。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include...
阅读全文
摘要:题意:给定几个区间,判断该区间是其余区间的真子集个数。分析:真子集即寻找x,y满足a(小于或等于x),b(大于或等于y)的区间。跟star-POJ2352很类似。转化:star那个题目是x,y都是从小到大排序,然后直接求y序列前边比y小的数字个数。这个就需要x从小到大排,y从大到小排,然后求y序列的...
阅读全文
摘要:递推式并不知自己推出来的,用来纪念一下学会了java的函数用法。。。最后5分钟的时候,大姐头直接告诉我打表,但是我当场就蒙了,我怎么会用java打表(其实自己脑中想的就是要输出到文件中然后生成数组打表),真的是被自己的愚蠢傻哭了。 1 import java.util.*; 2 import jav...
阅读全文
摘要:纯最短路。 1 ///HDU 2544堆优化的最短路 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #i...
阅读全文
摘要:题意:计划在东边的城市和西边的城市中建路,东边的点从1.....n,西边的点从1......m,求这些点连起来后有多少个交叉。PS:这个题目没有任何思路,没想到是树状数组。。。。交叉出5个点分析:3,1肯定能和1与2,3,4连线,2与2,3,4的连线相交。即x,y连线肯定和a(小于x),b(大于y)...
阅读全文
摘要:转自亲学长的总结声明:本文是写给弱校ACM新手的一点总结,受自身水平和眼界所限,难免会有一些个人主观色彩,希望大牛指正感谢@Wackysoft、@哇晴天、 @一切皆有可能1的指教,现根据这些建议,文章已进行修改先简单介绍一下自己: 高中在OI打过一段时间酱油,大一后暑假进入ACM集训队,到大三寒假,...
阅读全文
摘要:本来是个后缀数组,考察算法的中级题目,暴力居然也可以水过,就看你跳不跳坑了(c++和G++返回结果就很不一样,关键看编译器)丝毫不差的代码,就看运气如何了。唯一差别c++还是G++,但正解是后缀数组没错,趁机学一下吧。 1 #include 2 #include 3 #include 4 #i...
阅读全文
摘要:树状数组主要用于查询任意两位之间的所有元素之和,但是每次只能修改一个元素的值;经过简单修改可以在log(n)的复杂度下进行范围修改,但是这时只能查询其中一个元素的值。一、和线段树比较:1)树状数组能解决的线段树一般都能解决,线段树能解决的树状数组不一定能解决。2)相比较而言,树状数组效率要高很多。所...
阅读全文
摘要:因为题目中没有说是否是正整数,导致我们以为是DP,没敢做。。。太可惜了,不过现场赛绝对不会出现这种情况,毕竟所有的提问是都可以看见的。题意:告诉一个矩阵,然后求从(1,1)到(n,m)能走过的最大和。分析:如果行或者列是奇数,就可以全部遍历。否则就会只空出一个数的位置,这个位置一定在奇数行的偶数列,...
阅读全文
摘要:题集:http://blog.csdn.net/qq574857122/article/details/11727859单点更新:HDU 1166 单点改值+区间求和; 1 #include 2 #include 3 #include 4 using namespace std; 5 6 #...
阅读全文
摘要:正解是dfs的一道题目被我以为成了并查集,结果坑了队友。现在分析一下自己当时为什么会想成是并查集呢。题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2588题意:告诉一张n点m边的图,求哪些边是桥。其实就是缩点,然而却大...
阅读全文
摘要:题目:http://codeforces.com/contest/570/problem/C题意:给你一个字符串,由‘.’和小写字母组成。把两个相邻的‘.’替换成一个‘.’,算一次变换。现在给你一些个操作,操作内容是把某个位置的字符变成给定的 字符,求出每次操作后,需要多少次变换才能把原串所有相邻的...
阅读全文
摘要:题目也是个坑题,可惜没有发现这是个水题,被矩阵的气势吓住了,其实后来做出来的人挺多,就应该想到没那么难了。(两个队友陷入DP无法自拔,没有想换题的打算)。题意:告诉初始矩阵,目的矩阵,告诉n个步骤(L列H行),然后构造排序,使得从初始矩阵到目的矩阵变化成功,题目保证一定有解(有多解,SPJ);分析:...
阅读全文
摘要:链接:http://acm.hdu.edu.cn/showproblem.php?pid=5384题意:给n个母串,给m个匹配串,求每个母串依次和匹配串匹配,能得到的数目和。分析:之前并不知道AC自动机是用来求什么的,但翻模板的时候看见邝斌的字符串模板里有AC自动机一项,就看了一下,然后发现和题目要...
阅读全文
摘要:tarjan的过程就是dfs过程。图一般能画成树,树的边有三种类型,树枝边 + 横叉边(两点没有父子关系) + 后向边(两点之间有父子关系);可以看到只有后向边能构成环,即只有第三张图是强连通分量。对图dfs一下,遍历所有未遍历过的点 ,会得到一个有向树,显然有向树是没有环的。(注意搜过的点不会再搜...
阅读全文
摘要:题意:每头奶牛都只愿意在她们喜欢的那些牛栏中产奶,告诉每头奶牛愿意产奶的牛棚编号,求出最多能分配到的牛栏的数量。分析:直接二分图匹配; 1 #include 2 #include 3 4 #define MAX 202 5 bool flag,visit[MAX]; //记录V2中的某个点是...
阅读全文
摘要:题意:告诉你一棵树的结构,要求满足下三个条件,求满足的序列有多少种。1、每个节点只有一个数字;2、作为儿子节点的编号要连续 也就是兄弟节点间的麻将编号要连续;3、每棵子树的麻将编号要连续;首先看样例就看了好久:告诉一棵树的结构是这样的然后向结点放8个数字,满足的个数是16。每种下边的三个小分队又是4...
阅读全文
摘要:题意:告诉一个数n,然后求出所有的位数和,插在n的尾部,重复求t次,判断最终的数是否能被11整除。分析:直接模拟的过程,并且模拟的除的过程,却TLE,以为是方法错了,因为每次都得循环求一遍位数和;PS: 1、能被11整除:就是求偶数位和-奇数位和的差,如果差能被11整除,就是能够被11整除。比如35...
阅读全文
摘要:题意:给一个数列,按如下公式求和。分析:场上做的时候,傻傻以为是线段树,也没想出题者为啥出log2,就是S(i,j) 的二进制表示的位数。只能说我做题依旧太死板,让求和就按规矩求和,多考虑一下就能发现这个题目应该是另想办法解决的,类似于改代码的题目,直接告诉你C++代码,让你从TLE改成AC,其实真...
阅读全文
摘要:题意:告诉n组A,B,C,按照A + k * C生成等差数列,问这n组数列中哪个数字出现了奇数次以及出现了几次,题目保证最多只会出现一个这种数字。分析:读完题并没有思路,后来知道是二分区间,枚举是哪个数字出现了奇数次,算该数字之前一共有几个数字,如果是奇数个,说明答案就在[L , Mid]中。PS:...
阅读全文
摘要:PS参考:http://m.blog.csdn.net/blog/biboyouyun/12206733题意:EAEBE这种结构的字符串,求E的最大长度;分析:我直接就从s.length()/3开始枚举,结果TLE了,正解是KMP,但是string的substr和find能够水过,只能说学弟太强了(...
阅读全文
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=4822并不会做这个题,题解说是LCA(最近公共祖先),并不懂,说一下我自己的思路吧,虽然没能实现出来。题意:告诉一张连通图,没有环,每条边长度为1,告诉三个点A,B,C,如果其中一个点A到另一个点E的距离小于...
阅读全文
摘要:题意:告诉一张带权图,不存在环,存下每个点能够到的最大的距离,就是一个长度为n的序列,然后求出最大值-最小值不大于Q的最长子序列的长度。做法1:两步,第一步是根据图计算出这个序列,大姐头用了树形DP(并不懂DP),然后就是求子序列长度,其实完全可以用RMQ爆,但是大姐头觉得会超时,于是就采用维护最大...
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5360题意:告诉你n个区间[ l[i],r[i] ],然后让你排序,必须左区间不大于它前边的总区间个数,右区间不小于前边的总区间个数,求该序列的最大长度以及序列;PS:场上做的时候,三个人三个思路,不知道...
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4576坑大发了,居然加 % 也会超时; 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include...
阅读全文
摘要:一定得记住!ACM遇大数就好办了!!! 注意不可同时运行,每次只能运行一个类型 1 package aad;///建根文件的时候选择了这一项就要写,没选择可以不用写 2 import java.io.*; 3 import java.math.BigInteger; 4 import java.ut
阅读全文
摘要:题意:举例子好说点,告诉你4个数字,8,6,4,2四个数字,组成一个四位数,如果两个数字分别是1111,2222,则2222会吧1111杀掉,就是组成的四位数不能每一位都小于或等于一个数,然后让你求出最大能够存活的数目。分析:场上的时候自己一直在找规律,推公式,以为是四个数字递增递减交替的规律,没想...
阅读全文
摘要:题意:三个操作 1 a b : 队列中加入(x = a, y = b); -1 a b : 队列中减去(x = a, y = b); 0 p q :从队列的数对中查询哪一对x,y能够让 p * x + q * y最大; 分析:因为一开始就觉得如果暴力绝对会超时,但是时限是30 000 ms,而且看见
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5128题意:给你n(n < 30)个点的坐标,然后让你求出这n个点能构成的两个最大矩形的面积,有以下三种情况是不算在内的;如果存在这样的两个矩形就输出最大的面积,否则输出imp;分析:因为只有30个点,纯...
阅读全文