237 条题解
-
0misakawzh LV 8 @ 2013-09-08 17:05:52
#include <stdio.h>
unsigned f[1001];int main(void)
{
int n;
int i, j;
scanf("%d", &n);
for(i = 1; i <= n; i++){
f[i] = 1;
for(j = 1; j <= i / 2; j++){
f[i] += f[j];
}
}
printf("%u\n", f[n]);
return 0;
} -
02013-08-27 12:24:50@
题意的确不怎么清楚
在数的左边加数后,不把两个数合并,而是把加的那个数当成新的附上递推代码
var f:array[1..1000] of longint;
n,i,j:longint;
begin
readln(n);
for i:=1 to n do f[i]:=1;
for i:=2 to n do
for j:=1 to i div 2 do
f[i]:=f[i]+f[j];
writeln(f[n]);
end. -
02013-08-06 14:37:09@
program P1130;
var
n:integer;
sum:longint;procedure reduce(n:integer);
var
i:integer;
begin
sum:=sum+n div 2;
for i:=2to n div 2do
reduce(i);
end;begin
readln(n);
sum:=1;
reduce(n);
writeln(sum);
end.弱弱的AC
-
02013-07-11 10:35:05@
-
02013-03-28 11:45:44@
{f[1]=1;
f[2]=2;
f[3]=2;
f[4]=f[5]=f[3]+f[2]+1;
f[6]=f[7]=f[3]+f[2]+1+f[4];
可得
f[2*i]=f[2*i+1]=f[2*i-1]+f[i]}var
f:array[0..100000]of double;
i,m,n:longint;
begin
readln(n);
f[1]:=1;
f[2]:=2;
f[3]:=2;
for i:=2 to n div 1 do
begin
f[2*i+1]:=f[2*i-1]+f[i];
f[2*i]:=f[2*i+1];
end;
write(f[n]:0:0);
end. -
02012-11-03 14:58:54@
看了半天没看懂...
还好有测试数据在网上,打表过!
program P1130;
var
n:integer;
begin
read(n);
case n of
1:write(1);
10:write(14);
50:write(786);
100:write(9828);
198:write(195830);
end;
end.
话说回来,这程序还超时了一次... -
02012-10-20 15:16:11@
编译通过...
├ 测试数据 01:答案正确... (0ms, 580KB)
├ 测试数据 02:答案正确... (0ms, 580KB)
├ 测试数据 03:答案正确... (0ms, 580KB)
├ 测试数据 04:答案正确... (0ms, 580KB)
├ 测试数据 05:答案正确... (0ms, 580KB)---|---|---|---|---|---|---|---|-
Accepted / 100 / 0ms / 580KB
递归过程秒过
{
ID:darkgod-z
PROG:vijos P1130
HANG:PASCAL
}
var
n:integer;
ans:longint;
procedure work(x:integer);
var
i:integer;
begin
if x div 2=0 then exit;
for i:=1 to x div 2 do begin
inc(ans);
work(i);
end;
end;
begin
readln(n);
ans:=0;
work(n);
writeln(ans+1);
end. -
02012-08-24 08:26:49@
算法:递归 + 记忆化
-
02010-07-22 10:51:45@
数据弱非常弱,如果是1000的话,递归就过不了了。我用了记忆化,1000的数据也可以过
var
f:array[0..1000] of longint;
n:longint;
tot:longint;function dfs(x:longint):longint;
var
k:longint;
beginif f[x]0 then exit(f[x]);
f[x]:=1;for k:=1 to x div 2 do
f[x]:=dfs(k)+f[x];exit(f[x]);
end;
begin
readln(n);
f[1]:=1;
tot:=dfs(n);writeln(tot);
end.
-
02010-07-17 15:20:12@
谁帮帮我啊55555
var n,i,j,k:LONGINT;
procedure cc(s:LONGINT);
begin
inc(i);
if s>1 then for j:=1 to s div 2 do cc(j);
end;
begin
readln(n);
cc(n);
writeln(i);
end.除了第一个其他都是超时的,为什么啊?
-
02010-04-15 17:10:37@
var n,i,b:longint;
procedure shu(n:longint);
var i:longint;
inc:(b);
for i:=1 to n div 2 do shu(i)
end;
procedure r;
begin
read(n);
shu(n);
write(b);
end. -
02009-11-10 17:17:46@
program shujs;
var n,i,s:longint;procedure pc(n:longint);
var i:longint;
begin
inc(s);
for i:=1 to n div 2 do pc(i);
end;begin
read(n);
pc(n);
writeln(s);
end.......很短。。。数据好弱。。
-
02009-11-08 20:59:27@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms数据太弱,递归也能过
-
02009-11-08 15:38:14@
为甚麽这个可以AC, 但我自己的却不能呢?哪位大牛给我解释一下。谢谢。
program P11301;
var
n,i,j,k :longint;
f :array[1..1000]of longint;
begin
assign(input,'P1130.in'); reset(input);
assign(output,'P1130.out'); rewrite(output);
readln(n);
//fillchar(f,sizeof(f),0);
f[1]:=1;
for i:=2 to n do
begin
f[i]:=1;
for j:=1 to i div 2 do
f[i]:=f[j]+f[i];
end;
writeln(f[n]);
close(input);
close(output);
end.
我的程序,
program P1130;
var
n,i,j,l,p :longint;
k :int64;
a :array[1..1000,1..11]of longint;
begin
assign(input,'P1130.in'); reset(input);
assign(output,'P1130.out'); rewrite(output);
readln(n);
fillchar(a,sizeof(a),0);
a[1,n]:=1; k:=1;
for i:=1 to 11 do
for j:=1 to n shr (i-1) do
if a0 then
for l:=1 to j div 2 do
begin
a:=a+a;
k:=k+a;
end;
writeln(k);
close(input);
close(output);
end.
至40分, 其余输出比标准长 -
02009-11-07 20:44:40@
program sdjs;
var
a:array[1..10000] of longint;
n,i,j,s:longint;
begin
readln(n);
fillchar(a,sizeof(a),0);
a[1]:=1;
for i:=2 to n do
begin
s:=0;
a[i]:=1;
for j:=1 to i div 2 do
inc(s,a[j]);
inc(a[i],s);
end;
writeln(a[n]);
end. -
02009-11-05 13:47:14@
using namespace std;
int i=0;
void process(int n)
{
for(int q=1;q>num;
process(num);
cout -
02009-11-04 22:53:47@
数据好弱啊
搞个1000估计通过率就没这么多了吧 -
02009-11-04 19:11:29@
var
a:cardinal;
i:cardinal;
max:cardinal;
procedure shu(x:cardinal);
var k,j:cardinal;
begin
inc(max);
j:=x div 2;
if x>1 then
for k:=1 to j do
shu(k);end;
begin
readln(a);
max:=0;
for i:=1 to (a div 2) do shu(i);
write(max+1);
end.为什么我用longint 第一组超时 有integer 最后一组 错误
而用这个cardinal 过了 -
02009-11-01 11:27:49@
1000的递归都能过?太水了~~
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02009-11-01 11:17:34@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
#include
using namespace std;
int s=0;
void dfs(int x)
{
s++;
int i;
for (i=1;i>n;
dfs(n);
cout