洛谷P1833 櫻花

2022-08-03 02:54:10 字數 1275 閱讀 6428

先說80分**:最基本的混合揹包,判斷是完全,01,或是多重,再選擇。

1 #include2

using

namespace

std;

3int a[10001],c[10001],t[10001],f[10010

],n,m;

4int

main()

513 m=(x2-x1)*60+y2-y1;

14 scanf("

%d",&n);

15for(int i=1;i<=n;i++)

16 scanf("

%d%d%d

",&a[i],&c[i],&t[i]);

17for(int i=1;i<=n;i++)

1824

else

2532}33

}34}35 printf("

%d\n

",f[m]);

36 }

再說100分**:把每個物品進行二進位制拆分,分成1,2,4,8,16,32,64 ,,,再把花費和價值乘以次數即可。

例如:某個物品可以用20次,那麼可以分成1 2 4 8 5;

ps:對於完全揹包,可以把次數定為乙個很大的數,如9999999;

具體見**:

1 #include2

using

namespace

std;

3int a[10001],b[10001],c[10001],f[1000010

],n,m;

4int

x1,yy,x2,y2;

5int co[1000001],v[1000001

],top;

6void

aaa()723

}24}25

}26intmain()

2734 m=(x2-x1)*60+y2-yy;

35 scanf("

%d",&n);

36for(int i=1;i<=n;i++)

3741

aaa();

42for(int i=1;i<=top;i++)

43for(int j=m;j>=co[i];j--)

44 f[j]=max(f[j],f[j-co[i]]+v[i]);

45 printf("

%d\n

",f[m]);

46 }

希望能給大家帶來幫助!

混合揹包 洛谷P1833 櫻花

愛與愁大神後院裡種了n棵櫻花樹,每棵都有美學值ci。愛與愁大神在每天上學前都會來賞花。愛與愁大神可是生物學霸,他懂得如何欣賞櫻花 一種櫻花樹看一遍過,一種櫻花樹最多看ai遍,一種櫻花樹可以看無數遍。但是看每棵櫻花樹都有一定的時間ti。愛與愁大神離去上學的時間只剩下一小會兒了。求解看哪幾棵櫻花樹能使美...

題解 P1833 櫻花

有 n 棵櫻花,有三種 只能看一次 最多看 a i 遍 能無限看 看每棵櫻花都需要一定時間 t i 求從 t s 開始,到 t e 結束 時間 最多能看多少櫻花。混合揹包板子,01 揹包相當於 1 個物品的多重揹包,完全揹包相當於 inf 個物品的多重揹包,都用多重揹包即可。要二進位制拆分優化,注意...

P1833 櫻花(二進位制優化揹包)

愛與愁的故事第四彈 plant 第一章。愛與愁大神後院裡種了 nn 棵櫻花樹,每棵都有美學值 c ici 愛與愁大神在每天上學前都會來賞花。愛與愁大神可是生物學霸,他懂得如何欣賞櫻花 一種櫻花樹看一遍過,一種櫻花樹最多看 a iai 遍,一種櫻花樹可以看無數遍。但是看每棵櫻花樹都有一定的時間 t i...