随笔分类 -  ACM/ICPC

摘要:对于双方有意义的信息分别为日和月 当且仅当其入度为一存在时 才能继续进行游戏 否则必然无法判断出谁能获胜 另外要注意的是可能是生日不在表中的情况 以及 对重复日期的处理 具体参加wiskey大牛的解题报告 以下是实现代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.Code... 阅读全文
posted @ 2008-09-04 20:42 Hdu-Lost 阅读(392) 评论(0) 推荐(0) 编辑
摘要:我们引用国家队2008年陈丹琦的大作——《基于连通性状态压缩的动态规划问题》,上面对于插头、轮廓线的概念有详细的解释,不再赘述。 我们使用一个三维数组,前两维表示所在的格子,后一维表示轮廓线的状况,值为方案数。 在每一行开始前,我们需要把上一行最右的轮廓线转换为这一行最左的轮廓线,因此执行一次左移操作(实际上轮廓线是进行了向右的一次滑动) 然后枚举所在单元格对每个轮廓线... 阅读全文
posted @ 2008-09-04 11:20 Hdu-Lost 阅读(4064) 评论(2) 推荐(0) 编辑
摘要:这个题目的意思很简单 但是如果照着模拟一定会TLE 所以在模拟上也需要很大的技巧 先前我使用了并查集来表示团的关系 但后来发先直接使用hash映射就好了 所以不必想这么复杂 而后就是对于队列的模拟 由于牵涉到的是插入和删除操作 所以应该使用链表结构 比如stl中的list容器 如果单纯使用该结构一定会超时 所以必须进行优化 使用桶结构 将每个队伍看做是一个桶 然后按先来后到的顺序进表 ... 阅读全文
posted @ 2008-09-02 11:46 Hdu-Lost 阅读(613) 评论(0) 推荐(0) 编辑
摘要:简单的字典树水题,统计为单词前缀的单词数,取最大,注意要去前0,具体原理还是自己想想吧,最大数决定了最大分组。 诶 PKU月赛之后 我发现我只会水的 .............. Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#inc... 阅读全文
posted @ 2008-09-01 11:26 Hdu-Lost 阅读(462) 评论(0) 推荐(0) 编辑
摘要:整整写了四天 如果有什么错误 请指出 本人毕竟水平有限 http://files.cnblogs.com/zhuangli/暑期集训阶段总结.ppt 阅读全文
posted @ 2008-08-31 10:59 Hdu-Lost 阅读(1417) 评论(0) 推荐(1) 编辑
摘要:凡是留上星不会做的 我都要做。。。这是俺单纯的人生目标~~~ 先分析这道题目 求含有n个不同字母的最大串长度~~ 实现就只好用hash了 哈哈 以下是代码 附加注释 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#include u... 阅读全文
posted @ 2008-08-31 02:10 Hdu-Lost 阅读(383) 评论(0) 推荐(0) 编辑
摘要:请教了月光大牛和DK大牛 具体思路是首先提取强连通分量 然后将分量缩点重新构图 记录各点入度 将入度为0的点所代表的分量中的费用最小值记录下来 相加得到最小费用 其入度为0点的个数就是要求的通知的人数 具体代码如下 使用Tarjan寻找强连通 顺便ORZ两位大牛 Code highlighting produced by Actipro CodeHighlighter (freewar... 阅读全文
posted @ 2008-08-27 12:06 Hdu-Lost 阅读(450) 评论(0) 推荐(0) 编辑
摘要:二叉树是我们都非常熟悉的一种数据结构。它支持包括查找、插入、删除等一系列的操作。但它有一个致命的弱点,就是当数据的随机性不够时,会导致其树型结构的不平衡,从而直接影响到算法的效率。 跳跃表(Skip List)是1987年才诞生的一种崭新的数据结构,它在进行查找、插入、删除等操作时的期望时间复杂度均为O(logn),有着近乎替代平衡树的本领。而且最重要的一点,就是它的编程复杂度较同类的AVL树,... 阅读全文
posted @ 2008-08-25 11:58 Hdu-Lost 阅读(4322) 评论(0) 推荐(0) 编辑
摘要:以下是某牛blog上关于算法描述的转载,本人编写代码仅有的算法资料也就是这些. 收缩有向图中的强连通分量大约是图论的线性算法中最具技巧性一种了。我们的首要目的是对于每个顶点设定一个Belong值,也就是它从属于哪个顶点所代表的强连通分量,至于重新建立图的边,不过是将所有边扫描一遍看是否在新图中出现而已,比较容易。 下面是利用一遍DFS求强连通分量的方法:对于每个顶点,设立Num... 阅读全文
posted @ 2008-08-23 21:44 Hdu-Lost 阅读(871) 评论(0) 推荐(0) 编辑
摘要:数据弱,代码有问题,等待修正 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#include using namespace std; __int64 lmax=0x7FFFFFFF; const long MAXN=1200; __... 阅读全文
posted @ 2008-08-23 15:16 Hdu-Lost 阅读(212) 评论(0) 推荐(0) 编辑
摘要:2.1.2 可并堆的定义 可并堆(Mergeable Heap)也是一种抽象数据类型,它除了支持优先队列的三个基本操作(Insert, Minimum, Delete-Min),还支持一个额外的操作——合并操作: H ← Merge(H1,H2) Merge( ) 构造并返回一个包含H1和H2所有元素的新堆H。 O(n),用它来实现可并堆,则合并操作必然成为算法的瓶颈。左偏树(Leftis... 阅读全文
posted @ 2008-08-22 10:58 Hdu-Lost 阅读(1002) 评论(2) 推荐(0) 编辑
摘要:该解法求出的所有ans均为各解等价类中的代表,可通过加减任意n来得到该等价类的所有解 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#include using namespace std; long ans[1000]; long x,y... 阅读全文
posted @ 2008-08-19 21:21 Hdu-Lost 阅读(516) 评论(0) 推荐(0) 编辑
摘要:问题简单来说就是 a = ai (mod ni) 求未知数a, 以下小结略去证明, 只是对定理作了必要的解释, 要了解相关定理,可查阅数论资料. 中国余数定理: 设 n=n1*n2...nk, 其中因子两两互质.有: a-----(a1,a2,...,ak), 其中ai = a mod ni, 则 a和(a1,a2,...,ak)关系是一一对应的.就是说可以由 a求出(a... 阅读全文
posted @ 2008-08-19 20:45 Hdu-Lost 阅读(688) 评论(0) 推荐(0) 编辑
摘要:所谓扩展欧几里德,就是在欧几里德算法的基础上加入变量X,Y,使得aX-bY=GCD(a,b)。 此时X,Y是该不定方程式的一组解。 求a * x + b * y = n的整数解的过程: 1、先计算Gcd(a,b),若c不能被Gcd(a,b)整除,则方程无整数;否则,在方程两边同时除以Gcd(a,b),得到新的不定方程a' * x + b' * y = n',此时Gcd(a',b... 阅读全文
posted @ 2008-08-19 20:17 Hdu-Lost 阅读(1929) 评论(4) 推荐(0) 编辑
摘要:在数学中,连分数或繁分数即如下表达式: 这里的 a0 是某个整数而所有其他的数 an 都是正整数。可依样定义出更长的表达式。如果部分分子(partial numerator)和部分分母(partial denominator)允许假定任意的值,在某些上下文中可以包含函数,则最终的表达式是广义连分数。在需要把上述标准形式与广义连分数相区别的时候,可称它为简单或正规连分数,或称为是规范形式的。 ... 阅读全文
posted @ 2008-08-19 13:22 Hdu-Lost 阅读(2493) 评论(2) 推荐(0) 编辑
摘要:比起WC关于后缀数组的倍增法,要更有效率,由于模版使用的是指针,所以在new和delete处效率会有所消耗 来自NIT的后缀数组模版 注意在字符串间加入特殊符号进行区分 避免LCP越界 SAMLPE测试为HDU 1403~~ Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.Code... 阅读全文
posted @ 2008-08-18 21:06 Hdu-Lost 阅读(1306) 评论(1) 推荐(0) 编辑
摘要:以下为转载资料 Note:阅读本文需要有KMP算法基础,如果你不知道什么是KMP,请看这里: http://www.matrix67.com/blog/article.asp?id=146 (Matrix67大牛写的) AC自动机是用来处理多串匹配问题的,即给你很多串,再给你一篇文章,让你在文章中找这些串是否出现过,在哪出现。也许你考虑过AC自动机名... 阅读全文
posted @ 2008-08-13 19:27 Hdu-Lost 阅读(2941) 评论(13) 推荐(2) 编辑
摘要:题目描述不清 字典序排列并非是字符串比较 而是点序列号的比较 终点与起点相同 路径只为顶点 50次WA后AC 够变态 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#include #include using namespace std; ... 阅读全文
posted @ 2008-08-12 20:33 Hdu-Lost 阅读(666) 评论(0) 推荐(0) 编辑
摘要:在DK同学的强烈要求下狂A此题,枚举第一行的所有状态,由于下一行必受上一行约束,则只要判断最后行是否达到要求即可. 总结该题技巧如下: 1、化行为数,将一行数据以二进制形式保存。 2、使用位运算加快速度,^为翻转,&为取值。 3、行列剪枝,若行数小于列数,则使矩阵转置。 代码如下(600多ms ,不知道100MS以内的代码是怎么做到的): Code highlighting pro... 阅读全文
posted @ 2008-08-12 03:31 Hdu-Lost 阅读(352) 评论(0) 推荐(0) 编辑
摘要:....由于某些人认为双向过这道比较爽,于是草草coding一番,用了G++才勉强过掉. DK大牛说了,双向不能求出最优解,因为它不能保证起点出发10步终点出发1步的最优,和起点出发6步和终点出发6步的次优中,前者首先被发现.... 正规解法是枚举第一格翻和不翻的状态,然后后面的跟着要求翻........ 但双向广搜的方法值得借鉴 因此保存下我的代码思路. 要点是: 1.二进制位状态... 阅读全文
posted @ 2008-08-11 22:01 Hdu-Lost 阅读(488) 评论(2) 推荐(0) 编辑