- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
线性DP
打鼹鼠(CSC WorkGroup 邀请赛II,来自VIJOS)
描述 Description
根据这个特点阿Q编写了一个打鼹鼠的游戏:在一个n*n的网格中,在某些时刻鼹鼠会在某一个网格探出头来透透气。你可以控制一个机器人来打鼹鼠,如果i时刻鼹鼠在某个网格中出现,而机器人也处于同一网格的话,那么这个鼹鼠就会被机器人打死。而机器人每一时刻只能够移动一格或停留在原地不动。机器人的移动是指从当前所处的网格移向相邻的网格,即从坐标为(i,j)的网格移向(i-1, j),(i+1, j),(i,j-1),(i,j+1)四个网格,机器人不能走出整个n*n的网格。游戏开始时,你可以自由选定机器人的初始位置。
现在你知道在一段时间内,鼹鼠出现的时间和地点,希望你编写一个程序使机器人在这一段时间内打死尽可能多的鼹鼠。
输入格式 Input Format
文件第一行为n(n=1000), m(m=10000),其中m表示在这一段时间内出现的鼹鼠的个数,接下来的m行每行有三个数据time,x,y表示有一只鼹鼠在游戏开始后time个时刻,在第x行第y个网格里出现了一只鼹鼠。Time按递增的顺序给出。注意同一时刻可能出现多只鼹鼠,但同一时刻同一地点只可能出现一只鼹鼠。
输出格式 Output Format
输出文件中仅包含一个正整数,表示被打死鼹鼠的最大数目。
样例输入 Sample Input
2 2
1 1 1
2 2 2
样例输出 Sample Output
1
知其然:设F[I]表示到前I个鼹鼠能打死的MAX.
F[I]:=MAX{F[J]+1},能在规定的时间内从第I只鼹鼠到达第J只鼹鼠。
知其所以然:其实就是LIS问题。
评价:代码要优秀,特别是已接近10的8次方的时候。多了一句话,就可能超时。
思考:要善于发现事物的本质。
引申:大地的秘密(将一串数排成规定的序列,每次只能移动临近的两个数,求最少移动次数。勇气的足迹仙剑模拟赛),合唱队形(NOIP2004),难解的问题(求解得的LIS必须有第K项。VIJOSP1369).
代码:
var
max,n,m,p:longint;
a:array[0..10000,1..3] of longint;
f:array[0..10000] of longint;
procedure rf;
var
i,j,x,y,tt:longint;
begin
assign(input,mole.in);
reset(input);
readln(n,m);
for i:=1 to m do
begin
readln(tt,x,y);
if (x0)and(y0)and(x=n)and(y=n) then
begin
inc(p);
a[p,1]:=tt;
a[p,2]:=x;
a[p,3]:=y;
end;
end;
close(input);
end;
procedure main;
var
i,j:longint;
begin
for i:=1 to p do f[i]:=1;
for i:=1 to p do
for j:=i-1 downto 1 do
if f[j]+1f[i] then
if a[i,1]-a[j,1]=abs(a[i,2]-a[j,2])+abs(a[i,3]-a[j,3]) then
f[i]:=f[j]+1;
for i:=1 to p do
if f[i]max then max:=f[i];
end;
procedure wf;
begin
assign(output,mole.out);
rewrite(output);
writeln(max);
close(output);
end;
begin
rf;
main;
wf;
end.
Buy Low, Buy Lower (USACO)逢低吸纳
“逢低吸纳”是炒股的一条成功秘诀。如果你想成为一个成功的投资者,就要遵守这条秘诀:
逢低吸纳,越低越买
这句话的意思是:每次你购买股票时的股价一定要比你上次购买时的股价低.按照这个规则购买股票的次数越多越好,看看你最多能按这个规则买几次。
给定连续
您可能关注的文档
- 3-化妆品品质管理与案例分享.pdf
- AutoCAD_2010实用教程---第13章_观察和渲染三维图形.pdf
- 新中新企业介绍指南.ppt
- 第六章 电算化八 购销存管理系统 (用友).ppt
- 光纤类型、标准及发展趋势.doc
- 高清电影与格式.doc
- 东莞理工学院信息资源检索简答介绍.doc
- 计算机组装和维护-4.ppt
- 第八章 电脑键盘操作大全.doc
- 多媒体通信技术复习题一_附件.doc
- 2023宁德职业技术学院招聘笔试真题附答案详解.docx
- 2023安庆职业技术学院招聘笔试真题及参考答案详解一套.docx
- 2023吕梁师范高等专科学校招聘笔试真题附答案详解.docx
- 2023年云南文化艺术职业学院招聘笔试真题及参考答案详解一套.docx
- 2023嘉兴职业技术学院招聘笔试真题及答案详解1套.docx
- 2023年云南体育运动职业技术学院招聘笔试真题参考答案详解.docx
- 2023厦门城市职业学院招聘笔试真题及答案详解1套.docx
- 2023天津渤海职业技术学院招聘笔试真题及参考答案详解一套.docx
- 2023四平职业大学招聘笔试真题及参考答案详解.docx
- 2023呼伦贝尔职业技术学院招聘笔试真题及参考答案详解1套.docx
文档评论(0)