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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1837Balance

發布時間:2023/12/18 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1837Balance 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

看了題解的,有個高手跟我說這道題目要用到dp統計,把原點偏移,即把不能表示的部分移到能夠表示的區域。這個想法可能是用在-7500那里

我的一開始的想法是dp[i][j] ?其中i表示i碼,j表示j鉤,dp表示是否平衡,但是無論怎么想都覺得這道題目不是dp,而是搜索,所以最后做不出來

看了人家的題解,才發現,我的決策變量找錯了

dp[i][j] ?其中i表示i碼,j表示天平此時的平衡度,dp表示數量,而且值得注意的是,平衡度有可能是-7500,所以要用到dp偏移

理解了人家的想法,我也自己打了一個代碼,可是錯誤了

dp[i][j+w[i]*c[k]+7500]+=dp[i-1][j+7500];老是把w跟c給用混了,所以以后在命名時得多加注意了

我的代碼,通過了

#include "iostream" #include "string.h" using namespace std; int dp[25][15000]; int main(){int m,n,i,c[30],w[30],j,k;while(cin>>m>>n){for(i=1;i<=m;i++)cin>>c[i];for(i=1;i<=n;i++)cin>>w[i];memset(dp,0,sizeof(dp));dp[0][7500]=1;for(i=1;i<=n;i++){for(j=-7500;j<=7500;j++){if(dp[i-1][j+7500]!=0){for(k=1;k<=m;k++){dp[i][j+w[i]*c[k]+7500]+=dp[i-1][j+7500];//cout<<dp[i][j+w[i]*c[k]+7500]<<' '<<j+w[i]*c[k]+7500<<endl; }//cout<<endl; }}}cout<<dp[n][7500]<<endl;} }

?

轉載于:https://www.cnblogs.com/dowson/p/3299268.html

總結

以上是生活随笔為你收集整理的1837Balance的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。