207 条题解
-
0695574648 LV 8 @ 2009-07-14 21:19:44
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
第一次写记搜就AC。
var
n,i,t:longint;
f:array[0..50,0..50] of longint;
procedure try(x,y:longint);
begin
if f[x,y]0
then begin
t:=t+f[x,y];
exit;
end;
if (x=0) and (y=0)
then begin
t:=t+1;
exit;
end;
if x>0
then begin
try(x-1,y+1);
f[x,y]:=f[x,y]+f[x-1,y+1];
end;
if y>0
then begin
try(x,y-1);
f[x,y]:=f[x,y]+f[x,y-1];
end;
end;
begin
readln(n);
for i:=0 to n do
f[0,i]:=1;
try(n,0);
writeln(t);
end. -
02009-07-10 17:19:11@
var
i,j,n:longint;
a:array[1..30,1..30] of qword;
begin
readln(n);
for i:=1 to 2*n do
a:=i;
for i:=2 to 2*n do
for j:=2 to i do
a:=a+a;
writeln(a[2*n,n] div (n+1));
end.用卡特兰数写的
-
02009-07-03 12:22:45@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
小弟不才,看了大牛们的方法,照葫芦画瓢写了个搜索,AC的感觉真好~呵呵 -
02009-06-26 23:25:17@
使用卡特兰数:
卡特兰数(引用)
令h(1)=1,catalan数满足递归式:
h(n)= h(1)*h(n-1) + h(2)*h(n-2) + ... + h(n-1)h(1) (其中n>=2)
另类递归式:
h(n)=((4*n-2)/(n+1))*h(n-1);
该递推关系的解为:
h(n)=C(2n,n)/(n+1) (n=1,2,3,...) -
02009-06-19 11:21:52@
program p1122;
var i,j,k,n,m,ans:longint;
sum:int64;
function c(x,y:longint):longint;
var g,t,s:longint;
begin
if y=0 then exit(x) else begin
t:=x-y; s:=1;
for g:=1 to y do
s:=s*(g+t) div g;
c:=s;
end; end;
function katelan(x:longint):longint;
var g,t:longint;
begin
katelan:=c(2*x,x) div (x+1);
end;
begin
readln(n);
sum:=katelan(n);
writeln(sum);
end. -
02009-06-12 12:14:48@
program zhan;
var
f:array[1..100] of int64;
i,j,n:longint;
begin
readln(n);
f[1]:=1;
f[2]:=2;
f[3]:=5;
if n>3 then
begin
for j:=4 to n do begin
f[j]:=f[j-1]*2;
for i:=2 to j-1 do begin
f[j]:=f[j]+f[j-i]*f;
end;
end;
end;
writeln(f[n]);
end. -
02009-05-30 11:12:58@
前33个:
1
2
5
14
42
132
429
1430
4862
16796
58786
208012
742900
2674440
9694845
35357670
129644790
477638700
1767263190
6564120420
24466267020
91482563640
343059613650
1289904147324
4861946401452
18367353072152
69533550916004
263747951750360
1002242216651368
3814986502092304
14544636039226909
55534064877048198
212336130412243110 -
02009-04-27 13:37:13@
笨蛋都知是卡特兰数
const
a:array[1..15]of int64=
(1, 2, 5,14,42,132,429,1430,4862,16796,58786,208012,742900,2674440,9694845);
var
n:integer;
begin
read(n);
writeln(a[n]);
end. -
02009-04-05 16:48:18@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms#include
using namespace std;int main()
{
int n;
long ans[16] = {0,1,2,5,14,42,132,429,1430,4862,16796,58786,208012,742900,2674440,9694845};
cin>>n;
cout -
02009-03-26 17:44:23@
又忘记用longint了...
-
02009-03-12 19:31:08@
/*
卡塔兰cartalan
设f[n]为n辆车出栈的所有顺序
f[n]=f[0]*f[n-1]+f[1]*f[n-2]……+f[n-2]*f[1]+f[n-1]*f[0]
经化简,通项公式
f[n]=c[2n][n]/(n+1)
(其中c为组合)
*/
#include
using namespace std;
int C[31][31];
int c(int x,int y)
{
if(C[x][y]>0)return C[x][y];
if(x==y||y==0)return C[x][y]=1;
if(y==1)return C[x][y]=x;
return C[x][y]=c(x-1,y-1)+c(x-1,y);
}
int main()
{
int n;
cin>>n;
cout -
02009-03-10 13:51:17@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
水,
用暴搜DFS
var
s,s1,s2,n:integer;
t:longint;
procedure dg(dep:integer);
begin
if dep=n*2 then begin
inc(t);
// writeln;
end
else begin
if(s-1>=0)and(s2+1 -
02009-03-07 13:05:01@
很水……
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar
n,i:integer;
ans:int64;
begin
readln(n);
ans:=1;
for i:=1 to n do
ans:=(ans*(n+i)) div i;
ans:=ans div (n+1);
writeln(ans);
end.Flag Accepted
题号 P1122
类型(?) 搜索
通过 2693人
提交 3987次
通过率 68%
难度 2提交 讨论 题解
-
02009-02-23 18:09: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。 -
02009-02-20 21:14:49@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02008-12-19 19:21:30@
水!!
program p1122;
var
n,i:longint;
ans:int64;
begin
readln(n);
ans:=1;
for i:=1 to n do
ans:=ans*(n+i) div i;
ans:=ans div (n+1);
writeln(ans);
end. -
02008-12-17 18:29:28@
看了鱼丸的程序....数据太弱了吧!BS题目,我还用DP还U掉了...某鱼丸的纯模拟居然A了...
-
02008-11-23 22:43:39@
procedure try(a,b,c:longint);{a代表当前未进过栈的个数,b代表当前栈内含有数,而c代表当前以出栈数}
begin
if c=n then inc(ans){ans是计数器} else
begin
if a>0 then try(a-1,b+1,c);{尝试进栈}
if b>0 then try(a,b-1,c+1);{尝试出栈}
end;
end; -
02008-11-19 20:17:57@
program p_1(input,output);
var
n,sum:longint;
procedure p(i,j:longint);
var
m:longint;
begin
sum:=0;
if j-1=n then
begin inc(sum);exit; end;
m:=j;
p(i+1,j+1);
if i-1>=0 then p(i-1,j);
end;
begin
readln(n);
p(1,2);
writeln(sum);
end. -
02008-11-13 21:11:31@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msprogram v1122;
var
n,i,j:dword;
s,ans:extended;function f(n:dword):extended;
var
i:dword;
begin
if n=1
then exit(1)
else exit(n*f(n-1));
end;begin
readln(n);
ans:=(f(2*n))/(f(n)*f(n))/(n+1);
writeln(ans:0:0);
end.so easy