小M和天平(簡單DP)

2022-03-05 15:39:38 字數 1062 閱讀 5088

題目大意:

小m想知道某件物品的重量,但是擺在他面前的只有乙個天平(沒有游標)和一堆石子,石子可以放左邊也可以放右邊。他現在知道每個石子的重量。問能不能根據上述條件,能不能測出所問的重量。

資料範圍:

多組資料,第一行乙個數n,表示石子個數。(1<=n<=100) 接下來第二行n個數,表示石子的重量。(1<=wi<=100) 接下來第三行乙個數m,表示詢問個數。(1<=m<=1000) 接下來m行每行乙個數k(1<=k<=1e9),表示乙個詢問。

具體思路:

觀察資料範圍,發現k的範圍只是嚇人的。這個題的最大的能稱量的範圍就是10000.也就是說當k大於10000的時候,一定是輸出no。對於另外的情況,兩個for迴圈暴力就可以了。

ac**:

1 #include2

using

namespace

std;

3 # define ll long

long

4 # define inf 0x3f3f3f3f

5const

int maxn = 2e4+100;6

int dp[100+10

][maxn];

7int

a[maxn];

8int

main()

916 memset(dp,0,sizeof

(dp));

17 dp[0][0]=1;18

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

1928}29

}30intm;

31 scanf("

%d",&m);

32while(m--)

3341}42

return0;

43 }

牛客 小M和天平

題目 這題很明顯是乙個揹包 做多了可能就有感覺了吧 設f i j 為選了前i個物品能否湊出體積為j的物品,然後用01揹包亂轉移就可以了。但這題要注意的是不能用一維的揹包寫法,必須用二維,因為這個揹包會同時往前和往後更新狀態 畢竟石子相加和相減都能湊出物品 用一維的話會導致變成完全揹包 不懂可以手動模...

小M的簡單題 easy

小m的簡單題 easy 時間限制 3s 記憶體限制 128mb 題目描述 小m是某知名高中的學生,有一天,他請他的n個同學吃蘋果,同學們排成一行,且手中已經有一些蘋果。為了表示他的大方,有時他會給l到r的同學x個蘋果,但為了了解分配的情況,有時他會詢問l到r的同學中擁有的蘋果數小於x的人的個數。現在...

DP最大M子段和

給定n個數求這n個數劃分成互不相交的m段的最大m子段和。經典的動態規劃優化的問題。設f i,j 表示前i個數劃分成j段,且包括第i個數的最大m子段和,那麼有dp方程 f i,j max k j 1 i 1 也就是說第i個數要麼自己劃到第j段,要麼和前乙個數一起劃到第j段裡面,轉移是o n 的,總複雜...