自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Demon-初来驾到

这世界从来就只有强者的奋斗史,而没有弱者的墓志铭

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

原创 挑战程序竞赛系列(92):3.6凸包(3)

挑战程序竞赛系列(92):3.6凸包(3)传送门:POJ 1912: A highway and the seven dwarfs题意: 高铁与七个小矮人:侏儒岛上有N栋房子,组成一个社区。现给定一条高铁,问该高铁是否分割了社区? 此题不错,好题。很明显,判断社区是否被分割时,只需判断外围的点集即可(凸包上的点),因为凸包所能围城的区域最大,那么社区更容易被分割。求完凸包上的点后,朴素的

2017-09-29 22:22:31 337

原创 挑战程序竞赛系列(91):3.6凸包(2)

挑战程序竞赛系列(91):3.6凸包(2)传送门:POJ 1113: Wall题意参考hankcs: http://www.hankcs.com/program/algorithm/poj-1113-wall.html题意: 墙:有个愚蠢的皇帝要你造墙将城堡围起来,城堡的顶点有N个,墙必须离城堡的边至少L单位远,并且墙的总长度尽量小。求此长度? 所以求最大凸包把所有的点都围起来即可,但

2017-09-29 19:22:01 637

原创 挑战程序竞赛系列(90):3.6凸包(1)

挑战程序竞赛系列(90):3.6凸包(1)传送门:POJ 2187: Beauty Contest题意: 平面上有N个牧场。i号牧场的位置在格点(xi,yi)(x_i, y_i),所有牧场的位置互不相同。请计算距离最远的两个牧场的距离,输出最远距离的平方。假设有四个点,其中一个点在三个点的内部,可以知道该点是冗余的,所以我们只需要维护所有点的凸包,求出凸包上点集中的两两最大即可。凸包的详细介绍

2017-09-29 18:32:44 620

原创 挑战程序竞赛系列(89):3.6平面扫描(3)

挑战程序竞赛系列(89):3.6平面扫描(3)传送门:POJ 3292: Rectilinear polygon题意参考hankcs: http://www.hankcs.com/program/algorithm/poj-3293-rectilinear-polygon.html题意: 直角多边形:给定N个点,问是否能组成直角多边形(每个顶点都与另外两个顶点构成直角,每条边都平行于坐标轴),

2017-09-29 13:50:35 556

原创 挑战程序竞赛系列(88):3.6平面扫描(2)

挑战程序竞赛系列(88):3.6平面扫描(2)传送门:POJ 3168: Barn Expansion题意: 求不重叠的矩形个数。当然,题意是说求能够被扩大的矩形个数,很坑爹,一开始以为扩大的单位是1格,其实题目中明确指出: at least some amount without bumping into another barn,英文是硬伤,所以只要不重叠即可。思路参考hankcs,把矩形

2017-09-29 10:16:26 495

原创 挑战程序竞赛系列(87):3.6平面扫描(1)

挑战程序竞赛系列(87):3.6平面扫描(1)传送门:POJ 2932: Coneology题意: 平面上有N个两两没有公共点的圆,i号圆的圆心在(xi,yi)(x_i, y_i),半径为rir_i。求所有最外层的,不被任何圆包含的圆。此题还给了一个条件,任何两圆都没有公共点,所以要么是包含关系,要么相离,不存在相交的情况。所以朴素的做法是枚举,而判断一个圆是否包含另一个圆的方法,只需要考虑两

2017-09-28 22:46:34 383

原创 挑战程序竞赛系列(86):3.6极限情况(3)

挑战程序竞赛系列(86):3.6极限情况(3)传送门:AOJ 2201: Immortal Jewels翻译参考至hankcs: http://www.hankcs.com/program/algorithm/aoj-2201-immortal-jewels.html题意: 求婚:有个贵族向一个贫穷的公主求婚,公主提出条件,需要一种“永生宝石”做嫁妆。这种宝石极其稀有,而且极易损毁,所以开采时

2017-09-28 16:51:16 706

