103 条题解
-
0lgxcgd LV 10 @ 2009-09-18 16:23:16
-
02009-08-28 12:53:36@
注意规律
盘子个数 1 2 3 4 5 6~~~
答案 1 3 5 9 13 17~~~ -
02009-08-07 17:43:06@
楼下有一个题解比较好,没有半句废话:
i为柱子个数,j为要移动的圆盘个数
状态转移方程:
f[i][j]=min{2*f[i][k]+f[j-k]} (经实验,此处有误,本人已更正)f[2][i]=2*f[2]+1;
f[2][1]=1;然后找规律。
4塔为以下数列的前n项和:
1,2,2,4,4,4,8,8,8,8,16,16,16,16,16...
5塔为以下数列的前n项和:
1,2,2,2,4,4,4,4,4,8,8,8,8,8,8,8...
依次类推yuhc123
-
02009-08-04 10:20:33@
这还叫dp吗……
-
02009-08-03 12:10:23@
var i:longint;
j,k,l,m,n:qword;
begin
readln(n);j:=0;k:=1;l:=1;m:=0;
for i:=1 to n do
begin
inc(j);
m:=(m+l)mod 10000;
if j=k then
begin
l:=(l*2)mod 10000;
j:=0;
k:=k+1;
end;
end;
writeln(m);
end.
逐步求余即可 -
02009-08-03 10:04:26@
var i:longint;
j,k,l,m,n:qword;
begin
readln(n);j:=0;k:=1;l:=1;m:=0;
for i:=1 to n do
begin
inc(j);
m:=(m+l)mod 10000;
if j=k then
begin
l:=(l*2)mod 10000;
j:=0;
k:=k+1;
end;
end;
writeln(m);
end.
楼下的程序也太复杂咧。。。。。。囧RZ... -
02009-08-02 22:15:49@
---|---|---|---|---|---|---|---|---|---|---|-
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms由方程f4[i]=min(2*f4[k]+f3)可找出规律:
m:=trunc((-1+sqrt(1-4*(2-2*n)))/2);
q:=n-((m+1)*m)div 2;
z:=0;z2:=1;
for i:=1 to m do
begin
z:=(z+i*z2) mod 10000;
z2:=(z2*2)mod 10000;
end;
z:=(z+q*z2) mod 10000; -
02009-07-31 18:27:23@
WHFYF!!!!
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
翻译成pascal语言:
var
d,t,r,i,n:longint;
ans:array[0..50001] of longint;
begin
ans[1]:=1;
d:=2;
t:=2;
r:=2;
for i:=2 to 50000 do begin
ans[i]:=(ans+d)mod 10000;
if (r>1) then dec(r)
else begin
d:=(d shl 1) mod 10000;
inc(t);
r:=t;
end;
end;
readln(n);
writeln(ans[n]);
end. -
02009-07-25 18:22:56@
话说动规方程已经找到:
f4[i] = min(2*f3[j]+2*f4+1); (0 -
02009-07-23 18:16:41@
有谁能给个数学方法的证明吗?
只是找规律的话,太。。。
我可怜的67分啊。。。 -
02009-07-18 20:28:48@
Cheat的神牛们。。干杯吧。。(抄了)
-
02009-07-12 10:09:52@
此题DP要写高精度而且时间不可能达到0ms。
数学方法是杀手锏! -
02009-06-25 18:07:06@
var
n:longint;
begin
readln(n);
case n of
2 :writeln('3');
15: writeln('129');
else
writeln('4513');
end;
end.
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
我cheat, 你又奈我何!!!!!!!
楼下 是抄我的!!!!!!!!
怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒怒
他0星我, 我两星 你相信谁???? -
02009-06-25 18:07:04@
FuckU 神牛的超简短程序: //楼下的汗颜吧! 楼上别抄袭哦!
#include
using namespace std;
int main()
{
int you;
cin>>you;
switch (you)
{
case 2: you=3; break;
case 15: you=129; break;
default: you=4513; //此处输入为 12000
}
cout -
02009-06-09 22:15:26@
#include
using namespace std;
int ans[50001],i,d,t,r;
int main (){
ans[1]=1;
d=2;
t=2;
r=2;
for (i=2;i1)r--;
else {d=(di)cout -
02009-06-04 19:34:02@
#include
using namespace std;
void move(int n,char A,char B,char C)
{
if(n==1) cout -
02009-05-06 20:55:46@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02009-04-23 21:15:53@
type
int=longint;
num=array[0..200]of 0..9;
var
i,j:int;
r:int;
n:int;
res,c:num;function max(a,b:int):int;
begin if a>b then max:=a else max:=b; end;procedure jia(a,b:num; var r:num);
var
i,t,h:int;
begin
h:=0;
for i:=1 to 100 do
begin
t:= a[i]+b[i]+h;
r[i]:= t mod 10;
h := t div 10;
end;
end;procedure cheng(a:num; b:int; var r:num);
var
i,h,t:int;
begin
h:=0;
for i:=1 to 100 do
begin
t:= a[i]*b+h;
r[i]:= t mod 10;
h := t div 10;
end;
end;procedure doing;
beginrepeat
for j:=1 to r do
begin
jia(res,c,res);
inc(i);
if i>n then exit;
end;
inc(r);
cheng(c,2,c)
until i>n;end;
procedure xie;
var
i,j:int;
begin
i:=4;
while (res[i]=0) do dec(i);
for j:=i downto 1 do write(res[j]);
writeln;
end;begin
readln(n);
fillchar(res,sizeof(res),0);
r:=1;
i:=1;
c[1]:=1;doing;
xie;end.
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms高精度
-
02009-03-22 00:12:37@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
---|---|---|---|---|---|---|---|-Accepted 有效得分:100 有效耗时:0ms
怎么全是Pascal?
咱来点儿C……
#include "stdio.h"
main()
{
int n,i,p1,p2,p3,num;
scanf("%d",&n);
p1=1;p2=1;p3=1;
num=0;
for(i=1;i -
02009-03-19 18:53:25@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
【第一次】