05 2013 档案

摘要:首先要知道一次打掉一个1*x*y的面是最优的。证明太简单所以略。然后看这道题的二维版本:bzoj1693[Usaco2007 Demo]Asteroids http://www.lydsy.com/JudgeOnline/problem.php?id=1693然后这样的题一般都是一维暴力来减少一维。就枚举最小的一维打掉哪些面。然后把剩下的压成两维,然后做。RunIDUserProblemResultMemoryTimeLanguageCode_LengthSubmit_Time410333lbz0071693Accepted12032kb4msPascal/Edit862 B2013-05-1 阅读全文
posted @ 2013-05-14 20:16 lbz007 阅读(231) 评论(0) 推荐(0) 编辑
摘要:对一个点(x,y)定义x'=x+y,y'=x-y,曼哈顿距离就可以写成max(|x1'-x2'|,|y1'-y2'|)。回到原题,容易发现,两个点(x1,y1)和(x2,y2)的距离为max(|x1-x2|,|y1-y2|)。把上面的处理倒过来,就可以回到我们熟悉的曼哈顿距离了。把点转换后枚举每个点,然后O(1)求出它到所有点的曼哈顿距离和。(排序后前缀和优化)。RunIDUserProblemResultMemoryTimeLanguageCode_LengthSubmit_Time410862lbz0073170Accepted5696kb6 阅读全文
posted @ 2013-05-14 17:08 lbz007 阅读(258) 评论(0) 推荐(0) 编辑
摘要:所有的白格向能攻击到的黑格连单向边,然后最大独立集就行了。细节看代码吧。RunIDUserProblemResultMemoryTimeLanguageCode_LengthSubmit_Time411274lbz0073175Accepted20068kb2212msPascal/Edit1637 B2013-05-13 17:19:41 1 const 2 x:array[1..8]of longint=(-1,-2,1,2,-1,-2,1,2); 3 y:array[1..8]of longint=(-2,-1,-2,-1,2,1,2,1); 4 var 5 n,i,j,k,... 阅读全文
posted @ 2013-05-14 17:03 lbz007 阅读(183) 评论(0) 推荐(0) 编辑
摘要:先求出最终的序列,然后树状数组求出每一个询问的答案。1.求最终序列可以用sbt。插入到位置x时如果比左子树的size大就插入到右子树中,否则就插入到左子树中。1 if x<=size[l[t]] then2 insert(x,l[t])3 else insert(x-size[l[t]]-1,r[t]);2.求每一个询问的答案。 f[i]为当前到这个数的最长上升子序列。查询这个数的最终位置之前的最大的f[j]为max,f[i]=max+1; ans[i]=max(f[i],ans[i-1]);for i:=1 to n do begin f[i]:=1+search(se[... 阅读全文
posted @ 2013-05-14 16:55 lbz007 阅读(210) 评论(0) 推荐(0) 编辑
摘要:想了一下午,最后还是请教altf4主席做出来的。(查题解的过程中拓扑序一样学了一大堆博弈论问题)每一个堆中的每个石子都是独立的,所以sg[i]表示第i堆有一个石子的sg值。所以这一堆的sg值= sg[i] xor 自己p[i]次。对于第i 堆,sg[i]=mex{sg[j] xor sg[k]} (j>i,k>=j)。 所以n^3求出sg数组。方案也可以用n^3的枚举解决(xor的逆运算是她自己)。RunIDUserProblemResultMemoryTimeLanguageCode_LengthSubmit_Time409659lbz0071188Accepted228kb40 阅读全文
posted @ 2013-05-10 22:20 lbz007 阅读(312) 评论(0) 推荐(0) 编辑
摘要:这个题bzoj的题目描述还真是有长又烂。贪心,按起点排序,从小到大上车。如果当前车上的终点最大值大于当前的终点,则那个人下车,当前的上车。人们都说用堆维护,可是我不会(我认为它需要维护最大值和最小值,堆做不到吧,还是我太弱不会)。我想用sbt应该可以。下次再说吧。RunIDUserProblemResultMemoryTimeLanguageCode_LengthSubmit_Time409034lbz0071577Accepted2120kb180msC++/Edit2006 B2013-05-09 22:02:01 阅读全文
posted @ 2013-05-09 22:12 lbz007 阅读(259) 评论(0) 推荐(0) 编辑
摘要:昨天想了好久这个题,最后发现竟然已经AC过了,还是寒假AC的!!真是。。。。。。网上都是些动归,堆什么的解法,我是队列。按位置排序,依次加入队列。加入一个元素后判断,保证队首颜色只有一种。RunIDUserProblemResultMemoryTimeLanguageCode_LengthSubmit_Time346220lbz0071293Accepted15852kb3424msPascal/Edit1221 B2013-02-05 18:33:29View Code 1 var 2 ss,c,a,q:Array[0..1000002]of longint; 3 ans,num,... 阅读全文
posted @ 2013-05-09 13:35 lbz007 阅读(273) 评论(0) 推荐(0) 编辑
摘要:因为题目太长懒得看,所以现在才做这道题。每加工一个零件就花费固定的费用,一看就是费用流。建立S,T。 S向每个人连边,每一段怒气连一条流量为这一段零件数的边。 如果i可以加工j,add(i,j,inf,0)。每种零件向T连流量为个数的边。zkw或spfa费用流都行。因为w是递增的所以才能这么建边。RunIDUserProblemResultMemoryTimeLanguageCode_LengthSubmit_Time408065lbz0072245Accepted43300kb3188msPascal/Edit2434 B2013-05-08 17:19:07View Code 1 con. 阅读全文
posted @ 2013-05-08 19:59 lbz007 阅读(207) 评论(0) 推荐(0) 编辑

Live2D