原创 挑战程序竞赛系列(85):3.6极限情况(2)

挑战程序竞赛系列(85):3.6极限情况(2)传送门:POJ 1418: Viva Confetti题意: 礼花:Confetti 是一些大小不一的彩色圆形纸片,人们在派对上、过节时便抛洒它们以示庆祝。落在地上的Confetti会堆叠起来,以至于一部分会被盖住而看不见。给定Confetti的尺寸和位置以及它们的叠放次序,你能计算出有多少Confetti是可以看见的吗? 思路: 此题的确

2017-09-28 12:56:38 291

原创 挑战程序竞赛系列(84):3.6极限情况(1)

挑战程序竞赛系列(84):3.6极限情况(1)传送门:POJ 1981: Circle and Points题意: 平面上有N个点,给定半径为1的圆,最多能在圆内点的个数。这种题目很大特色在于,如果枚举圆的圆心,那么在偌大的空间中,有无数个圆,显然是不现实的。所以得考虑极限情况,也就是找出一种特殊的状态,更新它们的集合,能够获得答案。此题的极限情况为:当两个点在一个圆上时,最大值一定在于这种情

2017-09-28 09:19:34 637

原创 挑战程序竞赛系列(83):3.6计算几何基础

挑战程序竞赛系列(83):3.6计算几何基础传送门:POJ 1127: Jack Straws之前计算几何这一块还未学习,今天开始把它们补上。题意: 桌上放着n根木棍,木棍i的两端的坐标分别是(pix,piy)和(qix,qiy)(p_{ix}, p_{iy})和(q_{ix}, q_{iy})。给定m对木棍(ai,bi)(a_i, b_i),请判断每对木棍是否相连。当两根木棍之间有公共点

2017-09-27 20:17:11 600

原创 挑战程序竞赛系列(82):4.3 LCA(2)

挑战程序竞赛系列(82):4.3 LCA(2)传送门:POJ 1986: Distance Queries题意: LCA距离:快速查询树中任意两个节点间的最短距离。思路: 树中,每两个结点的路径是唯一的,比POJ: 2763简单,稍微改改就过了,思路一致,解题套路。代码如下:import java.io.BufferedReader;import java.io.File;import

2017-09-27 09:08:30 552

原创 挑战程序竞赛系列(81):4.3 LCA(1)

挑战程序竞赛系列(81):4.3 LCA(1)传送门:POJ 2763: Housewife Wind题意: XX村里有n个小屋,小屋之间有双向可达的道路相连,所构成的图是一棵树。通过连接aia_i号小屋和bib_i号小屋的道路i需要花费wiw_i的时间。你一开始在s号小屋。请处理以下Q个查询。 A:输出从当前位置移动到结点x所需要的时间。 B:将通过道路x所需的时间改为t。所需

2017-09-26 22:51:59 512

原创 挑战程序竞赛系列(80):4.3 2-SAT(4)

挑战程序竞赛系列(80):4.3 2-SAT(4)传送门:POJ 2749: Building roads题意: 阳关路与独木桥:有N个农场,其中A对相互讨厌,不能碰面;B对相互喜欢,必须碰面。给定两个中转站S1和S2、各个农场的坐标,让每个农场连接到其中一个中转站。求最小化任意两个农场通过中转站的最大距离,若无法实现,输出-1。最开始的想法是直接根据hate和friend关系推出矛盾,在可

2017-09-26 15:05:49 800

原创 挑战程序竞赛系列(79):4.3 2-SAT(3)

挑战程序竞赛系列(79):4.3 2-SAT(3)传送门:POJ 2723: Get Luffy Out题意: 题目意思有点坑,实际上给出每一对钥匙,如(0,3),如果选择了钥匙0,那么后续的门只能用钥匙0开,而不能再选择3,意味着每对钥匙是可以开多扇门的。思路: 二分+2-SAT,每一扇门有两把锁,一扇门能推出一对矛盾关系,如OJ上提供的数据:3 60 31 24 50 10

2017-09-26 13:17:15 661

