207 条题解
-
0令黄蜂 LV 8 @ 2009-11-04 22:27:49
数学题
-
02009-11-04 10:23:16@
Accepted 有效得分:100 有效耗时:0ms
-
02009-11-03 08:45:53@
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0mscatalan...
-
02009-11-02 16:51:02@
#include
int number;
int account=0;int pop(int point,int n)
{
point--;
if( point==0)
push(point+1,n+1);
else
{
push(point+1,n+1);
pop(point,n);
}}
int push( int point,int n)
{
if(n==number) account++;else
{
push(point+1,n+1);
pop(point,n);
}
}int main()
{
int point=1;
scanf("%d",&number);
push(point,1);
printf("%d",account);return 0;
}
-
02009-10-31 16:34:02@
program E1_2;
var
n1,i,n:integer;
a:array[0..20] of longint;
cha1,cha2:longint;
begin
//init
readln(n1);
//main---|DiTui---|Catalan
a[2]:=1;n:=2;
repeat
inc(n);
for i:=2 to n-1 do
a[n]:=a[n]+a[i]*a[n-i+1];
until n>=n1+2;
//print
writeln(a[n1+2]);
end.
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0mscatlan递推
-
02009-10-30 22:13:00@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msH2O题一道~~
卡特兰可以~
递归可以0ms~晒晒程序
Var
n:Longint;Function try(w,z:Longint):Longint;
Begin
If (w=0) and (z=0) Then Exit(1);
If w=0 Then Exit(try(w,z-1));
If z=0 Then Exit(try(w-1,z+1));
Exit(try(w,z-1)+try(w-1,z+1));
End;Begin
Readln(n);
Writeln(try(n,0));
End. -
02009-10-30 13:09:13@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
var
a,b,c,i:longint;
begin
readln(a);
c:=2*a;
b:=1;
for i:=1to a do begin
b:=round(b*(c-i+1)/i);
end;
b:=round(b/(a+1));
writeln(b);
end.
25题纪念... -
02009-10-27 11:52:22@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msprogram ex;
var i,j,n,ans:longint;procedure dfs(a,b:longint); {a:wei jin zhan; b:zhan nie}
var i,j:longint;
begin
if (a=0)and(b=0) then
begin
inc(ans);
exit;
end;
if a>0 then dfs(a-1,b+1); {push}
if b>0 then dfs(a,b-1); {pop}
end;begin
readln(n);
dfs(n,0);
writeln(ans);
end. -
02009-10-27 10:04:21@
const a:array[0..15] of longint=(1,1,2,5,14,42,132,429,1430,4862,16796,58786,208012,742900,2674440,9697845);
var n:longint;
begin
readln(n);
writeln(a[n]);
end.
卡拉然数 -
02009-10-25 17:52:01@
program NOIP2003_1; {出栈序列统计}
var n:shortint;function solve(l,m,r:shortint):longint;
begin
if (r>0) and (m>0) then solve:=solve(l,m+1,r-1)+solve(l+1,m-1,r);
if (r>0) and (m=0) then solve:=solve(l,m+1,r-1);
if (r=0) and (m>1) then solve:=solve(l+1,m-1,r);
if (r=0) and (m=1) then solve:=1;
end;begin
readln(n);
write(solve(0,0,n));
end.找好递归公式就好办了
-
02009-10-15 20:23:15@
var
s,n1,n2,n3:int64;
i,n:longint;
begin
readln(n);
n1:=1; n2:=1; n3:=1;
for i:=n+2 to 2*n do
n1:=n1*i;
for i:=1 to n do
n3:=n3*i;
begin s:=n1 div(n3);
writeln(s); end;end.
原来这么简单……
(2n)!
s= ---|---|---|---|---|--
n!(n+1)! -
02009-10-13 22:44:42@
var
x:array[0..15,0..15]of longint;
n:longint;function dfs(i,j:longint):longint;
begin
if x-1 then exit(x)
else
begin
x:=0;
if j>0 then
inc(x,dfs(i+1,j-1));
if i>0 then
inc(x,dfs(i-1,j));
exit(x);
end;
end;begin
readln(n);
fillchar(x,sizeof(x),255);
x[n,0]:=1;
x[0,1]:=1;
x[0,0]:=1;
x[1,0]:=1;
writeln(dfs(0,n));
end.记忆化
-
02009-10-13 20:19:19@
#include
using namespace std;
int n,s=0;
void search(int x,int p)
{
if (x>n)
{
s++;
return;
}
if (p>0)
search(x,p-1);
if (x>n;
search(1,0);
cout -
02009-10-08 17:43:15@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0msinclude//完全抄袭(翻译)《栈的计数》解题报告,3.pas;
int main()
{
double f;long n,i;
scanf("%d",&n);
f=1.0;
for (i=1;i -
02009-10-07 22:05:24@
#include
double jx(n)
int n;
{
double k=1;
int i;
for(i=1;i -
02009-10-06 18:00:52@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar
a,f,g:longint;
c:array[1..16] of longint;
procedure ch(n:longint;b:longint);
var
w,e:longint;
begin
if (n=0)and(b=0) then begin inc(g); exit; end else
if n=0 then exit;
if b=0 then ch(n-1,b+1) else
if b -
02009-09-20 19:48:21@
递推秒杀之
-
02009-09-17 20:36:14@
#include
using namespace std;
int f[40][20];
int dg(int m,int n)
{
if (f[m][n]>0)
return f[m][n];
if (m==n||n==0)
return 1;
return f[m][n]=dg(m-1,n)+dg(m-1,n-1);
}
int main()
{
int n,i;
cin>>n;
cout -
02009-09-13 17:48:17@
program t1;
var a:array[0..20,0..20]of longint;
i,j,t,n:longint;
begin
read(n);
a[1,1]:=1;
for i:=2 to n+1 do
for j:=1 to i do
a:=a+a;
write(a[n+1,n+1]);
end. -
02009-09-05 17:32:01@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms汗呐 这题直接记忆化搜索就OK了。。
程序简短到十几行