2014年3月9日
摘要: 昨天早上上课讲旅行商问题,有点难,这周抽空把3^n的算法码码看。不过这个简化版已经够折腾人了。其一不看解析不知道这是双进程动态规划,不过我看的解析停留在f[i,j]表示第一个人走到i、第二个人走到j,且1~max(i,j)的都走过的最短路,后面的动态转移方程是我自己写的,不过我的貌似和别人的不太一样?其二不知道为什么坐标改成real类型就不会207了,这可是个bug?纠结了我一晚上啊昨晚又熬夜了今天早上物理课又打瞌睡了…QAQ其三给ans或者f数组赋初值不能写maxlongint一定要1e40,因为答案都比maxlongint要大!一开始我还以为是动规出错了怎么一直输出2147xxxxx,哎。 阅读全文
posted @ 2014-03-09 11:50 Sky-Grey 阅读(440) 评论(0) 推荐(0) 编辑
2014年3月6日
摘要: 忘了这是第几道“校门外的树”的,翻了下tyvj发现叫这名字的有三道题- -。括号法真是好东西。一开始搜题目归类想练线段树的,结果看解题发现这题树状数组更好做,其实也是树状数组更容易理解。今天早上物理课就在比划这道题。写BIT算法的时候犯的错就是忘记给function里的ans清零的- -一开始我看output都差1我还以为是算法错了。program vijos_p1448;var i,j,m,n,k,a,b,tot,t1,t2,ans:longint; f:array[1..200000,1..2] of integer;function lowbit(x:longint):longin... 阅读全文
posted @ 2014-03-06 00:17 Sky-Grey 阅读(408) 评论(0) 推荐(0) 编辑
2014年3月3日
摘要: 这周好好码树状数组和线段树!!之前没写过二维树状数组,凭借一维的思路居然写了个比较像模像样的东西出来,原来我没那么脑残。唯一要注意的就是getsum四个矩形加减的边界条件,这里看了别人标程才意识到错误QAQ!program vijos_p1512;var f,t:array[0..1030,0..1030] of longint; n,m,i,j,x,y,k,x1,x2,y1,y2:integer; ans:longint;function lowbit(x:longint):longint;begin lowbit:=x and (-x);end;procedure add(x... 阅读全文
posted @ 2014-03-03 22:35 Sky-Grey 阅读(270) 评论(0) 推荐(0) 编辑
2014年3月1日
摘要: 又是一道怨念已久的题目0 0之前深搜写过广搜写过,怎么就是卡死,我还以为FP坏了重新装了一遍。今天偶尔翻起来,发现广搜忘记inc(head)了…简直哭瞎…简单的广搜,分类比较多,不过不太要动脑子。至此Section 1.4完美完成。(喂,你开usaco账号都快一年了就做到1.4?6个Chapter什么时候才能做完?咦怎么6个Chapter了以前就五个吧……)program milk3_2;var markt:array[0..8000] of integer; marka:array[0..20] of integer; i,a,b,c,a0,b0,c0,head,tail:lon... 阅读全文
posted @ 2014-03-01 23:12 Sky-Grey 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 极类似动归的广搜?反正各种算法傻傻分不清…写之前叹了一句,好久不写广搜了啊!呵呵真的写了好久,大约一个钟头?f[i,j,0]表示到点(i,j)且最后一步为下降的最少步数,f[i,j,1]就是上升。莫名让我想到了NOIP2013的摆花,那时我也脑坏地写了个O(N^2)也是这样[1..n,1..n,0..1]的数组…犯的错误就是由于判断更高之后要入队列,判断更低之后也要入队列,否则有可能前面的true被后面的false给搞掉…这就是为什么我过了三个数据,剩下的数据都只错了一两行的原因。(数据真弱=。=)90行+广搜,有种hold不住的感觉。今天上课听了树链剖分我表示…那种题遇到了干脆就送掉吧…=y 阅读全文
posted @ 2014-03-01 22:54 Sky-Grey 阅读(186) 评论(0) 推荐(0) 编辑
2014年2月12日
摘要: #9重排干草 2014-02-12QAQ这么快居然开学了,这么来说时间越来越少了…开学第二天,作业不多,赶紧抽出时间把这道想了很久的题给搞定……真的想了很久,其实看了解题也想了很久,我觉得我等数学弱渣肯定自己推论不到这个地步…我觉得我晚上还得再想想这东西…p[i]=b[i]-a[i]+p[i-1]为i接收到的草,ans=sigma(p[i]),由于p[i+1]-p[i]确定,所以p[n]=abs(某个定值+k),k是第一个坑要收到的草,k=0-p数组的中位数时取到答案。(好难TvT…至今晕)program usaco_9;var a,b:array[0..100010] of integer; 阅读全文
posted @ 2014-02-12 22:16 Sky-Grey 阅读(315) 评论(0) 推荐(0) 编辑
2014年1月23日
摘要: 有生以来做的第二道IOI题目居然也是96'的,又是一道比我还老的题目。纯属复习或者说再学一遍Tarjan算法,本题的主要算法就是Tarjan+缩点,对于两个子问题的答案,根据解题:强连通缩点为拓扑图后,设入度为0点数为r,出度为0点数为c,则Task 1的答案就是r,这个很好理解;Task 2的答案是max(r,c),这个理解不能,但是我自己画了几个图都是这样的。如果真的比赛时遇到这种东西就要自己推理了…仍然觉得Tarjan很抽象,就像很久以前觉得快排很抽象一样…我也许能够记下来标程,但是Don't know why才是最大的问题,出了个变式就只能呵呵。能优化的地方就是,可以改 阅读全文
posted @ 2014-01-23 14:13 Sky-Grey 阅读(332) 评论(0) 推荐(0) 编辑
2014年1月20日
摘要: 本来是USACO Training的1.4.1的,但是介于今早过了食物链想起了这道题实在是太怨念了,翻出自己写的AC程序居然有5KB!!思路很简单,枚举,而且就图中的六种情况。但是第六种变化状况太多了,我自己根本就没写出来后来是看别人写的分四种情况Blah Blah...可参考此篇中的分析:http://blog.sina.com.cn/s/blog_5c717d190100qgkr.htmlprogram packrec;var r,rw,rt:array[1..4,1..2] of integer; i,j,k,l,t,i1,j1,k1,l1:integer; ans,ansc... 阅读全文
posted @ 2014-01-20 23:16 Sky-Grey 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 做出的第一道NOI题目?(噗,还是看题解才会的…按某篇解题说的,这题就比我年轻四岁…T T 做的第一道IOI题目是USACO上的Packing Rectangles...这题比我还老!)对我等弱渣来说难度蛮大的,做了好几次并查集题目了,统统都觉得好抽象啊…这一题的难点就是,你不能直接将所有的点分为1,2,3三组,你只知道关系。边带权值的并查集也是第一次听说,一个mod 3就搞定实在太神奇…Father数组记录祖先,Relation数组记录和祖先的距离Relation[i]=0表示和祖先是同类,Relation[i]=1表示被祖先吃,Relation[i]=2表示吃祖先。网上对于这篇的解题非常多 阅读全文
posted @ 2014-01-20 11:47 Sky-Grey 阅读(256) 评论(0) 推荐(0) 编辑
2014年1月16日
摘要: #4公司利润 2014-01-16这真的是动归?怎么觉得有点贪心的心态在。时间复杂度O(N),空间复杂度O(1),轻松加愉快!唯一要注意的是ANS一开始要赋负值,因为最终答案可能是负的。program usaco_4;var n,i,x,ans,last:longint; a:array[0..100000] of longint;begin ans:=-maxlongint+100; readln(n); for i:=1 to n do begin readln(x); if last>0 then last:=x+last else last:=x;... 阅读全文
posted @ 2014-01-16 19:14 Sky-Grey 阅读(273) 评论(0) 推荐(0) 编辑