- 博客(96)
- 资源 (9)
- 收藏
- 关注
原创 SCUT 2014 B题 Numbers (DFA有穷自动机)
题目链接: SCUT 2014 题目大意: 判断给出的字符串中是否是正确的科学计数法 A+1.5Be+8C,可以是实数或者含有指数的实数,ABC三个部分表示空格,可有可无,正负号可有可无 指数部分只能是整数解题思路: 建立有穷自动机状态转移表,一共是10种状态
2014-05-04 22:13:23 1172
原创 hdu 4396 More lumber is required (二维SPFA)
题目链接: hdu 4396题目大意: 给出带权值的无向边,可能会有自环 给出起点和终点,求至少经过K条边的最短路径解题思路: 当k不能被10整除时,K=k%10+1,否则K=k%10; 二维SPFA,Dp[ a ][ b ]表示经过b条边到达a点的最短路径
2014-02-12 18:57:37 1239
原创 uva 12530 Game of Tiles (二分图完美匹配+博弈论)
题目链接: UVA 12530题目大意: 给出50x50的地图,地图上某些点不能走,可以走四个方向 Alice选任意一个点开始,然后和Bob轮流走,重复的点不能走 最后轮到谁走却不能移动棋子就输解题思路: 二分图的完美匹配:最大匹配数刚好覆盖完左右集合的顶点
2014-01-20 22:46:24 1645
原创 poj 1088 滑雪 (状态压缩DP)
题目链接: poj 1088题目大意: 给出NxM的矩阵,每个点的值都不同 若某点四个方向中某个方向的值比它小则可以移动,求能够走的最长步数解题思路: 经典的状态压缩Dp,Dp[ x ][ y ]记录从(x , y)点出发能走的最长步数 Dp[ x ][ y ]=Max(Dp[ x ][ y ],DF
2014-01-20 22:21:08 1052
原创 hdu 1385 Minimum Transport Cost (最小字典序最短路径)
题目链接: hdu 1385题目大意: 给出N个点的邻接矩阵,求任意两点的最短路径 若有多条路径,输出字典序最小的路径解题思路: 边为-1的时候,换成INF,用Floyd求出最短路径,path[ i ][ j ]表示路径i到j经过的点 dis[ i ][ j ]=Min( dis[ i ][ j
2014-01-16 12:18:48 1604
原创 poj 3422 Kaka's Matrix Travels (最小费用最大流 模板)
题目链接: poj 3422题目大意: 给出NxN的数字矩阵,左上角走到右下角(只能向右或向下走),sum记录走过点值的和 走过的点值置为0,问走K次,求sum的最大值解题思路: 开始想到的是K次最长路,结果WA了 因为每次走最长路会导致下次走的时候不是最优解
2014-01-14 20:28:58 1102
原创 hdu 1956 || poj 1637 Sightseeing tour (混合图欧拉回路)
题目链接: poj 1637题目大意: 给出既有有向边,又有无向边的图 问该图是否存在欧拉回路解题思路: 先把无向边任意定向,然后记录每个结点的出度和入度,设X=出度-入度 若X为奇数,就不存在欧拉回路,因为把边反向只会使得X+-2,无论如何也不能得到0 建
2014-01-13 13:20:10 1418
原创 USACO Riding The Fences (点最小字典序欧拉路径 Fleury)
题目链接: USACO 3.3.1题目大意: 给出无向图,可能有重边 输出最小顶点字典序的欧拉通路路径解题思路: 无向欧拉回路的判断方法,若不存在奇数度点或存在两个奇数度点 则存在欧拉路径,至于重边可以这样处理Edge[a][b]++ PS:欧拉路径的问题要记得
2014-01-12 21:57:01 924
原创 poj 1041 John's trip (边最小字典序欧拉路径 Fleury)
题目链接: poj 1041题目大意: 给出无向图,每条边有唯一的序号 是否存在欧拉回路,若存在输出边序号最小字典序的路径解题思路: 无向欧拉回路的判断方法,若存在奇数度点,则不存在欧拉回路 依据静态邻接链表的特性,从序号大到小建立边 因为这样总能保证序号最
2014-01-12 21:38:15 1505
原创 poj 2337 Catenyms (边最小字典序欧拉路径 Fleury)
题目链接: poj 2337题目大意: 给出N个单词,单词A的开头与另外单词B结尾相同 则单词A和单词B可以连起来,问是否可以把所有单词都串成一条线 输出最小字典序的(按单词的字典序串)解题思路: 对于每个单词,把单词的起点和终点字母当作顶点 这个单词即是起
2014-01-12 21:31:18 1320
原创 poj 3281 Dining (最大流Dinic)
题目链接: poj 3281题目大意: 有N头奶牛,A种食物和B种饮料,每头奶牛都有自己喜欢的食物和饮料 问有最多有多少头奶牛既可以得到自己喜欢的食物又可以得到喜欢的饮料解题思路: 开始没有把奶牛分成两个点,这样会导致几种食物流入同一头奶牛 正确的构图: 1.建立超
2014-01-12 20:59:47 985
原创 poj 3614 Sunscreen (贪心)
题目链接: poj 3614题目大意: 给出N个区间,然后M个数,每个数最多可以匹配Ki次 问最多有多少个区间能被匹配解题思路: 若按区间起点从小到大开始排,每个数按从小到大开始排 下面这种情况会过不了 1 9 6
2014-01-12 18:04:53 1457
原创 poj 2516 Minimum Cost (最小费用最大流)
题目链接: poj 2516题目大意: 给出N间商店和它们对K种商品的需求,再给出M个供应商和K种商品的库存 然后再给出第x种商品从j供应商运输到i商店的单位运输费用 求N间商店对商品的需求能否得到满足,并且输出最小费用解题思路: 如果直接建图会超时,因为顶点数太多
2014-01-12 16:14:41 1057
原创 hdu 1533 || poj 2195 Going Home (最小费用最大流)
题目链接: poj 2195题目大意: 给出NxM的地图,'.'表示可以走的,'H'表示家,'m'表示人,H和m的数目相同 求把所有人移动到H的最小步数解题思路: 建立超级源点,分别连接每个m,容量为1,费用0 建立超级汇点,分别把每个H连接到汇点,容量为1,费用为0
2014-01-11 23:58:09 1073
原创 poj 1698 Alice's Chance (最大流Dinic)
题目链接: 1689题目大意: 有个人想拍n部电影,每部电影限定每周哪几天可以拍 并且必须在第ki周之前把这部电影拍完,问能否拍完n部电影解题思路: 把每部电影当作一个顶点,源点指向这些顶点,容量为该电影需要拍多少天 然后把每一天都当作顶点,某个工作可以在这天完成就连容量为1大边
2014-01-11 02:49:41 1192
原创 poj 1273 Drainage Ditches (最大流Dinic)
题目链接: 1273题目大意: 有N个点和M条边,每条边最大的流量为c,初始流量为0 1为源点,n为汇点求最大流解题思路: 最短增广路算法比一般增广路算法每次增广大范围小,因为每次增广都在残留网络进行 但是最短增广路每次还是要回到源点继续增广,而连续最短增广路算法则利用深搜的思想
2014-01-11 01:25:11 1340
原创 Codeforces Round #216 C Valera and Elections ( DFS )
题目链接: C题目大意: 给出N(N 选择某个结点,从这个结点出发到达1结点的路都会被修复 求这些结点的集合,使得这个集合最小并输出集合的结点(SPJ)解题思路: 建立无向边,从1结点出发开始DFS,没遍历的点就遍历 回溯的时候记录这段路的第一条需要修复的边
2013-12-07 22:41:10 1036
原创 hdu 2463 USTC campus network (BFS+链表+Hash)
题目链接: hdu 2463题目大意: 给出N(N 现在删掉M条边,问能从1顶点遍历到的顶点有多少个?解题思路: 1W个点的完全图有n*(n-1)/2条边,不能直接建图,空间复杂度太高 只需要记录那些边是已经删除掉了的,删除掉的边用Hash(a+b*10000)记录(或map)
2013-11-30 21:04:31 1240
原创 hdu 1507 Uncle Tom's Inherited Land* (棋盘的完美覆盖问题)
题目链接: hdu 1507题目大意: 给出NxM的地图,地图上有空地和草地 用1x2的草地去覆盖空地,问最多覆盖数解题思路: 首先1x2的草地,涉及到两个相邻的空地 若先选择第一个空地,则在没有草地的前提下第二个空地有四种选择 分别从图中不同块任意一个顶点
2013-11-26 01:01:06 1985
原创 hdu 1281 棋盘游戏 (二分图匹配)
题目链接: hdu 1281题目大意: 给出NxM的棋盘,其中有K个点不能放“车” 定义:若某个点不能放"车",则棋盘中放"车"的最大数目减少该点就为重要点 求重要点的个数和棋盘中放"车"的最大数目解题思路: 求出放"车"的最大数目,行作为X集合,列作为Y集合
2013-11-26 00:42:39 1726
原创 hdu 2444 The Accomodation of Students (交叉染色+二分匹配)
题目链接: hdu 2444题目大意: 给出字典,再给出n个单词 找出这些单词在单词表的什么位置,以什么顺序排放(8个方向,A表示正北,顺时针方向依次为B ~ H)解题思路: 由于字典太大,若以字典的所有单词建立字典树空间复杂度很高 建立n个单词的字典树和失败指针
2013-11-26 00:27:05 1165
原创 zoj 1654 Place the Robots (二分图匹配)
题目链接: zoj 1654题目大意: 给出NxM的地图,地图上有空地,草地和墙 要在空地上放置机器人,机器人可向上下左右四个方向发射激光 且防止的机器人不会被其他机器人的激光射到,机器人可以穿过草地但不能穿墙 问可以放置机器人的最大数目解题思路: 先把
2013-11-25 22:53:50 1029
原创 hdu 1150 || poj 1325 Machine Schedule (二分图匹配)
题目链接: hdu 1150题目大意: A机器有N种模式,B机器有M种模式 K件产品,每件产品可以由a模式或者b模式完成 问最少切换多少次模式可以完成K件产品解题思路: N种模式作为X集合,M种模式作为Y集合 它们之间的连线表示两者取其中之一就可完成产品
2013-11-24 19:19:36 1077
原创 poj 1469 || hdu 1083 Courses (二分图匹配)
题目链接: hdu 1083题目大意: 给你N种课程和M个学生,每个学生有自己喜欢的课程 若每个课程都能有一个学生代表输出YES,否则NO解题思路: 把课程作为X集合,学生作为Y集合 匈牙利求他们之间的最大匹配数 若最大匹配数等于课程数(不可能大于的),则满
2013-11-24 18:33:03 924
原创 poj 1274 The Perfect Stall (二分图匹配)
题目链接: poj 1274题目大意: 给出N头奶牛,和M个牛棚 每头奶牛只在自己喜欢的牛棚产奶,问最大的产牛量解题思路: 把N头奶牛作为X集合,M个牛棚作为Y集合 奶牛和牛棚的关系就是集合X和集合Y的关系 问题转化为 X集合和Y集合的最大匹配数
2013-11-24 17:49:28 1457
原创 poj 3041 Asteroids (二分图匹配)
题目链接: poj 3041题目大意: 给出NxN的矩阵,有M个点是障碍 每次只能删除一行或者一列,最少删除多少次才能清除障碍解题思路: 行作为X集合,列作为Y集合,障碍就是两集合间的连线 问题转化为如何使得选取最少的点,覆盖掉所有的直线 由König定理可
2013-11-24 17:36:59 847
原创 poj 1204 Word Puzzles (AC自动机)
题目链接: poj 1204题目大意: 给出字典,再给出n个单词 找出这些单词在单词表的什么位置,以什么顺序排放(8个方向,A表示正北,顺时针方向依次为B ~ H)解题思路: 由于字典太大,若以字典的所有单词建立字典树空间复杂度很高 建立n个单词的字典树和失败指针
2013-11-23 21:56:34 1686 1
原创 hdu 3065 病毒侵袭持续中 (AC自动机)
题目链接: hdu 3065题目大意: 给出N个模式串,最后给出主串 问有模式串在主串中出现的次数解题思路: AC自动机建立字典树的用w值标记第几个模式串 定义k值,匹配时若字典树中的某个结点不等于k且w不为0则记录该点 有多个主串需要匹配,所以不需要改变w的值
2013-11-23 21:17:22 913
原创 hdu 2896 病毒侵袭 (AC自动机)
题目链接: hdu 2896题目大意: 给出N个模式串,最后给出M个主串 问有主串出现过哪些模式串,最后输出哪些主串能匹配模式串解题思路: AC自动机建立字典树的用w值标记第几个模式串 定义k值,匹配时若字典树中的某个结点不等于k且w不为0则记录该点 有多个主串
2013-11-23 21:10:13 1339
原创 hdu 2222 Keywords Search (AC自动机)
题目链接: hdu 2222题目大意: 给出N个模式串,最后给出主串 求模式串在主串的出现过解题思路: AC自动机的模版题,关于AC自动机: AC自动机是多模式串匹配的算法,时间复杂度为O(n*m) 算法的实现结合了KMP和字典树的思想,其中难点在于理解失败指针
2013-11-23 20:59:05 993
原创 hdu 4287 Intelligent IME (字典树)
题目链接: hdu 4287题目大意: 手机打英文,先给出N个数字串表示按键的顺序 M个单词的词典,询问按下这些数字串分别会出现多少个词典中的单词解题思路: 把单词转换成按键数字建成树 最后一个数字结点w值记录次数 查询的时候根据数字遍历字典树
2013-11-07 16:42:25 1264
原创 hdu 2846 Repository (字典树)
题目链接: hdu 2846解题大意: 给出单词的词典,然后有N次查询 每次查询是给出的字符串是词典中多少个单词的子串解题思路: 将每个单词的长度1到Tlen长度为T的子串存进字典树 如单词abacab,只要存abacab,bacab,acab,cab,ab,b
2013-11-07 16:24:27 1395
原创 hdu 1075 What Are You Talking About (字典树)
题目链接: hdu 1075题目大意: 类似解密过程,右边是单词对应的密文 给出一串字符,可以解密的单词都翻译出来解题思路: 将明文存进数组,然后将密文建成Trie树 将最后结点存进树时顺便记录它明文的下标 搜索密文的每一个单词,若在树中则翻译出来
2013-11-07 16:04:13 1010
原创 hdu 1247 Hat’s Words (hash+map)
题目链接: hdu 1247题目大意: 给出单词词典,问词典中哪些单词可以由另外两个单词组成解题思路: 用Hash或者map映射每个单词 枚举每个单词分开成两半时,前后部分是否有对应的Hash(或map)值代码:#include #include #include #include #include #includ
2013-11-07 13:58:55 1267 2
原创 hdu 1251 统计难题 (字典树)
题目链接: hdu 1251题目大意: 给出单词的词典,然后有限次询问 每次询问给出的字符在词典中作为前缀的次数解题思路: 建立词典的字典树 用w标记此结点在建树过程中访问的次数,每经过一次就+1 查询时把查询的字符遍历字典树,遍历最后结点的w值既是答案
2013-11-07 13:43:31 1237
原创 poj 3630 || hdu 1671 Phone List (字典树)
题目链接: hdu 1671题目大意: 给出几串数组,是否存在一个串是另外一个串的前缀,是则输出"YES"解题思路: 每个字符为单位建立一棵Tries树 字符串结尾的结点用w标记,然后插入时判断两种情况: 每次插入时如果经过之前插入字符串的结尾,则之前插入的字符串必定是前缀
2013-11-07 13:29:46 1299
原创 poj 3080 Blue Jeans (KMP+最长公共子串)
题目链接: hdu 1269题目大意: 给定n个字符串,找出最长的公共子串,不存在输出 no significant commonalities解题思路: 选出长度最短的字符串,枚举它的子串 把它的子串分别与其余的n-1个字符串匹配 字符串长度越短它的子串就越少,枚举量越少
2013-10-23 13:08:26 1198
原创 poj 3450 Corporate Identity (KMP+最长公共子串)
题目链接: poj 3450题目大意: 给定n个字符串,找出最长的公共子串,若长度小于3则输出IDENTITY LOST解题思路: 选出长度最短的字符串,枚举它的子串 把它的子串分别与其余的n-1个字符串匹配 字符串长度越短它的子串就越少,枚举量越少 枚举子串的顺序
2013-10-23 12:55:39 1407
原创 poj 1961 Period (KMP+最小循环节)
题目链接: poj 1961题目大意: 给定字符串,找出他所有的前缀的最小循环节的长度解题思路: 思路与2406一样 Tlen%(Tlen-next[Tlen])==0则Tlen-next[Tlen]是最小循环节 证明过程参考2406的解题报告 这里需要多次
2013-10-23 12:38:22 954
原创 poj 2406 Power Strings (KMP+最小循环节)
题目链接: poj 2406题目大意: 给出一个由某个串重复有限次得到的字符串 求重复次数最多是多少,既找出最小重复子串解题思路: 字符串abcabcabc的next[ ]值为 0 1 2 3 4 5 6 7 8 9 a b c a b c
2013-10-23 11:24:33 955
poj 2785 测试数据
2013-03-01
poj 2485 Highways 测试数据
2013-03-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人