自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

whyorwhnt的专栏

One must wait until the evening to see how splendid the day has been

  • 博客(40)
  • 资源 (1)
  • 收藏
  • 关注

原创 Poj 1077 Eight 八数码问题 (搜索)

文章还没有写完,明天搞清楚IDA*算法再继续写。搜索会用的方法太少了,于是最近被搜索虐爆了。。。认识启发式搜索A*和迭代加深的A*算法:IDA*算法可以看这个:[搜索]A*和IDA*_c++吧_百度贴吧这个题学到了一个处理排列的小技巧:康托展开_百度百科双向BFS解法:http://blog.csdn.net/dizem/article/details/44

2013-08-29 22:08:42 1630

原创 BZoj 1500 [NOI2005]维修数列 (Splay 模板)

题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1500debug 完这道题之后整个人都斯巴达了。。。。。。。目测电气自动化专业这学期天书略多。。。。。Splay最基本的功能这道题基本都包括了,参考了上一篇博文提到的博客。下一题要开始自己想了。#include #include using namespace std;

2013-08-28 12:57:36 1464

原创 Splay伸展树学习小记 Poj 3580 SuperMemo

伸展树看了几天了,总算是摸着点方向,只能说这真的是神一样的数据结构,各种延迟标记……参考了很多大牛的博客,代码的基本写法从网上挑了一种比较好理解的开始模仿。这里有一个模板和对一道题的分析,一开始我模仿的就是这个,最后发现指针还是有点不习惯……最后我会贴出用这个模板解这题的代码。这个模板是少数这道题可以跑进1s内的,不过利用数组建树那部分似乎有bug:Splay Tree 标签_51

2013-08-27 21:45:21 1423

原创 AC自动机总结 part1

这回总结的基本都是模板题……Hdu 2896 病毒侵袭用set统计哪些子串出现过。注意字符集并不只有a-z#pragma warning(disable:4786)#include #include #include #include #include #include #include #include #include #include #include #

2013-08-25 10:31:02 1012

原创 Poj 1146 ID Codes + Poj 1833 排列 (全排列库函数)

很早就用过的东西,昨天遇到题的时候发现忘了函数名怎么拼了。。。。next_permutation的函数声明:#include bool next_permutation( iterator start, iterator end );The next_permutation() function attempts to transform the given ran

2013-08-25 09:19:01 1074

原创 Poj 3691 & Hdu 2457 DNA repair (AC自动机+DP)

第一道AC自动机和DP结合的题。参考了:http://www.cnblogs.com/E-star/archive/2013/02/20/2919301.htmlhttp://blog.csdn.net/human_ck/article/details/6577142题意:给出n个DNA病毒串,然后给出一个需要修改的DNA片段,问需要最少修改多少个字符才能是该DNA片段不含DNA病

2013-08-24 17:20:38 1077

原创 AC自动机学习小记 Hdu 2222 Keywords Search (模板)

学习链接:http://wenku.baidu.com/view/4cf3374769eae009591bec05.html题目集锦及解题报告:AC自动机专题-将狼踩尽 19891101AC自动机专题-yefeng1627AC自动机专题-E_star以下代码参考了以上博文。题意:求给定n个模式串在主串中出现了几个。(每一个模式串只被记录一次)三种实现,指针版

2013-08-23 17:00:18 1013

原创 Hdu 1247 Hat’s Words (Trie动态写法+STL) + UVa 11732 strcmp() Anyone (Trie的另一种建立方法)

Hdu 1247 Hat’s Words 题意:按字典序给出一些单词, 寻找其中哪些单词是由其他两个单词(可以是同一个用两次)拼接而成。按字典序输出。思路:将所有单词插入Trie树。枚举拆分每个单词。#include #include #include using namespace std;struct Trie{ Trie *next[26]; bool fla

2013-08-22 22:14:44 978

原创 整数划分学习小记 Poj 1283 Moving Computer + Poj 1664 放苹果

以下第一部分的内容整理自:整数划分算法原理与实现 - 银河使者 - 博客园整数划分问题的最基本形式将一个正整数n拆成一组数连加并等于n的形式,且这组数中的最大加数不大于n。如6的整数划分为        6    5 + 1    4 + 2, 4 + 1 + 1    3 + 3, 3 + 2 + 1, 3 + 1 + 1 + 1    2 + 2

