- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
国家集训队论文:江鹏论文附录
论文附录
【附录1】论文中引用的原题
〖问题3〗千足虫
暗的千足虫(ishongololo)
祖鲁族称千足虫为ishongololo,它身长,色黑而亮,是一种多脚的节肢动物.千足虫会吃光它所经过的路上的一切果实.我们以这种事实为基础来理解本题.让我们考虑一个长为K宽为W,高为H的各面相互垂直的固体.
请你编程,在题目限定的条件下,使千足虫尽可能多地吃掉小立方块block.
程序的输出是千足虫吃掉每个Block所经路线和动作.千足虫从果实之外开始,吃的第一个block必须是(1,1,1),然后必须再爬到这个block上直到无路可走或无block可吃时为止。
限定条件:
1.千足虫严格地占据1个空的小立方块block。
2.千足虫每次吃完一个小立方块block。
3.千足虫不能进入以前自己进入过的小立方块block。
(此即不能往回走,也不能跨越自己已经走过的路线).
4.千足虫不能进入未吃过的小立方块block,也不能爬到果实之外。
5.千足虫只能吃掉或只能爬入相邻的block,即该block与千足虫所在的block共面。此外该block还必须没有别的面暴露于已被吃光的block。
输入
你的程序将接收到3个整数即长度L,宽度W,和
高度H.L,W,H是三个整数,每个数占一行,且
它们的取值范围在1到32之间(含1和32).
输出
输出数据由若干行组成.每行以E(表示吃Eat)或M(表示移动Move)打头,后跟三个整,这三个整数表示千足虫“吃掉”或“移入其内”的小立方块(block).
评分标准
如果千足虫违反了约束条件,那么你的答案只得零分.
所得总分为吃掉的小立方块的总数和已知最优解之比.
所得最高分不会超过1OO%
〖问题4〗01串
01串
给定7个整数N,A0,B0,L0,A1,B1,L1,要求设计一个01串S=s1s2…si…sN,满足:
si=0或si=1,1=i=N;
对于S的任何连续的长度为L0的子串sjsj+1…sj+L0-1(1=j=N-L0+1),0的个数大于等于A0且小于等于B0;
对于S的任何连续的长度为L1的子串sjsj+1…sj+L1-1(1=j=N-L1+1),1的个数大于等于A1且小于等于B1;
例如,N=6,A0=1,B0=2,L0=3,A1=1,B1=1,L1=2,则存在一个满足上述所有条件的01串S=010101。
输入
仅一行,有7个整数,依次表示N,A0,B0,L0,A1,B1,L1(3=N=1000,1= A0=B0=L0=N,1=A1=B1=L1=N),相邻两个整数之间用一个空格分隔。
输出
仅一行,若不存在满足所有条件的01串,则输出一个整数-1,否则输出一个满足所有条件的01串。
样例输入
6 1 2 3 1 1 2
样例输出
010101
【附录2】跳棋问题的实现(Tiao.pas)
键盘输入棋盘大小n,结果输入到屏幕
uses crt;
const
ch : array[0..1]of char = (.,*);
var
a : array[0..100,0..100]of byte; {棋盘}
n,i,j,k,k1,num : integer;
procedure Print; {打印棋盘}
var ii,jj : integer;
begin
clrscr;
inc(num); writeln(No.,num);
for ii:=0 to n+1 do
begin
for jj:=0 to n+1 do
write(ch[a[ii,jj]], );
writeln;
end;
write(Press ENTER...);
readln;
end;
procedure l(t1,t2:integer); {基本跳法C}
begin
a[t1,t2-1]:=1; a[t1,t2]:=0; a[t1,t2+1]:=0;
print;
a[t1+1,t2]:=0; a[t1+2,t2]:=0; a[t1,t2]:=1;
print;
a[t1,t2-1]:=0; a[t1,t2]:=0; a[t1,t2+1]:=1;
print;
end;
procedure h(t1,t2:integer); {基本跳法B}
begin
a[t1,t2]:=0;a[t1+1,t2]:=0;a[t1-1,t2]:=1;
print;
a[t1,t2+1]:
文档评论(0)