51 条题解
-
-2TONY1312 LV 6 @ 2016-06-06 15:54:48
这应该是原题:
邮政货车
(vans.cpp/c/pas)
【题目描述】vans.pas
郊区呈矩形,有N(N<=3)条东西方向的街道和M(M<=126)条南北方向的街道.在交区的西北角有一个邮局。
如N=3,M=4 时,郊区如右图所示,圆点表示邮局,直线表示街道。
每天邮政卡车从邮局出发,每个交叉路口(包括边界和四角)经过且只经过一次,最终回到邮局。现在邮局希望知道邮政货车不同的行驶路线共有几种。【输入文件】 vans.in
一行,包括两个数字N和M。输入数据保证货车一定能够完成任务并回到邮局。【输出文件】vans.out
一个数字,为邮政货车不同行驶路线的数量。【输入输出样例】
vans.in vans.out
3 4 4 -
-22016-02-21 20:40:59@
编译成功
Free Pascal Compiler version 3.0.0 [2015/11/16] for i386
Copyright (c) 1993-2015 by Florian Klaempfl and others
Target OS: Win32 for i386
Compiling foo.pas
foo.pas(16,5) Note: Local variable "len" not used
foo.pas(16,9) Note: Local variable "now" not used
foo.pas(12,5) Note: Local variable "j" not used
Linking foo.exe
83 lines compiled, 0.1 sec, 28608 bytes code, 1268 bytes data
3 note(s) issued测试数据 #0: Accepted, time = 0 ms, mem = 1196 KiB, score = 10
测试数据 #1: Accepted, time = 0 ms, mem = 1196 KiB, score = 10
测试数据 #2: Accepted, time = 15 ms, mem = 1200 KiB, score = 10
测试数据 #3: Accepted, time = 0 ms, mem = 1200 KiB, score = 10
测试数据 #4: Accepted, time = 0 ms, mem = 1196 KiB, score = 10
测试数据 #5: Accepted, time = 0 ms, mem = 1196 KiB, score = 10
测试数据 #6: Accepted, time = 0 ms, mem = 1200 KiB, score = 10
测试数据 #7: Accepted, time = 0 ms, mem = 1200 KiB, score = 10
测试数据 #8: Accepted, time = 0 ms, mem = 1200 KiB, score = 10
测试数据 #9: Accepted, time = 15 ms, mem = 1196 KiB, score = 10
Accepted, time = 30 ms, mem = 1200 KiB, score = 100
没想到压位高精加减法居然这么快……也是醉了
###Pascal Code
program p1435;
const
mo=100000000;
type
ar=array[1..100] of longint;
bignum=record //高精数
len:longint; //高精数的长度
bit:ar; //高精度的位
end;
var
f:array[1..1000] of bignum;
i,n,c,t:longint;//中间高精度加减法就抄模版吧,就不贴了(其实为了防盗……)
begin
//assign(input,'input.txt');
//reset(input);readln(n);
for i:=1 to n do f[i].len:=1;
f[1].bit[1]:=0; //赋初值
f[2].bit[1]:=2;
f[3].bit[1]:=4;
f[4].bit[1]:=12;
for i:=5 to n do
begin
plus(i,i-1); //plus 为高精加
plus(i,i-1);
plus(i,i-2);
plus(i,i-2);
plus(i,i-4);
minus(i,i-3); //minus 为高精减
minus(i,i-3);
end;
write(f[n].bit[f[n].len]);
for i:=f[n].len-1 downto 1 do //pascal 好像没有补足空位的方法,只能手动补了,还望大神指教
begin
c:=0;
t:=f[n].bit[i];
while t>0 do
begin
inc(c);
t:=t div 10;
end;
for t:=1 to 8-c do write('0');
write(f[n].bit[i]);
end;
writeln;
end. -
-22014-06-23 20:43:31@
题目样例有错?
-
-22009-08-17 17:22:40@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms一个下午的成果!
-
-22009-10-04 21:29:30@
状态压缩+递推+高精度~
编程难度不高~
主要是考思考的题目
压十万位秒杀
-
-22009-08-07 20:10:47@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
曾经没思路。
今天
推了很久,终于推出来了
很囧, 居然打错了字,
还以为递推式写错了。 -
-22009-07-29 17:42:40@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms高精度练习……
输出判断出错了……两次才AC…… -
-22009-06-17 19:19:43@
我估计有人抄代码。rate太高。此题不水。
-
-22009-05-27 10:41:43@
n=1000的答案:
107804506292289350371048477751462318472
338875681229430815191043941667558989810
997595390590112331971628390414468994120
682970273501713146998173127159558033474
461443895512036420352593950998937505267
543407832546722338553648282026544865299
065441178730028962054017194481457835903
530891684124097165346656344943649706816
334537991246202605553833095654700321948
501170791416701579443451358779073244356
826563290108152 -
-22008-11-07 15:20:27@
实话说这题是难做的,能不看题解做出的人已经算很有实力了。。说实话大家有几个是靠自己做出来了?
-
-32017-04-08 09:51:39@
666