2013-08-21 13:33:09 1197

转载 带花树 一般图最大匹配

偶然看到的东西,记录备用。[Ural 1099 Work Scheduling]【带花树】【Edmonds's matching algorithm】【一般图最大匹配】【例题】

2013-08-21 12:26:24 1162

原创 UVA 10635 Prince and Princess (LCS优化转LIS)

题意:求两个串的最长公共子序列 LCS。思路:数据量比较大,O(n^2)的dp不够快。但每组数据中的数各不相同,可以利用这一点转化成求最大上升子序列 LIS就样例来说 A{1 7 5 4 8 3 9}, B{1 4 3 5 6 2 8 9},按照A的顺序进行映射:A{1,2,3,4,5,6,7}  B{1,4,6,3,0,0,5,7} 于是问题转化为求B的LIS,可以在O(nlogn)

2013-08-21 12:19:45 1176

原创 CF 148D Bag of mice (概率DP)

题目链接:http://codeforces.com/problemset/problem/148/D题意:袋子里有w只白鼠和b只黑鼠,由公主开始,公主和龙轮流从袋子中抓一只老鼠,先抓到白鼠的赢。特别的:龙每次抓完老鼠会有一只老鼠跑出来。每次抓老鼠和跑出来的老鼠都是随机的。如果两个人都没有抓到白色老鼠则龙赢。求公主赢的概率。思路:dp[i][j]表示轮到公主抓时袋子里还剩i只白鼠j

2013-08-12 16:04:40 986

原创 Poj 1644 To Bet or Not To Bet (概率 DP)

题意:棋盘是一个线性表,初始位置0,结束位置m+1,每一轮抛硬币决定向右一步还是两步,概率各为0.5。棋盘每格上都会有一个说明+n,-n,L,或者 0,分别意味着向右走n格,向左走n格,失去一轮机会,无任何说明。给出棋盘的大小,以及棋盘上每一格的说明,求在t轮或者少于t轮便走到终点处的概率。思路:DP,递推。注意读入方式,以及数组的初始化。#include #include #incl

2013-08-12 15:09:37 1222

原创 Hdu 2850 Load Balancing (贪心 优先队列)

题意:n个任务,m台服务器,给出每个任务的耗时,分配工作到服务器中,使他们各台服务器间总处理时间的最大值与最小值的差最小思路:贪心,优先队列,先处理耗时多的任务,再处理耗时少的任务。先对耗时从大到小排序,然后每次更新每个机器的最大工作时间,每次取出总耗时最少的服务器分配新的任务。#include #include #include using namespace std;stru

2013-08-12 09:55:11 1153

原创 LightOJ 1408 Batting Practice (期望)

题目连接:http://lightoj.com/volume_showproblem.php?problem=1408题意:连续进k1个球或连续不进k2个球则游戏结束,给出进球概率p,求到游戏结束时投球个数的期望。思路:f[i]表示连续i次不命中时到游戏结束剩余投球个数的期望,t[i]表示连续i次命中时到游戏结束剩余投球个数的期望。设命中概率p,则不命中q=1-p。f[i] = q*(

2013-08-11 20:13:33 1423

原创 LightOJ 1284 Lights inside 3D Grid (概率期望)

题目连接:http://lightoj.com/volume_showproblem.php?problem=1284题意和思路参考:http://www.cnblogs.com/jianglangcaijin/archive/2013/01/01/2841663.html其中Get函数用于计算一维两点不在同一侧的概率。最后公式又迭代、等比数列求和公式推得。#include #inc

2013-08-11 16:17:30 1295

原创 Hdu 4465 Candy (概率 对数 组合数 负二项分布)

题意:两个瓶子里都装了n个糖果;从第一个瓶子拿的概率是p ,当再拿糖果的时候,发现瓶子空了 ,求这时候另外一个瓶子的剩余的糖果的数量的期望 思路:参考了http://www.cnblogs.com/yefeng1627/archive/2013/04/24/3040112.html计算过程中为避免溢出和丢失精度,采用取对数计算,exp还原。本题服从负二项分布:已知一个事件在伯努利试验中