原创 挑战程序竞赛系列(78):4.3 2-SAT(2)

挑战程序竞赛系列(78):4.3 2-SAT(2)传送门:POJ 3678: Katu Puzzle题意: 某组合电路有N个输入,M个与或异或门将其两两相连构成多个输出,问是否存在满足给定输出的输入。思路: 2-SAT模型都是解题套路,对于每一条边,如 0 1 1 AND:ANDa b 0 0 00 1 01 0 01 1 1给定c = 1,说明 0-0,0-1,1-0的关系矛盾

2017-09-26 09:39:12 561

原创 挑战程序竞赛系列(77):4.3 2-SAT(1)

挑战程序竞赛系列(77):4.3 2-SAT(1)传送门:POJ 3683: Priest John’s Busiest Day题意: 有n个婚礼,每个婚礼有起始时间si,结束时间ti,还有一个主持时间ti,ti必须安排在婚礼的开始或者结束,主持由祭祀来做,但是只有一个祭祀,所以各个婚礼的主持时间不能重复,问你有没有可能正常的安排主持时间,不能输出no,能的话要输出具体的答案:即每个婚礼的主持

2017-09-25 23:11:24 397

原创 挑战程序竞赛系列(76):4.3强连通分量分解(3)

挑战程序竞赛系列(76):4.3强连通分量分解(3)传送门:POJ 1236: Network of Schools题意: 校园网:给定N所学校和网络,目标是分发软件其他学校都可收到,求①所需最少分发学校数;②若任选学校都能收到,最低新增边数。针对第一问,求解缩点后,入度为0的顶点个数。 针对第二问,求解缩点后,入度为0和出度为0的顶点个数的最大值。注意缩点后的出入度表示方法,其中如果在一个

2017-09-25 17:04:16 528

原创 挑战程序竞赛系列(75):4.3强连通分量分解(2)

挑战程序竞赛系列(75):4.3强连通分量分解(2)传送门:POJ 3180: The Cow Prom题意: 求结点大于等于2的强连通分量个数。直接上代码,没什么好说的。代码如下:import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.IOExcept

2017-09-25 16:10:35 513

原创 挑战程序竞赛系列(74):4.3强连通分量分解(1)

挑战程序竞赛系列(74):4.3强连通分量分解(1)传送门:POJ 2186: Popular Cows题意: 每头牛都想成为牛群中的红人。给定N头牛的牛群和M个有序对(A,B)。(A, B)表示牛A认为牛B是红人。该关系具有传递性,所以如果A认为B是红人,B认为C是红人,则A认为C是红人。注意:给定的有序对中可能包含(A, B)和(B, C),但不包含(A, C)。求被其他所有牛认为是红人的牛

2017-09-25 15:41:22 565

原创 挑战程序竞赛系列(73):4.7高度数组(3)

挑战程序竞赛系列(73):4.7高度数组(3)传送门:POJ 3729: Facer’s String题意: 公共子串: 给出两个字符串A,B,求满足下列条件的C的个数: 1. C是A的子串 2. C也是B的子串 3. C加上其在A中的后继字符(若在最尾则加上空格字符)不能够在B中出现其实就是问A中有多少个长度为K的子串在B中刚好存在,且再加上后一个字符形成的子串在B中

2017-09-24 22:15:42 438

原创 挑战程序竞赛系列(72):4.7高度数组(2)

挑战程序竞赛系列(72):4.7高度数组(2)传送门:POJ 3415: Common Substrings题意: 公共子串:统计A和B长度不小于K的公共子串个数。思路: 一开始想当然的求LCP数组,把LCP遍历一遍,大于K的,ans不断累加ans += lcp[i] - k + 1,但这只是一部分解,因为所求的只是相邻后缀的最长公共前缀。一种直观的做法时,两个for循环,对于当前位置属于S

2017-09-24 19:20:42 539

原创 LWC 51:683. K Empty Slots

LWC 51:683. K Empty Slots传送门:683. K Empty SlotsProblem: There is a garden with N slots. In each slot, there is a flower. The N flowers will bloom one by one in N days. In each day, there will be exac

