歪酷博客 Ycool Blog - 记录我们的时代
记录我们的时代

设为首页
加入收藏夹
需要帮助?

Tag: vijos / 热门Tag



VOJ 1006 - 晴天小猪历险记之HILL(经典DP)
在很久很久以前,有一个动物村庄,那里是猪的乐园(^_^),村民们勤劳、勇敢、善良、团结 不过有一天,最小的小小猪生病了,而这种病是极其罕见的,因此大家都没有储存这种药物。所以晴天小猪自告奋勇,要去采取这种药草。于是,晴天小猪的传奇故事便由此展开 这一天,他来到了一座深山的山脚下,因为只有这座深山中的一位隐者才知道这种药草的所在。但是上山的路错综复杂,由于小小猪的病情,晴天小猪想找一条需时最少的路到达山顶,但现在它一头雾水,所以向你求助。 山用一个三角形表示,从山顶依次向下有1段、2段、3段等山路
parachutes @ 2007-10-28 19:09:05
P1277 风筝-逃亡 极其WS
  描述 Description 燕姿以出发地作为原点建立了一个坐标轴(原点为x,单位都为m),歌迷们也可以理解为坐标轴上的一点。   歌迷的的追赶规律是这样的:第一群歌迷聚在一个点,而任何一群歌迷如果在1s内找不到燕姿的话就会分头去追,此时每一群歌迷都会分离成2群,分别沿坐标轴的正负两个方向移动一段距离l(由于追星心切,移动的时间忽略不计),然后又静止1s,再按同样的规则但移动的距离变为上一次的1/2再分开。直到某一群歌迷分头移动的距离 1m时,将由于筋疲力尽,人数过少而不能在分头行动。   