2013-08-11 13:06:21 1111

原创 LightOJ 1038 Race to 1 Again (约数+期望)

题目连接:http://lightoj.com/volume_showproblem.php?problem=1038题意:给一个数,用这个数的约数(包括自己)去除这个数,直到得数为1,求除的次数的期望。思路:设一个数的约数有num个,E[n] = E[a[1]]/num+E[a[2]]/num+...+E[a[num]]/num+1   (因为又除一次,所以+1)整理得:E[n]=(

2013-08-11 10:36:21 1172

原创 LightOJ 1030 Discovering Gold + Hdu4405 Aeroplane chess (期望)

相似的两题一起总结。LightOJ 1030 Discovering Gold题目链接:http://lightoj.com/volume_showproblem.php?problem=1030题意:投骰子从1走到n,注意在最后如果数字超过剩余的格数要重新投。思路:倒推,dp[i]表示走到i位置(从1开始计数)之后获得的期望#include #include #def

2013-08-11 10:20:11 1511

原创 Poj 2096 Collecting Bugs (dp求期望)

简说期望类问题的解法 - Kicd的日志 - 网易博客下面内容参考了:http://blog.csdn.net/morgan_xww/article/details/6774708题意:一个软件有s个子系统,会产生n种bug。 某人一天发现一个bug,这个bug属于某种bug,发生在某个子系统中。 求找到所有的n种bug,且每个子系统都找到bug,这样所要的天数的期望。 需要注意的是:

2013-08-11 10:03:22 896

原创 LightOJ 1027 A Dangerous Maze 概率期望学习小记

偶尔做过一些概率期望的题,现在系统的学习下。大学《概率论与统计》的知识基本够用……下面的链接是别人总结的题目:概率DP_滴答_百度空间【DP_概率DP专辑】【10、4最新更新】 - ZeroClock - 博客频道 - CSDN.NET概率dp 与 dp求期望 - 标签 - Because Of You - 博客园概率dp与dp求期望 « DarkSword概率dp

2013-08-10 19:32:16 1440

原创 LightOJ 1314 Names for Babies (后缀数组 区间长度子串个数)

题目连接:http://lightoj.com/volume_showproblem.php?problem=1314题意:求字符串长度在[p,q]区间上的子串个数。思路:求sa和height数组。每个位置sa[i]最多产生n-sa[i]个子串,min(q,n-sa[i])为实际产生的子串,减去其中max(p,height[i])个重的#pragma warning(disable

2013-08-09 17:51:02 1145

原创 Hdu 3518 Boring counting (出现2次及以上且不重叠的子串的个数)

题意:给出一个字符串,求出现2次且不重叠的子串的个数思路:后缀数组,枚举长度。#include #include #define max(a,b) ((a)>(b)?(a):(b))#define min(a,b) ((a)<(b)?(a):(b))const int N = int(1e4)+10;const int INF=0x3fffffff;int cmp(int

2013-08-09 16:36:46 1043

原创 Hdu 4080 & Poj 3882 Stammering Aliens (后缀数组 可重叠k次最长重复子串)

和Poj3261差不多,利用二分处理。需要输出最靠右的起始位置#include #include #define max(a,b) ((a)>(b)?(a):(b))#define min(a,b) ((a)<(b)?(a):(b))const int N = int(2e5)+10;int cmp(int *r,int a,int b,int l){ return (r

2013-08-09 16:19:04 956

原创 Poj 3581 Sequence (离散化+后缀数组)

题意:给定一个数列,将其分为非空的三段。然后分别将三段的数字翻转连接在一起组成新的数列。输出处理后字典序最小的结果。思路:首先注意必须写成单Case的形式!!!while(scanf("%d",&n)!=EOF)会RE或者WA。。。因为要翻转,所以读入时直接反着读。由于没有告诉数值的上限,所以接下来离散化。对于第一段:第一段翻转之后必须最小,因此对翻转过的数列求sa,则排名在前面且sa

2013-08-08 19:29:39 1279

原创 KMP入门题 Hdu 1711 2594 3746 HUST 1010 Poj 3461 2752 2406 1961 FZU 1901

