日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

QAU 18校赛 J题 天平(01背包 判断能否装满)

發(fā)布時間:2025/3/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QAU 18校赛 J题 天平(01背包 判断能否装满) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

問題 J: 天平

時間限制:?1 Sec??內(nèi)存限制:?128 MB
提交:?36??解決:?9
[提交][狀態(tài)][討論版][命題人:admin]

題目描述

天平的右端放著一件重量為w的物品。現(xiàn)在有n個重量已知的砝碼,只允許在左端放砝碼的前提下,能否通過砝碼判斷出物品的重量。

(注:這里假設(shè)當(dāng)天平的兩端重量不同時天平就會向重的一端傾斜到底!)

輸入

輸入包含兩行,第一行包含兩個整數(shù)w(1<=w<=1000)和n(1<=n<=1000),w表示物品的重量,n表示砝碼的數(shù)量。

第二行包含n個整數(shù),x1x2...xn(1 ≤ xi ≤ 1000),表示每個砝碼的重量。

輸出

如果能夠用天平判斷出物品的重量,輸出Yes。

如果不能,輸出No。

樣例輸入

3 2 1 25 3 3 4 4

樣例輸出

Yes No


解析:
分為兩種情況,1、正好裝滿w 2、能夠裝滿w-1 和 w+1 那么就可以判斷出w的是多少

01背包加一個判斷即可 就是在要裝當(dāng)前背包容量j時 要判斷一下 j-W[i]是否存在,把dp[0]初始化為1 那么就可以保證這個背包是由固定的
重量組成的最大值
我真是蠢啊。。。。

#include <iostream> #include <cstdio> #include <cstring> #include <queue> #include <cmath> #include <algorithm> #define mem(a,b) memset(a,b,sizeof(a)) using namespace std; const int maxn = 10010, INF = 0x7fffffff; int A[maxn], dp[maxn]; int main() {int w, n;cin>> w >> n;mem(dp, 0);dp[0] = 1;for(int i=0; i<n; i++){cin>> A[i];for(int j=w+1; j>=A[i]; j--)if(dp[j-A[i]]) dp[j] = 1;}if(dp[w])cout<< "Yes" <<endl;else if(dp[w-1] && dp[w+1])cout<< "Yes" <<endl;elsecout<< "No" <<endl;return 0; }

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/WTSRUVF/p/9220319.html

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的QAU 18校赛 J题 天平(01背包 判断能否装满)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。