usaco 月赛 2005 january sumset

摘要: 2013-09-18 08:23打表找规律w[i]:=w[i-1]; 奇w[i]:=w[i-1]+w[i div 2];偶//By BLADEVILvar w :array[0..1000010] of longint; i :longint; n :longint;begin assign(input,'sumset.in'); reset(input); assign(output,'sumset.out'); rewrite(output); r... 阅读全文
posted @ 2013-11-20 14:25 BLADEVIL 阅读(207) 评论(0) 推荐(0) 编辑

usaco 月赛 2005 january watchcow

摘要: 2013-09-18 08:13//By BLADEVIL var n, m :longint; pre, other :array[0..50010] of longint; last :array[0..10010] of longint; flag :array[0..50010] of boolean; tot :longint; ans :array[0..10010] of l... 阅读全文
posted @ 2013-11-20 14:24 BLADEVIL 阅读(217) 评论(0) 推荐(0) 编辑

USACO月赛2005 january volume

摘要: 2013-09-18 08:12由题可知,ans=∑i ∑j(x[i]-x[j])最后整理完之后应该是不同系数的X[i]相加,所以这道题就成了求不同x[i]的系数对于X[i],它需要减前面(i-1)个不同的数,所以系数先是(i-1),而计算它前面的每个数时都需要被X[i]减,所以系数成了2*(i-1),而且X[i]会被后面(n-i)个数减,且计算后面的x时,都会减x[i],所以需要减2*(n-i)所以系数就变成了2*(2*i-n-1),累加每个即可//By BLADEVILvar n :longint; i, j ... 阅读全文
posted @ 2013-11-20 14:23 BLADEVIL 阅读(260) 评论(0) 推荐(0) 编辑

星象仪

摘要: 2013-09-17 14:20题目描述在寂寞的夜里,星象仪是非常浪漫的东西。但是,你作为一个精神稍微有点不太正常的Geek,把原本正常的星象仪改造得像电报发送器一样。当然,你这个的构造还要更加奇葩一点。具体来说,你的星象仪是一棵满二叉树,二叉树的节点都是有两个输入端和一个输出端的AND门或者OR门。它们输入和输出的信号都是只是0 或者1 。它们会接受子节点的输出信号,然后将这两个信号进行AND运算或者OR运算作为自己的输出。然后,根节点的输出信号就是整个星象仪的输出信号。叶节点的输入信号是由你来调整的,如果二叉树有K 层,那么你显然有2^K个输入信号可以调整。调整一次当然只能改变一个输入信号 阅读全文
posted @ 2013-11-20 14:22 BLADEVIL 阅读(481) 评论(0) 推荐(0) 编辑

硬币问题 tarjan缩点+DP 莫涛

摘要: 2013-09-15 20:04题目描述有这样一个游戏,桌面上摆了N枚硬币,分别标号1-N,每枚硬币有一个分数C[i]与一个后继硬币T[i]。作为游戏参与者的你,可以购买一个名为mlj的小机器人,从任一个硬币处开始游戏,然后跳往该硬币的后继硬币T[i],直到你要它停下来,经过每个硬币时,你可以选择是否捡起它。当某个mlj机器人停下来后将被扔掉,这时你可以选择结束游戏或再买一个mlj机器人继续游戏。注意,每个硬币只能捡一次,而且你不能要求mlj跳向一个已被捡起的硬币或从一个已被捡起的硬币处开始游戏,因为那样会把mlj摔坏的。YourTask一开始你的得分是0,每购买一个mlj机器人将扣掉你M分, 阅读全文
posted @ 2013-11-20 14:21 BLADEVIL 阅读(474) 评论(0) 推荐(0) 编辑

usaco 2000 contest 滑雪

摘要: 2013-09-11 10:22【题目大意】给定N个点的高度和M条相连的路线(单向),从最高点向下走,到无法走时为一条路径,求不同的路径数,(一节点不同就叫不同)【输入样例】4 5 (N,M)500 400 300 200 (高度)1 2 (边)2 33 41 42 4【输出样例】3//By BLADEVILvar n, m :longint; pre, other :array[0..5100] of longint; last :array[0..300]... 阅读全文
posted @ 2013-11-20 14:20 BLADEVIL 阅读(266) 评论(0) 推荐(0) 编辑

BZoj 1003 物流运输 DP+最短路

摘要: 2013-09-11 09:56W[I]代表前I天能取得的最小花费,假设在第J天更改一次路线,那么如果有W[I]>W[J]+第j+1到第I天的最小花费+更改路线的花费(K) 那么更新W[I];用最短路求第J+1到I的最短路*(I-J),边界则是W[1]=0;因为最开始的路线不用更改(就是最初的路线不算在更改的费用中),这个方程默认第一次的路线就是更改后的,多加了一次K,所以最后输出W[I]-K;//By BLADEVILvar connect :array[0..110,0..110] of longint; n, m, k, e, ch ... 阅读全文
posted @ 2013-11-20 14:19 BLADEVIL 阅读(243) 评论(0) 推荐(0) 编辑

wikioi 1245最小的N个和

摘要: 2013-09-08 10:12LRJ的算法竞赛入门经典训练指南里有类似的题,原题要难很多,p189页读入A,B两组中的所有数后,建立N个有序表:A1+B1xx.num[i] do inc(i); if ilow then qs(xx,low,j);end; procedure init;var i :longint;begin read(n); for i:=1 to n do read(x.num[i]); for i:=1 to n do read(y.num[i]); qs(x,1,n); qs(y,... 阅读全文
posted @ 2013-11-20 14:18 BLADEVIL 阅读(363) 评论(0) 推荐(0) 编辑

poj 2762 tarjan缩点+拓扑序

摘要: 2013-09-08 10:00var m, n :longint; t :longint; f, last :array[0..20100] of longint; pre, other :array[0..160100] of longint; l, time :longint; dfn, low :array[0..20100] of longint; tot :... 阅读全文
posted @ 2013-11-20 14:17 BLADEVIL 阅读(260) 评论(0) 推荐(0) 编辑

poj 1338

摘要: 2013-09-08 09:56记录数组w[I],代表第I个答案的值用三个指针指向W数组,代表当前的W[A2]*2,W[A3]*3,W[A5]*5更新答案每次取最小值,然后后移对应指针(可能一次移两个指针),可保证W数组的数不重复且递增vara2, a3, a5 :longint; w :array[0..1600] of int64; i :longint;function min(a,b:int64):int64;begin if a>b then min:=... 阅读全文
posted @ 2013-11-20 14:16 BLADEVIL 阅读(281) 评论(0) 推荐(0) 编辑