BestCoder Round #43
T1:pog loves szh I(hdu 5264)
题目大意:
给出把AB两个字符串交叉拼起来的结果,求出原串。
题解:
不解释。。直接每次+2输出。
T2:pog loves szh II(hdu 5265)
题目大意:给出N个数,求Mod P 域下 两个数最大和。 N<=100000
题解:
先把所有数Mod P,然后我们分2类讨论。 一类是A+B<=P-1. 这种情况只要排个序,然后假设A<=B,从左往右枚举A,那么最优的B是从右往左过来的。O(N)解决。
另外一类是P<=A+B<=2*P-2. 这种情况只要把最大的两个加起来就好了。 比赛的时候没考虑这种情况,傻逼了,然后就悲剧的FST了。本来打完T3 的时候是Rank 22的,然后T4貌似没人去做,就去打游戏了.结果回来发现悲剧的FST,Rank掉到50了。。
T3:pog loves szh III(hdu 5266)
题目大意:给出一棵以1位根的树,多次询问点[L,R]的LCA。 N,Q<=300000
题解:
我的做法是O(nlogn+Qlognlogn)的.就是先预处理倍增数组,然后建一颗线段树,保存线段里所有点的LCA。有区间可并性嘛。时间限制开了6s,还是水过了。
标算是少了一个log的,有一个性质,就是[L,R]的LCA等于[L,R]里Dfs序最大和最小的两个点的LCA。
证明:
对于询问[L,R],我们要找一个深度最大的点Y,[L,R]在Y的子树里。 假设已经找到了这样的Y,我们只要证明Dfs序最小的点P和Dfs序最大的点Q的LCA是Y.由于对于一个点X来说,他的子树的DFS序是连续的。PQ以外的其他点Dfs序都在PQ的Dfs序之间,所以它们应该在LCA(P,Q)的子树中。那么LCA(P,Q)只能等于Y。
所以再来一次ST求出区间Dfs序最大和最小的点.
T4:pog loves szh IV(hdu 5267)
题目大意:给出一颗树,每次修改一个节点的权值,然后询问所有路径的权值和。一条路径的权值等于路径上的点的亦或和。 N,Q<=10000. Time Limit 12s.
题解:
貌似挺难的样子,考试的时候想了大概20分钟就弃疗了。很容易想到可以把点的权值改成根到点的路径的权值,这样原先两点之间的路径的权值就变成这两点的权值的亦或和,再亦或他们的LCA。关键是想到按位来考虑。没有修改操作的话可以点分,在计算以X为根的答案的时候只要记录之前的子树里有多少个1和0. 待修改的还在学习中,之后补上。。
BestCoder Round #43的更多相关文章
- 字符串处理 BestCoder Round #43 1001 pog loves szh I
题目传送门 /* 字符串处理:是一道水题,但是WA了3次,要注意是没有加'\0'的字符串不要用%s输出,否则在多组测试时输出多余的字符 */ #include <cstdio> #incl ...
- 贪心/二分查找 BestCoder Round #43 1002 pog loves szh II
题目传送门 /* 贪心/二分查找:首先对ai%=p,然后sort,这样的话就有序能使用二分查找.贪心的思想是每次找到一个aj使得和为p-1(如果有的话) 当然有可能两个数和超过p,那么an的值最优,每 ...
- hdu 5636 搜索 BestCoder Round #74 (div.2)
Shortest Path Accepts: 40 Submissions: 610 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: ...
- BestCoder Round #89 02单调队列优化dp
1.BestCoder Round #89 2.总结:4个题,只能做A.B,全都靠hack上分.. 01 HDU 5944 水 1.题意:一个字符串,求有多少组字符y,r,x的下标能组成等比数列 ...
- BestCoder Round #90 //div all 大混战 一题滚粗 阶梯博弈,树状数组,高斯消元
BestCoder Round #90 本次至少暴露出三个知识点爆炸.... A. zz题 按题意copy Init函数 然后统计就ok B. 博弈 题 不懂 推了半天的SG..... 结果这 ...
- bestcoder Round #7 前三题题解
BestCoder Round #7 Start Time : 2014-08-31 19:00:00 End Time : 2014-08-31 21:00:00Contest Type : ...
- Bestcoder round #65 && hdu 5593 ZYB's Tree 树形dp
Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submissio ...
- Bestcoder round #65 && hdu 5592 ZYB's Premutation 线段树
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submissio ...
- 暴力+降复杂度 BestCoder Round #39 1002 Mutiple
题目传送门 /* 设一个b[]来保存每一个a[]的质因数的id,从后往前每一次更新质因数的id, 若没有,默认加0,nlogn复杂度: 我用暴力竟然水过去了:) */ #include <cst ...
随机推荐
- Python数据
读取文件中数据的最高分数 highest_score=0 result_f=open("results.txt") for line in result_f: (name,scor ...
- 如何设置一个严格30分钟过期的Session(转载)
本文地址: http://www.laruence.com/2012/01/10/2469.html 今天在我的微博(Laruence)上发出一个问题: 我在面试的时候, 经常会问一个问题: &quo ...
- servletFileUpload
引用:http://bbs.csdn.net/topics/390290685?page=1 Java code? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- WORD自定义宏
自定义快捷键 折叠所有标题 Word选项—自定义功能区—自定义键盘—不在功能区内的命令—ColllapseAllHeadings 展开所有标题 Word选项—自定义功能区—自定义键盘—不在功能区内的命 ...
- 【转】MarshalAs属性和使用
转载地址:http://blog.sina.com.cn/s/blog_4e4ee8ed0100elou.html [MarshalAs(UnmanagedType.ByValArray, SizeC ...
- php常用函数汇总
php常用函数汇总 字符串截取: 1.substr('要截取的字符串','从第几个字符开始','到第几个字符结束'); * 截取英文或者数字 ...
- Moving Tables(贪心或Dp POJ1083)
Moving Tables Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 28304 Accepted: 9446 De ...
- 为PetaPoco添加实体模板
Brad为我们提供了T4模板,因为公司一直在使用CodeSmith,故为其写了一个CodeSmith的模板,代码如下: <%-- Name:EntityTemplates Author: Des ...
- Android 进阶Android 中的 IOC 框架 【ViewInject】 (上)
1.概述 首先我们来吹吹牛,什么叫IoC,控制反转(Inversion of Control,英文缩写为IoC),什么意思呢? 就是你一个类里面需要用到很多个成员变量,传统的写法,你要用这些成员变量, ...
- Java中ExecutorService和CompletionService区别
我们现在在Java中使用多线程通常不会直接用Thread对象了,而是会用到java.util.concurrent包下的ExecutorService类来初始化一个线程池供我们使用. 之前我一直习惯自 ...