BZOJ3807 : Neerc2011 Lanes】的更多相关文章

左右与右左是两个独立的问题 设f[i]表示i时刻左右车道减少一条的答案 g[i]表示i时刻右左车道增加一条的答案 ans=min(f[i]+g[i+r]) 计算f[i]: 首先暴力计算出f[m+1],同时记录下每个时刻刚开走的车的数量now[i] 从m到1计算f[i],如果该时刻开走的车数不足n1+1,则无影响 否则多了一辆车,选取后面最早的有空位的时刻j开走 用一个栈维护空位,复杂度为$O(m)$ 计算g[i]: 首先暴力计算出g[0],同时记录下每个时刻刚开走的车的数量now[i] 从1到m…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…
2632: [neerc2011]Gcd guessing game Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 144  Solved: 84[Submit][Status][Discuss] Description          给定一个数n ,有一个数x , ( 1<=x<=n ) 每次你可以猜在[1,n]中的数,假设是y,如果x==y,游戏结束,如果没猜中,则告诉你gcd(x,y),然后继续猜,直到猜中为止.          现…
Description Each of the M lanes of the Park of Polytechnic University of Bucharest connects two of the N crossroads of the park (labeled from 1 to N). There is no pair of crossroads connected by more than one lane and it is possible to pass from each…
答案由$3$部分构成: $1$.抛物线的极值. $2$.询问区间的左端点在抛物线上的值. $3$.询问区间的右端点在抛物线上的值. 对于$1$,就是某个矩形范围内最大值查询,使用KD-Tree可以在$O(\sqrt{n})$的时间内完成询问. 对于$2$和$3$,对编号建线段树,每个节点维护该区间内最上方的轮廓线,那么每个节点的轮廓线可以由左右儿子的轮廓线通过归并得到. 归并时不断对两条抛物线求交点,在相邻关键点之间取较高的一段. 为了减小常数,可以在归并完成后将连续的所属同一条抛物线的轮廓线连…
题解: 这题搞得我真是酸(dan)爽(teng) 原来一直不会,一定会用到什么神奇的东西.因为重复的不知道如何计算. 今天中午睡起来忽然想到好像可以在正trie上故意走无出边,因为这样就保证了这次统计的所有字符串在它的孩子都不会再次被统计到. 然后感觉这题就解了. 然后和别人的程序对拍发现居然一直少计算了什么!去多了? 然后发现没有算上trie上的节点,前面只考虑了在trie后面加字符串... 然后发现好像正反都得特判,然后发现又有重复的!!!这怎么搞!!! 感觉AC无望便去颓了两集火影...…
虽然它出现在dp专场里···但是我第一反应是一道最短路题···不过幸好它出现在dp专场里···因为我不怎么会dijstra什么的··· 题意:一条河上有N+1对码头,每个相邻码头之间需要一定时间到达,每对码头之间也需要一定时间到达,如下图: 给出起点码头和终点码头,问最短到达时间. 解法:假设起点码头一定在左边,终点码头一定在右边,那么为了时间最短一定是向右或向上(下)走,所以dp数组为每个从起点出发到每个码头时的最短耗时,dp方程很好确定,但是上下码头的顺序无法确定,而当路径是由对面码头过来的…
题目链接: http://poj.org/problem?id=3895 题目意思: 在无向连通图中图中找一个经过边数最多的环. 解题思路: 从任意一点直接DFS,不用回溯,注意构成环的话至少有3条边. 因为任意一个最大环,一定可以搜到. 代码: #include<iostream> #include<cmath> #include<cstdio> #include<cstdlib> #include<string> #include<cs…
$|x|+|y|=\max(x+y,x-y,-x+y,-x-y)$,设$f[i][j]$表示在$(0,0)$,朝向方向$j$,执行第$i$条指令后的信息: $cir$:是否陷入循环 $d$:朝向 $x,y$:坐标 $v_0$:$\max(x+y)$ $v_1$:$\max(x-y)$ $v_2$:$\max(-x+y)$ $v_3$:$\max(-x-y)$ 然后记忆化搜索,当陷入循环时不再执行后面的指令. 用栈维护所有正在计算的状态,若发现循环,则计算循环的$x$和$y$之和,若为$0$则是循…
Description 给定一个n个点的严格凸多边形(各个内角<180°),现在要切出两个非退化三角形(三点不共线),要求两个三角形顶点必须是凸多边形的顶点,且三角形不可相交(但是点或边可以重合).求两个三角形面积之差的最大值. Input 第一行,一个整数N. 第二到N+1行,每行两个整数xi,yi,表示多边形的一个点,保证顶点按顺时针或逆时针顺序给出. Output 输出答案,精确到小数点后1位. 最小三角形一定是相邻三点构成,因此只需枚举每个最小三角形,查询剩余部分中的最大三角形 dp,f…