求教noip2005青蛙過河

2024-12-27 04:50:15 字數 3006 閱讀 4890

改錯之noip2005年過河

1樓:尋月落花

沒考慮s=t的情況 。此時就是mod一下就行了。應該含1的情況也單獨列出來一下比較好。

2005noip的過河 求解!

2樓:網友

dp+路徑壓縮。

本題壓縮的原理:

只要求出1--10裡面任意兩個數的最小公倍數,然後取最大的,可以證明當兩石塊之間的距離大於它的時候,那麼大於它的部分的每乙個點都可以通過這兩個數的某一種組合跳到,所以當兩個石塊間的距離大於這個最小公倍數,那麼就把它們的距離縮小到這個最小公倍數。

路徑壓縮後,就可以dp求出最小踩石子個數。設f[i]表示到達第i個位置最小踩多少個石子。

則f[i]=min(f[i-j]+d[i])(1<=i<=l+t)(s<=j<=t),d[i]表示第i個位置是否有石子。

最後的答案就是在l to l+t 之間找最小。

#include

using namespace std;

long l,a[102],s,t,n;

long f[10000000],d[10000000]; //不要在函式里定義太大的陣列啊,會溢位的啊~~~

void init()

void solve()

long tmp;

for(long i=1;ia[j])

a[n+1]=l;

for(long i=1;i<=n;++i)

if(a[i+1]-a[i]>90)

a[i+1]=a[i]+(a[i+1]-a[i])%90;

l=a[n+1];

for(long i=1;i<=n;++i) d[a[i]]=1;

for(long i=1;i<=l+t;++i) f[i]=0xfffffff;

for(long i=s;i<=l+t;++i)

for(long j=s;j<=t;++j)

if(i>=j&&f[i]>f[i-j]+d[i]) //可以從i前面s to t這些範圍跳到第i個位置,找最小。

f[i]=f[i-j]+d[i];

num=0xfffffff;

for(long i=l;i<=l+t;++i)

if(num>f[i]) num=f[i];

printf("%d",num);

int main()

採藥 noip2005 pascal 急急!

3樓:網友

01揹包,最基本的dp,推薦《揹包九講》

vartime,value:array[1..100] of integer;

f:array[0..1001] of integer;

t,m,i,j:integer;

function max(x,y:integer):integer;

beginif x>y then max:=x

else max:=y;

end;begin

readln(t,m);

for i:=1 to m do

readln(time[i],value[i]);

for i:=1 to m do

for j:=t downto 1 do

if j-time[i]>=0 then

f[j]:=max(f[j],f[j-time[i]]+value[i]);

write(f[t]);

end.

求noip2005和noip2004的合併果子與採藥的測試資料

4樓:武風

我給你發了啊採藥的,但合併果子的暫時沒有。

動態規劃解noip2005採藥問題

5樓:網友

崩潰的原因是int v[m+1],t[m+1]

一般都應該直接定義成數值 你換成 int v[150],t[1500]就應該能通過了。

而且輸出的時候一定要輸出換行,fout<

6樓:老漢大吃喝乎乎

少約束條件,詳見揹包九講第二講。

7樓:網友

2維的狀態不好,直接用1維的啊:f[j],j是體積,f[j]是j的體積下能取到的最大價值,狀態轉移方程:f[j]=max(f[j-v[i]]+w[i]).i是第幾樣物品。

8樓:栩箭

我可以去哪兒測試我的結果?

2005noip普及組複賽pascal circle怎麼做,提供一下思路和還有用哪種演算法就好了 多謝

9樓:網友

高精度+遞推。

這題編不是很難,主要難在遞推。

因為只要求最後k位的迴圈長度,所以在高精度時,只要來最後k位來計算即可。

判斷迴圈的方法:

因為要求的是n^1,n^2,..是否迴圈。(除第乙個數外,其他每個數都是由之前的數乘於乙個固定的數n而來的)

所以如果第一次出現最後k位與之前的數的最後k位重複的數(設為n^k)

如果n^k和n^1最後k位相同的數,即迴圈長度就是k-1.

否則無解。當k=1時,只要計算出n^1,n^2,..再判斷最後一位是否迴圈即可。

當k>=2時,因為乙個數n的最後k位的迴圈長度肯定是最後k-1位的迴圈長度的正整數倍(>=1)(這個非常關鍵)

所以我們可以從最後一位開始推,直到最後k位。

方法:首先在數n^1,n^2,n^3...求出最後一位的迴圈長度l1,無解則輸出-1

接著在數n^1,n^(l1+1),n^(2*l1+1),.求出最後兩位的迴圈長度l2,無解則輸出-1

然後在數n^1,n^(l2+1),n^(2*l2+1),.求出最後三位的迴圈長度l3,無解則輸出-1

最後的迴圈長度ans=l1*l2*..lk

思路就是如此。謝謝。

NOIP2019保送還有希望麼,NOIP2009保送還有希望麼

如果是為了保送而學這個的,就算是真的保送了,樓主的前途也是一片渺茫。學資訊科技首先需要的是興趣,我比你高一級,現在高二,算是荒廢所有學科專攻 開發類技術,成績全班倒數,不知道有沒你那水平,但是完完全全是靠興趣支撐著!你如果能達到廣東的省一等,我就佩服你了!說白了,noip或者其他奧賽都是拿參賽選手年...

求教紅色警戒2中的作弊方法,求教紅色警戒2中的作弊方法

空投建築我記得只有共輝才能。以上的所謂 作弊方法 除了假賣基地可以其他的都不行。但是有乙個 那就是即便你所有的部隊都被摧毀了也不會結束該局遊戲 至於礦車大炮我沒聽過,不知道是什麼 作弊方法到是沒有。補丁到是許多 其實補丁就等於是外掛程式了 去訊雷資源裡找些紅警的補丁 一般的補丁下好之後往紅警的資料夾...

求教這2種是什麼植物?謝謝葉子很硬葉尖帶刺

瓜子蘭,葉尖扎人,小花在葉主脈上開。竹柏 假葉樹 ruscus aculeatus 竹柏 nageia nagi 這株植物叫什麼?葉子硬尖端帶刺。我們這市場上一般叫它荷蘭鐵,喜光耐旱植物,放陽台上明亮通風處,乾透澆水就可以土不幹不澆水土乾一點沒關係,怕澇,粗放管理就可以 絲蘭,不適合當花卉養植,長得...