摘要:LCA指的是最近公共祖先(Least Common Ancestors),如下图所示: 4和5的LCA就是2 那怎么求呢?最粗暴的方法就是先dfs一次,处理出每个点的深度 然后把深度更深的那一个点(4)一个点地一个点地往上跳,直到到某个点(3)和另外那个点(5)的深度一样 然后两个点一起一个点地一个 阅读全文
posted @ 2016-10-18 11:41 阿波罗2003 阅读 (10052) 评论 (0) 编辑
摘要:不解释,很简单,直接按照题目的方法构造就行了 Code 直接Tarjan,当然也可以直接用深搜(貌似要比Tarjan快一点,其实思路还是差不多的) Code(Tarjan) 1 #include<iostream> 2 #include<cstdio> 3 #include<cctype> 4 #i 阅读全文
posted @ 2016-10-17 15:02 阿波罗2003 阅读 (112) 评论 (0) 编辑
摘要:Description Boudreaux and Thibodeaux are student volunteers for this year's ACM South Central Region's programming contest. One of their duties is to 阅读全文
posted @ 2016-10-11 21:04 阿波罗2003 阅读 (59) 评论 (0) 编辑
摘要:第一道题还是比较简单,只不过做的时候手贱写错了一个字母,然后活活RE掉了40分 先处理处最终的图,然后从后往前用并查集完成询问。至于之前的删边可以排个序, 然后建一个长度和它一样的boolean数组标志这条边又没被删,删除的时候就lower_bound 就可以了,只不过注意重复的边。如果这一位上为f 阅读全文
posted @ 2016-10-06 14:23 阿波罗2003 阅读 (61) 评论 (0) 编辑
摘要:Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16313 Accepted: 4291 Description Bessie hears that an extraordinary meteor shower is coming 阅读全文
posted @ 2016-10-04 19:30 阿波罗2003 阅读 (641) 评论 (0) 编辑
摘要:这道题没有什么可说的,先统计,然后几次快排,答案就出来了 Code(整齐但不简洁的代码) 这道题是有依赖的背包问题的裸题,一个主件最多有两个附件,而且附件没有属自己的附件,所以不用考虑树形dp 直接用普通的dp就行了,考虑4个状态 1)只要主件 2)只要主件和第一个附件 3)只要主件和第二个附件 4 阅读全文
posted @ 2016-09-24 16:04 阿波罗2003 阅读 (61) 评论 (0) 编辑
摘要:1.统计数字 题目描述 Description 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109)。已知不相同的数不超过10000 个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。 题目描述 Description 某次科研调查时得 阅读全文
posted @ 2016-09-03 11:03 阿波罗2003 阅读 (75) 评论 (0) 编辑
摘要:Mayan puzzle是最近流行起来的一个游戏。游戏界面是一个7行5列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上。游戏通关是指在规定的步数内消除所有的方块,消除方块的规则如下: 1、每步移动可以且仅可以沿横向(即向左或向右)拖动某一方块一格:当拖动 阅读全文
posted @ 2016-08-30 19:10 阿波罗2003 阅读 (403) 评论 (0) 编辑
摘要:描述(A 输入文件 : A.input 输出文件 : A.output)一个城市的构成是一颗n 个节点的树(2 ≤ n ≤ 200), 现在需要在树中找出两条不相交的路径(即两条路径不能有重边也不能有重点),使得路径的长度的乘积最大。输入描述第一行一个数n 表示这个城市一共有 n 个节点。接下来 n 阅读全文
posted @ 2016-08-29 17:29 阿波罗2003 阅读 (47) 评论 (0) 编辑
摘要:题目描述 Description Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英。他们劫富济贫,惩恶扬善,受到社会各界的赞扬。 最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争。战火绵延五百里,在和平环境中安逸了数百年的Z国又怎能抵挡的住Y国的军队。于是人们把所有的希望 阅读全文
posted @ 2016-08-29 15:01 阿波罗2003 阅读 (82) 评论 (0) 编辑
摘要:描述 给定一个信封,最多只允许粘贴N张邮票,计算在给定M(N+M<=10)种邮票的情况下(假定所有的邮票数量都足够),如何设计邮票的面值,能得到最大max ,使得1~max之间的每一个邮资值都能得到。 例如,N=3,M=2,如果面值分别为1分、4分,则在l分~6分之间的每一个邮资值都能得到(当然还有 阅读全文
posted @ 2016-08-28 12:27 阿波罗2003 阅读 (877) 评论 (0) 编辑
摘要:背景 在双人对决的竞技性比赛,如乒乓球、羽毛球、国际象棋中,最常见的赛制是淘汰赛和循环赛。前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高。后者的特点是较为公平,偶然性较低,但比赛过程往往十分冗长。 本题中介绍的瑞士轮赛制,因最早使用于 1895 年在瑞士举办的国际象棋比赛而得名。 它可以看作是 阅读全文
posted @ 2016-08-25 20:38 阿波罗2003 阅读 (136) 评论 (0) 编辑
摘要:在很多平衡树中都用到了树的旋转来维护,比如说红黑树,以及竞赛比较常用的树堆(Treap) 树的旋转既要能改变最大深度,使得平衡树平衡又不能破坏BST(二叉查找树,Binary Search Tree) 的性质,还是比较困难。 先不说BST的,先看看一棵普通的树是怎么旋转的(虽然是一样),然后再思考, 阅读全文
posted @ 2016-08-21 22:38 阿波罗2003 阅读 (265) 评论 (0) 编辑
摘要:在学习了计数排序后,可以发现一个很严重的问题,如果数据很大呢,不如说每个元素小于2^64 - 1,不仅超时,而且正常数据下内存直接炸了。 (虽然可以直接用快排,但是为了讲解基数排序还是讲一下基数排序) 基数排序可以说成是改良版的桶排(有点类似,基数排序还是属于一种"分配式"排序),还是将一些数放入指 阅读全文
posted @ 2016-08-09 12:22 阿波罗2003 阅读 (163) 评论 (0) 编辑
摘要:计数排序的思想在于统计比某个数小或等于它的个数。关键就在于统计,就随便举一个例子 有一个要从小到大排序的数组A[] = {3,4,1,5, 6} 如何确定比A[0]小的个数 定一个数组counter,counter用来统计,方法是这样的↓ 将每个元素对应counter的下标,counter这个位加一 阅读全文
posted @ 2016-08-07 18:02 阿波罗2003 阅读 (37) 评论 (0) 编辑
摘要:描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足T1<...<Ti>Ti+1>…>TK(1<=i<=K)。 你的任务是,已知 阅读全文
posted @ 2016-07-28 20:41 阿波罗2003 阅读 (2522) 评论 (0) 编辑
摘要:题目描述 Description 津津的零花钱一直都是自己管理。每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。 为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上20%还给津津。因此津津制定了一个储蓄计划:每个月的月初, 阅读全文
posted @ 2016-07-28 18:41 阿波罗2003 阅读 (94) 评论 (0) 编辑
摘要:Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 51758 Accepted Submission(s): 16671 Problem Des 阅读全文
posted @ 2016-07-26 17:52 阿波罗2003 阅读 (52) 评论 (0) 编辑
摘要:这道题有多种解法,我用的是扩展欧几里得算法求到的答案 这道题把第i个人看做一个有序的序列(1、2、3、4....)然后二分 至于求和,就像这么处理: 、 接着从前面开始求和。。。 就像这样可以求出每一天的教室使用量,如果1 ~ v天中有哪一天不够用了,就在前半段 查找,如果都足够,就向后面查找,每次 阅读全文
posted @ 2016-07-22 21:38 阿波罗2003 阅读 (64) 评论 (0) 编辑
摘要:1.无线网络发射器选址 这道题数据范围很小,就直接暴力枚举就好了。为了提高速度,就从每个有公共场所的点枚举周围在(x,y)放无线网路发射器可以增加的公共场所数量,加到一个数组里。所有公共场所都处理完了后,把这个数组扫一遍,边扫边得到最大值和个数。 其实可以用二维前缀和优化一下更快。 Code: 2. 阅读全文
posted @ 2016-07-21 19:29 阿波罗2003 阅读 (49) 评论 (0) 编辑
摘要:Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 15406 Accepted Submission(s): 9766 Problem Descr 阅读全文
posted @ 2016-07-19 21:08 阿波罗2003 阅读 (58) 评论 (0) 编辑
摘要:Description Two positive integers are said to be relatively prime to each other if the Great Common Divisor (GCD) is 1. For instance, 1, 3, 5, 7, 9... 阅读全文
posted @ 2016-07-19 20:23 阿波罗2003 阅读 (258) 评论 (0) 编辑
摘要:Description Farmer John completed his new barn just last week, complete with all the latest milking technology. Unfortunately, due to engineering prob 阅读全文
posted @ 2016-07-18 21:33 阿波罗2003 阅读 (53) 评论 (0) 编辑
摘要:题目描述 现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi。我们希望从中选择一些软件安装到一台磁盘容量为M计算机上,使得这些软件的价值尽可能大(即Vi的和最大)。但是现在有个问题:软件之间存在依赖关系,即软件i只有在安装了软件j(包括软件j的直接或间接依赖)的情况下才 阅读全文
posted @ 2016-07-18 21:24 阿波罗2003 阅读 (72) 评论 (0) 编辑
摘要:现在讲一下指针的主要用途和常见错误。 [用途] 1.用作形参 首先,常见新手写交换函数: 主函数里调用一下试试,看看a,b的值有没有改变? 运行结果就不公布了,对于新手,有木有发现什么不对的地方? 是什么原因造成这个结果的呢?应该是内存地址吧,要同一内存地址修改其中一个的值 才会改变另一个的值,那来 阅读全文
posted @ 2016-07-16 21:47 阿波罗2003 阅读 (58) 评论 (0) 编辑