2017-09-24 14:06:59 2220

原创 LWC 51:684. Redundant Connection

LWC 51:684. Redundant Connection传送门:684. Redundant ConnectionProblem: We are given a “tree” in the form of a 2D-array, with distinct values for each node. In the given 2D-array, each element pai

2017-09-24 13:44:58 833

原创 LWC 51:681. Next Closest Time

LWC 51:681. Next Closest Time传送门:681. Next Closest TimeProblem: Given a time represented in the format “HH:MM”, form the next closest time by reusing the current digits. There is no limit on how many

2017-09-24 13:01:48 1451

原创 LWC 51:682. Baseball Game

LWC 51:682. Baseball Game传送门:682. Baseball GameProblem: You’re now a baseball game point recorder. Given a list of strings, each string can be one of the 4 following types: Integer (one

2017-09-24 12:07:15 521

原创 挑战程序竞赛系列(71):4.7高度数组(1)

挑战程序竞赛系列(71):4.7高度数组(1)传送门:POJ 2217: Secretary题意: 给定两个字符串S和T。请计算两个字符串最长的公共字符串子串的长度。LCP概念:在后缀数组中相邻两个后缀的最长公共前缀(Longest Common Prefix)的确很取巧,相邻位置的最长公共前缀可以由前一个位置的最长公共前缀得出,至少在h-1个位置上不需要再比较,而直接比较后续的字符即可。代码

2017-09-22 20:02:59 642

原创 挑战程序竞赛系列(70):4.7后缀数组(2)

挑战程序竞赛系列(70):4.7后缀数组(2)传送门:POJ 1509: Glass Beads题意: The description of the necklace is a string A = a1a2 … am specifying sizes of the particular beads, where the last character am is considered to pr

2017-09-22 16:01:22 620

原创 挑战程序竞赛系列(69):4.7后缀数组(1)

挑战程序竞赛系列(69):4.7后缀数组(1)传送门:POJ 3581: Sequence题意: 给定N个数字组成的序列A1,A2,....,AnA_1, A_2, ...., A_n。其中A1A_1比其他数字都大。现在要把这个序列分成三段,并将每段分别反转,求能得到的字典序最小的序列是什么?要求分得的每段都不为空。第一次接触后缀数组,采用《挑战》P378的后缀算法,时间复杂度为O(nlog2

2017-09-22 14:41:35 632

原创 LWC 50:679. 24 Game

LWC 50:679. 24 Game传送门:679. 24 GameProblem: You have 4 cards each containing a number from 1 to 9. You need to judge whether they could operated through *, /, +, -, (, ) to get the value of 24.Examp

2017-09-21 22:24:29 818

原创 LWC 50:678. Valid Parenthesis String

LWC 50:678. Valid Parenthesis String传送门:678. Valid Parenthesis StringProblem: Given a string containing only three types of characters: ‘(‘, ‘)’ and ‘*’, write a function to check whether this string

2017-09-21 21:54:33 1210

原创 LWC 50:677. Map Sum Pairs

LWC 50:677. Map Sum Pairs传送门:677. Map Sum PairsProblem: Implement a MapSum class with insert, and sum methods. For the method insert, you’ll be given a pair of (string, integer). The string repr

2017-09-21 21:27:19 942

原创 LWC 50:680. Valid Palindrome II

LWC 50:680. Valid Palindrome II传送门:680. Valid Palindrome IIProblem: Given a non-empty string s, you may delete at most one character. Judge whether you can make it a palindrome.Example 1: Input: “

2017-09-21 20:29:10 1278

原创 挑战程序竞赛系列(68):4.7字符串匹配(3)

挑战程序竞赛系列(68):4.7字符串匹配(3)传送门:AOJ 1312: Where’s Wally题意: 找茬:从大图中找出特定方块小图,旋转翻转皆可。参考《挑战》P376: 先编码,后hash计算,最后匹配输出结果,和书上一个思路。代码如下:import java.io.BufferedReader;import java.io.File;import java.io.FileIn

2017-09-15 18:08:45 600

原创 挑战程序竞赛系列(67):4.7字符串匹配(2)

挑战程序竞赛系列(67):4.7字符串匹配(2)传送门:Codeforces 25E: Test题意: 出题:众所周知,程序竞赛测试数据越变态越好玩。已知3个字符串会使选手的程序出错,出题者想构造一个超级变态数据同时包含这3个字符串。求该母串最小长度。依旧是滚动hash,如书上的解释: 采用了LONG 64位无符号hash映射,此处之所以比传统的overlap算法快,是因为hash算法能够在

2017-09-15 14:20:43 656

原创 挑战程序竞赛系列(66):4.7字符串匹配(1)

挑战程序竞赛系列(66):4.7字符串匹配(1)传送门:POJ 3690: Constellations题意: 给定一个由“*”和“0”组成的,大小为N x M 的匹配对象和T个大小为P x Q的匹配模式。输出在匹配对象中至少出现过一次的匹配模式的个数。滚动hash算法,又叫做Rabin-karp算法。利用滑动窗口循环计算hash值,复杂度可以控制在O(n)O(n)内。此题扩展到了二维,先算出

2017-09-15 08:25:34 570

原创 挑战程序竞赛系列(65):4.7字符串上的动态规划(3)

挑战程序竞赛系列(65):4.7字符串上的动态规划(3)传送门:Codeforces 86C: Genetic Engineering题意: 基因工程:给定m个子串,求构造长n的母串的方案数。母串中每个字符都至少来自一个子串。中文的解释有点含糊,不如看原文公式: More formally: denote by |w| the length of w, let symbols of w b

2017-09-14 17:34:00 683

原创 挑战程序竞赛系列(64):4.7字符串上的动态规划(2)

挑战程序竞赛系列(64):4.7字符串上的动态规划(2)传送门:AOJ 2212: Stelen Jewel题意: 给定一张地图,求出从起点到终点的最短步数。其中可达路径中的移动模式不允许出现指定的字符集。题意可参考博文: http://www.hankcs.com/program/algorithm/aoj-2212-stolen-jewel.html思路比较好想: BFS的框架➕Aho

2017-09-14 14:45:43 376

原创 挑战程序竞赛系列(63):4.7字符串上的动态规划(1)

挑战程序竞赛系列(63):4.7字符串上的动态规划(1)传送门:POJ 3691: DNA Pair题意: 考虑只由A, G, C, T四种字符组成的DNA字符串。给定一个原字符串S,和n个禁止模式字符串P1,P2,...,PnP_1,P_2,...,P_n。请修改字符串S,使得其中不包含任何禁止模式。每次修改操作只能将S中的某个字符修改为其他字符。如果不存在这样的修改,请输出-1,否则,输出所

2017-09-13 19:19:26 619

原创 挑战程序竞赛系列(62):4.6平面上的分治法(2)

挑战程序竞赛系列(62):4.6平面上的分治法(2)传送门:Codeforces 97B: Superset题意:(参考hankcs) http://www.hankcs.com/program/algorithm/codeforces-97b-superset.html 点集:给定n个点,请添加一些点,使任意两点满足①在同一条水平线或竖直线上②或构成一个矩形框住其他点。直接看hankcs的

2017-09-13 13:03:57 552

原创 挑战程序竞赛系列(61):4.6平面上的分治法(1)

挑战程序竞赛系列(61):4.6平面上的分治法(1)传送门:Uva 10245: The Closest Pair Problem传送门:POJ 3714: RaidUva 10245: The Closest Pair Problem思路: 分治,参考《挑战》P365: 利用分治后左平面和右平面的最小d来限制第二种情况的查询,绝了。关于第二种情形的算法采用平面扫描法,但前提y需要排序。注

2017-09-13 10:21:39 380

用单调性优化动态规划

用单调性 优化动态规划

2017-05-09

空空如也

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

TA关注的人

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