三道KMP算法的基础题,有关理论可以参考 KMP及其next数组性质学习小记 Poj1961 + Poj2406 - whyorwhnt的专栏HUST 1010 The Minimum Length题意:求给出的字符串的最小循环节。#include #include const int N=1000005;char pattern[N];int next[N]

2013-08-08 16:36:00 1183

原创 Poj 3080 Blue Jeans + Hdu 2328 Corporate Identity (后缀数组 字典序最小的最长公共子串)

题意:求n个长度为60的字符串的最长连续公共子串,2<=n<=101、  最长公共串长度小于3不输出2、  若出现等长的最长的子串,则输出字典序最小的串思路:和Poj 3294 Life Forms差不多,只不过变成了只输出第一个。据说暴力也可以过。。。暴力法参考代码及测试数据:http://blog.csdn.net/lyy289065406/arti

2013-08-07 21:58:29 1365

原创 POJ 3729 Facer’s string (后缀数组 两串后缀的LCP为K的对数)

题意:给出n,m,k,给出两个串长度分别为n,m,找出两个串的后缀的LCP恰好为K的有多少对。思路:将两个串拼接,求出后缀数组。两个后缀的LCP恰好为K 即 大于等于K的数量减去大于等于K+1的。利用height将后缀分组,然后统计每一组内属于第一个串和第二个串分别有多少。#include #include #define max(a,b) ((a)>(b)?(a):(b))#d

2013-08-07 19:02:05 1084

原创 Poj 3294 Life Forms (后缀数组 在n个串中出现k次的最长公共子串并输出)

题意:给出n个字符串,求一个最长的子串,它至少出现在n/2+1个字符串中,如果存在,按字典序输出,若不存在,输出?。思路:和上一题思路一样,具体可参见上篇和上上篇博文。本题多了一个输出。注意分隔符需要变化且不在原串中出现,否则出bug。数组要考虑到分隔符的数量,需要开大些。分隔符不变化:#include #include #include using namespace std;

2013-08-07 10:06:24 1249

原创 POJ 1226 Substrings (后缀数组 n个串的最长公共子串)

题意:给出n个字符串,求出一个最长的串,使得这个串或者这个串的逆串在所有n个字符串中都出现。思路:Poj 2774 的进化版,理论见我上一篇博文。将每一个字符串和自己的逆串相连,中间插入分隔符,然后再将n个这样处理过的串用分隔符相连,按照height数组对sa分组,二分答案。Judge函数用来判断同组中sa是否分别属于给出的n个字符串。一开始judge函数写挫了,跑了800ms……参照别人

2013-08-06 09:43:22 1204

原创 POJ 2774 Long Long Message+Hdu 1403 Longest Common Substring (后缀数组 最长公共子串)

题意:题目好长……其实就是求给出的两个字符串的最长公共子串,注意和用DP做的LCS(最长公共子序列)不同,子串要求连续思路:将两个串连在一起。枚举h求最大值,如果sa[i]和sa[i-1]在连接处的两侧(分属两个字符串)则该h值可以更新答案。理论:最长公共子串问题的后缀数组解法 - BYVoid#include #include #define max(a,b) ((a)>(b

2013-08-05 21:01:48 1061

原创 POJ 3261 Milk Patterns (离散化+后缀数组 可重叠k次最长重复子串)

题意:给出一串长度为n的字符,再给出一个k值,要你求重复次数大于等于k次的最长子串长度思路:首先离散化,然后采用后缀数组的常用处理方法,二份答案,按照二份值k将height数组分组,对于k是否可行的判定:由height数组性质,同一组中个数大于等于k则可行。#pragma warning(disable:4786)#include #include #include #includ

2013-08-05 20:25:28 968

原创 SPOJ 694 Distinct Substrings + SPOJ 705 New Distinct Substrings (可重叠不相同子串个数)

题意:求可重叠的不相同子串个数思路:每一个子串一定是某个后缀的前缀,那么问题便等价于求所有后缀之间的不相同的前缀个数。将所有后缀按照  suffix( sa[1] ), suffix( sa[2] ), ..., suffix( sa[n] ) 依次放入然后计算。当加入sa[k]的时候,sa[k]这个后缀的长度为n-sa[k],那么便有n-sa[k]个前缀,但是由heigh数组可知sa[k]与