Tag: vijos
Ronice @ 2006-11-02 21:29:49
P1216 亲和数 剪枝
描述 Description 这种数是 亲和数,所谓亲和数就是: 定义数对 (x,y) 为亲和数对当且仅仅当x、y为不同正整数,且x、y各自的所有非自身正因子之和等于另一个数。例如 (220,284) 和 (280,224) 都是亲和数对,因为: 220的所有非自身正因子之和为:1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284 284的所有非自身正因子之和为:1 + 2 + 4 + 71 + 142 = 220 数对 (x,y ) 跟
Tag: vijos
Ronice @ 2006-10-18 18:36:49
P1071新年趣事之打牌
描述 Description 过年的时候,大人们最喜欢的活动,就是打牌了。xiaomengxian不会打牌,只好坐在一边看着。   这天,正当一群人打牌打得起劲的时候,突然有人喊道: 这副牌少了几张! 众人一数,果然是少了。于是这副牌的主人得意地说: 这是一幅特制的牌,我知道整副牌每一张的重量。只要我们称一下剩下的牌的总重量,就能知道少了哪些牌了。 大家都觉得这个办法不错,于是称出剩下的牌的总重量,开始计算少了哪些牌。由于数据量比较大,过了不久,大家都算得头晕了。   这时,xiaomengxi
Tag: vijos
Ronice @ 2006-11-17 10:22:40
P1152肥猫的游戏题解
描述 Description 野猫与胖子,合起来简称肥猫,是一个班的同学,他们也都是数学高手,所以经常在一起讨论数学问题也就不足为奇了。一次,野猫遇到了一道有趣的几何游戏题目,便拿给胖子看。游戏要求在一个有n个顶点凸多边形上进行,这个凸多边形的n-3条对角线将多边形分成n-2个三角形,这n-3条对角线在多边形的顶点相交。三角形中的一个被染成黑色,其余是白色。双方轮流进行游戏,当轮到一方时,他必须沿着画好的对角线,从多边形上切下一个三角形。切下黑色三角形的一方获胜。胖子一看觉得确实很有趣,不如就一
Tag: vijos
Ronice @ 2006-11-14 19:50:32
P1196吃糖果游戏 题解
描述 Description   Matrix67和Shadow正在做一个小游戏。   桌子上放着两堆糖果,Matrix67和Shadow轮流对这些糖果进行操作。在每一次操作中,操作者需要吃掉其中一堆糖果,并且把另一堆糖果分成两堆(可以不相等)留给对方操作。游戏如此进行下去,糖果数会越来越少,最后必将出现这样一种情况:某人吃掉一堆糖果后发现另一堆里只剩一块糖果不能再分了。游戏规定此时该操作者吃掉最后这一块糖果从而取胜。   这个游戏是不公平的。对于任意一种初始状态,总有一方有必胜策略。所谓有必胜
Tag: vijos
Ronice @ 2006-10-21 11:19:48
修改得让我郁闷的一题——Vijos1048
哎,一直以为算法错了,到后来才发现是变量错了,该回溯的没有回溯,该-1的没有-1,下面是我的剪枝: 在DFS过程中 sum+rem[i] max then exit; 好多大牛都说过了,但还是要说一遍,哈哈哈哈~~~  (T_T终于AC了,痛苦了一个晚上,事实证明:细节决定成败) 这是AC的代码: var n,i,max,x,y:longint; s,node,w,ans:array[0..100] of integer; a:array[1..100,1..100] of boolean; p
Tag: vijos
Ronice @ 2006-11-17 20:58:30
VijosP1196 题解
描述 Description   Matrix67和Shadow正在做一个小游戏。   桌子上放着两堆糖果,Matrix67和Shadow轮流对这些糖果进行操作。在每一次操作中,操作者需要吃掉其中一堆糖果,并且把另一堆糖果分成两堆(可以不相等)留给对方操作。游戏如此进行下去,糖果数会越来越少,最后必将出现这样一种情况:某人吃掉一堆糖果后发现另一堆里只剩一块糖果不能再分了。游戏规定此时该操作者吃掉最后这一块糖果从而取胜。   这个游戏是不公平的。对于任意一种初始状态,总有一方有必胜策略。所谓有必胜
Tag: vijos
Ronice @ 2006-11-05 22:35:55
小胖的奇偶
先说说P1051圣诞夜的极光,使用队列的时候横纵坐标的定义域定义为:0..1 居然可以过4个,我提交了n次才发现的 变量定义啊我一直以为不会出错的。 T_T 下面是小胖的奇偶: type pt=array[0..100000] of longint; var p,d,rank,node:pt; x,y,t1,t2,t,n,m,i:longint; s:string; procedure union(x,y:longint); begin if rank[x] rank[y] then p[y]:
Tag: vijos
Tsing @ 2006-11-13 17:27:48
能量项链(NOIP2006)
用数组f[i,j]表示从第i个珠子到第j个珠子合并为一个珠子后,所释放的最大能量,用k表示断点。 状态转移方程为:f[i,j]:=max{ f[i,k]+f[k,j]+a[i]*a[k]*a[j]} CODE: ------------------------------------------- program p1312; var a:array[1..100] of longint; f:array[0..100,0..100] of longint; i,j,k,t,v,u,n,max:
Tag: noip vijos
deadrain @ 2007-08-16 23:44:45
导弹拦截(NOIP1999)
题目略有改动,第一问即求最长下降子序列,第二问求最长升序子序列,要减1! CODE: ------------------------------------- program p1303; var s:string; c:char; a:array[1..20] of integer; f:array[1..20] of longint; n,i,j,k:integer; begin n:=0;s:=''; while not eoln do begin read(c); if c=',' t
Tag: noip vijos
deadrain @ 2007-08-16 23:19:02
选数(NOIP2002)
easy! 的说~ ^^ CODE: ------------------------------------ program p1128; var n,k,i,s:integer; a:array[1..20] of longint; procedure judge(sum:longint); var i:longint; begin if sum 2 then exit; if sum 2 then for i:=2 to trunc(sqrt(sum)) do if sum mod i=0
Tag: noip vijos
deadrain @ 2007-08-15 21:56:13
FBI树(NOIP2004)
按照题述方法直接递归,一边构造一边输出。 CODE: --------------------------------------------- program p1114; var n:integer; s:ansistring; procedure search(s:ansistring); var l:integer; n0,n1:boolean; begin l:=length(s); if l 1 then begin search(copy(s,1,l div 2)); search
Tag: noip vijos
deadrain @ 2007-08-15 21:40:53
数的划分(NOIP2001)
不想说什么,直接搜就可以了,注意数据范围。 CODE: ------------------------------------------------- program p1117; var n,k,sum:longint; procedure search(n,k,c:longint); var i,j:integer; begin if n=0 then exit; if k=1 then begin inc(sum);exit;end; i:=n div k; for j:=c to i
Tag: noip vijos
deadrain @ 2007-08-15 19:34:40
Car的旅行路线(NOIP2001)
主要是构造图,如果不知道其他判定直角的方法,也可以用勾股,算出第4个点的坐标。 因为出发和到达城市中的机场可以任意选取,所以这两个城市内的高速铁路单位里程的价格可以都设为0,其他的各点间的权值即为原本的飞机的价格或铁路的价格。 这些线都连好之后再用floyed算出出发城市各点到到达城市各点的最小距离,最后再统计一下这些最小距离中的最小者,即为解。 CODE: ------------------------------------------ program p1119; type arr=re
Tag: noip vijos
deadrain @ 2007-08-14 23:41:55
过河(NOIP2006)
因为桥的最大长度L=10^9,而石头数很少,可以把石头的位置离散开来。青蛙的最大跳跃距离是9和10,超过90的位置都可以到达,所以如果两颗石头的距离超过了90,就可以缩短到90。这样数据已经缩小到DP所能承受的范围了。 然后就是简单的DP。用数组f[i]表示到i位置最少要踩到的石头数,则f[i]=min(f[i-t]...f[i-s]),如果i位置上有石头,则加1。初始时如果i位置上有石头,f[i]=1,否则f[i]=maxint。最后因为青蛙可以跳过桥的终点(L),所以要统计L...L+t-1
Tag: noip vijos
deadrain @ 2007-08-14 21:38:01
单词接龙(NOIP2000)
简单题,直接DFS,无需任何剪枝,一次AC ^^ CODE: ----------------------------------------------- program p1311; var s:array[1..20] of string; c:string; n,i:integer; len,max:longint; ss:array[1..40] of boolean; procedure search(c:string); var i,j,k:integer; s2:string;
Tag: noip vijos
deadrain @ 2007-08-14 22:54:55
加分二叉树(NOIP2003)
用数组a[i,j]记录从第i个数到第j个数的最大加分,b[i,j]记录这个最大加分的根节点标号。 叶结点的加分即为a[i,i],根节点标号即为b[i,i]=i。 最后再搜索一下,a[1,n]即为解。 CODE: ---------------------------------------------------- program p1100; var n,i:integer; a:array[1..30,1..30] of longint; b:array[1..30,1..30] of in
Tag: noip vijos
deadrain @ 2007-08-14 23:28:43

18篇网志 3个Blog 使用了Tag "vijos"

第 1 / 1 页 | 上一页 | 下一页

看看别的Tag 什么是Tag?



免费注册 - 已注册用户登入管理 - 热门关键词(Tags) - 常见问题帮助 - 设为首页 - 加入收藏夹
© 2004-2008 歪酷博客 - 记录我们的时代, All rights reserved. 歪酷网服务协议 沪ICP备05001191号 联系我们