洛谷 2329 柵欄

2022-05-26 01:54:14 字數 1506 閱讀 1598

農夫約翰打算建立乙個柵欄將他的牧場給圍起來,因此他需要一些特定規格的木材。於是農夫約翰到木材店購買木材。可是木材店老闆說他這裡只剩下少部分大規格的木板了。不過約翰可以購買這些木板,然後切割成他所需要的規格。而且約翰有一把神奇的鋸子,用它來鋸木板,不會產生任何損失,也就是說長度為10的木板可以切成長度為8和2的兩個木板。

你的任務:給你約翰所需要的木板的規格,還有木材店老闆能夠給出的木材的規格,求約翰最多能夠得到多少他所需要的木板。

第一行為整數m(m<= 50)表示木材店老闆可以提供多少塊木材給約翰。緊跟著m行為老闆提供的每一塊木板的長度。

接下來一行(即第m+2行)為整數n(n <= 1000),表示約翰需要多少木材。

接下來n行表示他所需要的每一塊木板的長度。木

#include#include

#include

#include

#include

#include

#include

using

namespace

std;

const

int n=1050

;int

a[n],b[n],c[n],n,mid,m,w,tot,sum[n],ans;

bool check(int h,int

last)

}return0;

}int

main()

scanf("%d

",&m);

for(int i=1;i<=m;i++)

sort(b+1,b+m+1

);

for(int i=1;i<=m;i++)

sum[i]=sum[i-1]+b[i];

while(sum[m]>tot) m--;

int l=1,r=m;

while(l<=r)

else r=mid-1

; }

if(l==2) printf("

0\n"

);

else printf("

%d\n

",l-1

);

return0;

}

材的規格小於32767。(對於店老闆提供的和約翰需要的每塊木板,你只能使用一次)。

只有一行,為約翰最多能夠得到的符合條件的木板的個數。

輸入 #1複製

4

3040

5025

1015

1617

1819

2021

2524

30

輸出 #1複製

7

輸入 #2複製

3

2010109

3335

5788

9

輸出 #2複製

7

題解:dfs+剪枝+二分查詢(不是太難但是是紫題嘿嘿。)

洛谷P2731騎馬修柵欄

farmer john每年有很多柵欄要修理。他總是騎著馬穿過每乙個柵欄並修復它破損的地方。john是乙個與其他農民一樣懶的人。他討厭騎馬,因此從來不兩次經過乙個柵欄。你必須編乙個程式,讀入柵欄網路的描述,並計算出一條修柵欄的路徑,使每個柵欄都恰好被經過一次。john能從任何乙個頂點 即兩個柵欄的交點...

洛谷 P2205 USACO13JAN 畫柵欄

這題其實沒什麼,但用到的演算法都十分有用。做乙個不恰當的比喻,這是乙隻必須用牛刀殺的雞,但因為我這個蒟蒻殺不死牛,所以只能找只雞來練練手。題目描述 farmer john 想出了乙個給牛棚旁的長圍牆塗色的好方法。為了簡單起見,我們把圍牆看做一維的數軸,每乙個單位長度代表一塊柵欄 他只是簡單的把刷子蘸...

洛谷 P2731 騎馬修柵欄 尤拉路與尤拉迴路

給出m mm條邊,求出一條尤拉路,起點任意,終點任意,每條邊只經過一次。要求給出的尤拉路字典序最小。1 m 1024,1 n 500 1 leq m leq 1024,1 leq n leq 500 1 m 1 024,1 n 500 先總結一下有向圖 無向圖求尤拉路與尤拉迴路的性質。無向圖 有且僅...