2013-08-05 19:57:43 935

原创 hdu 3374 String Problem(KMP+字符串最小最大表示)

题意:给定一个字符串,计算它的最小最大表示开始出现的位置及次数。思路:最小最大表示模板……然后利用KMP算法next数组的性质求循环节出现的次数,原理见博客内相关博文#include #include #include using namespace std;#define max(a,b) ((a)>(b)?(a):(b))#define min(a,b) ((a)<(b)?(

2013-08-05 19:45:58 861

原创 Poj 1743 Musical Theme (后缀数组 不可重叠最长重复子串)

后缀数组学习:后缀数组专题与代码模板 - yefeng1627 - 博客园本题代码参考了上述博文以及 http://poj.org/showmessage?message_id=181597题意:有N个音符的序列来表示一首乐曲,每个音符都是1..88范围内的整数,现在要找一个重复的主题。“主题”是整个音符序列的一个子串,它需要满足如下条件:    1.长度至少为5个音符。 

2013-08-04 20:09:57 1009

原创 Poj 1486 Sorting Slides + FOJ1202 信与信封问题 (二分图的必须边)

理论:http://hi.baidu.com/wrpnjmkfhgbimpq/item/e8402237ef272afbdf222100步骤:1:求最大匹配,匹配边集合E2:删除E中的一条边e,以e的一个端点找增广路,若不能找到增广路则e是必须边3:恢复原图以及E,继续步骤2,直到E中的每条边都被删除过Poj 1486 Sorting Slides 题意:一

2013-08-03 11:17:13 1232

原创 二分图水题整理 Poj 2060 + 1466 + 2771 + hdu 1150 + 1151

Poj 2060 Taxi Cab Scheme题意:在一个矩形城市里面,有间出租车公司收到翌日的预订行程M个,每个给出起点、终点坐标,两个地点之间的车程就是那两个点之间的曼哈顿距离,车起码要在一个行程的出发时间前一分钟到起点。求最少要多少出租车才够完成所有预订?分析:记A,B是两个行程的起点,A',B'分别是终点,假如由A'到B的时间还在B的规定时间前,那么要走完AA',

2013-08-02 22:49:55 965

原创 Poj 3041 Asteroids + Poj 2226 Muddy Fields(二分图与一类选方格题目)

Poj 3041 Asteroids思路:把方阵看做一个特殊的二分图(以行列分别作为两个顶点集V1、V2,其中| V1|=| V2|)然后把每行x或者每列y看成一个点,而障碍物(x,y)可以看做连接x和y的边。按照这种思路构图后。问题就转化成为选择最少的一些点(x或y),使得从这些点与所有的边相邻,其实这就是最小点覆盖问题。.#include #include const int

2013-08-02 21:58:00 1416

原创 Poj 2594 Treasure Exploration + BZOJ 1143 祭祀 river (Floyd+二分图)

两道解法一样的题一起总结Poj 2594 Treasure Exploration题意:派机器人去火星寻宝,给出一个无环的有向图,机器人可以降落在任何一个点上,再沿着路去其他点探索,我们的任务是计算至少派多少机器人就可以访问到所有的点。有的点可以重复去。思路: 这是个最小路径覆盖问题,但是因为有的点可以重复访问,所以最小路径是可以相交的,我们就用传递闭包建立新图(G’),转化为一般

2013-08-02 21:45:57 1178

原创 二分图最佳匹配 KM算法 Hdu2255奔小康赚大钱 + Poj 3565 Ants

理论:http://blog.sina.com.cn/s/blog_691ce2b701016reh.htmlhttp://philoscience.iteye.com/blog/1754498写模板的时候参考了上面两篇博文中的写法。Hdu 2255 奔小康赚大钱#include #include #include const int N=310; //每个集合的最大点

2013-08-02 21:35:40 1093

完全可移植的CCS9.3 TMS320F280049C工程

使用CCS9.3搭建的完全可移植的DSP280049C工程,同时支持库函数和寄存器编程。上传者的博客有详细的配置过程可以参考。

2020-03-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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