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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Riddle(2018 CCPC (秦皇岛站) I 题)

發布時間:2025/3/17 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Riddle(2018 CCPC (秦皇岛站) I 题) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Problem Description

Input?

Output

Sample Input

3
3
1 1 1
5
1 1 2 2 3
10
1 2 3 4 5 6 7 8 9 10

Sample Output

7
15
127

Sample Explanation

題意:有 t 組數據,對于每組數據,給出 n 個數字,最多有 n 個玩具,其中每個數字有兩種含義,要么是一個玩具的重量,要么是一個袋的重量,袋子的重量表示袋子中的玩具的重量,其重量為任意個玩具的重量之和,問最多有多少種方案

思路:

對于不超過 15 個數字的 n 個數字,每個數字有兩種狀態,即要么是表單個玩具重量,要么是表袋內部分玩具的總重,根據前面數字所代表的狀態很容易判斷后面數字代表的狀態,滿足無后效性原則,因此很容易想到可以用狀壓 DP 來解決。

但袋子中玩具的個數無法確定,因此無法用簡單的 1、0 來表示是玩具還是袋子,但由于袋子的重量是由袋子中玩具的重量相加得來,因此可用 1 來表示考慮當前數字,0 表示不考慮當前數字,通過對數字的考慮來進行組合,從而判斷袋子的重量是否合理,例如:101 表示考慮第 1、3 數字時的合法方案數,即第 1、3 個數字可以組成一個袋子,用 f[101] 即可表示組成袋子的方案數,再用 dp[i] 來表示合法方案數。

這樣一來,就有 1<<n? 種狀態,考慮袋子 i 去枚舉狀態?j ,由于袋子 i 中的物品必定屬于袋子,因此不能與狀態?j 有沖突,故有 i&j=0,以此來進行狀態轉移,故有:dp[i|j]+=dp[j]*f[i]

Source Program

#include<iostream> #include<cstdio> #include<cstdlib> #include<string> #include<cstring> #include<cmath> #include<ctime> #include<algorithm> #include<stack> #include<queue> #include<vector> #include<set> #include<map> #define PI acos(-1.0) #define E 1e-6 #define MOD 16007 #define INF 0x3f3f3f3f #define N 16 #define LL long long using namespace std; int a[N]; int f[1<<N];//組成袋子的合法方案數 int dp[1<<N];//合法方案數 int weight[1<<N];//第i種狀態的重量 int main() {int t;scanf("%d",&t);while(t--){int n;scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]);for(int i=0;i<(1<<n);i++){weight[i]=0;f[i]=0;dp[i]=0;}for(int i=1;i<=n;i++)//n位數字for(int j=1;j<(1<<n);j++)//2^n種狀態if( 1<<(i-1) & j )//若第i位是1weight[j]+=a[i];//記錄第j個狀態的重量for(int i=1;i<=n;i++)//n位數字for(int j=1;j<(1<<n);j++)//2^n種狀態if( 1<<(i-1) & j )//若第i位是1if(weight[j]-a[i]==a[i])//如果第j個狀態的重量減去第i個物品的重量等于第i個物品的重量說明選擇第j個狀態是一個合法的袋子f[j]++;for(int i=1;i<(1<<n);i++){//包裹2^n種狀態int k=(1<<n)-1-i;//與i相斥的狀態for(int j=k;;j=(j-1)&k){//選物品的狀態且其不能選為包裹dp[i|j]+=dp[j]*f[i];if(j==0)break;}}printf("%d\n",dp[(1<<n)-1]);}return 0; }

?

總結

以上是生活随笔為你收集整理的Riddle(2018 CCPC (秦皇岛站) I 题)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 免费黄色看片网站 | 91天天看 | 精品人人妻人人澡人人爽牛牛 | 国产伦精品一区二区三区视频我 | 秋霞在线视频 | 邵氏电影《金莲外传2》免费观看 | 久久精品中文 | 国产一区日韩 | 成年人拍拍视频 | 亚洲三级在线视频 | 青青视频在线播放 | 麻豆久久久 | 老司机深夜视频 | 激情高潮呻吟抽搐喷水 | 欧美综合自拍 | 亚州av成人 | 国产999在线观看 | 日韩日韩日韩日韩日韩 | 亚洲第一偷拍 | 992tv成人免费视频 | 国产一区二区福利 | 风流少妇一区二区三区91 | 相亲对象是问题学生动漫免费观看 | 亚洲少妇18p | 天天综合天天做 | 福利片第一页 | 成人av一区二区在线观看 | 激情综合网五月 | 免费欧美黄色片 | 伊人午夜 | 国产一级片免费播放 | 欧美裸体女人 | 亚洲免费视频一区二区 | 神马午夜888 | 亚洲人丰满奶水 | 亚洲狼人在线 | 精品爱爱| 妞干网这里只有精品 | 国产一区二区在 | 国产最新在线观看 | 日本一区二区欧美 | 操操操爽爽爽 | 国产精品系列在线播放 | 国产成人超碰人人澡人人澡 | av有声小说一区二区三区 | 国产天堂久久 | 中文人妻熟女乱又乱精品 | 老子影院午夜精品无码 | 让人下面流水的视频 | 午夜亚洲成人 | 999热| 网友自拍咪咪爱 | 日本中文字幕一区 | 欧美一区二区三区系列电影 | 久久亚洲精品无码va白人极品 | 三级av免费| aaa午夜 | 无码人妻aⅴ一区二区三区69岛 | 夜夜躁日日躁狠狠久久av | 国语对白做受 | 亚洲国产精品久久 | 伊人色区 | 国产精品欧美一区二区三区 | 久久久社区 | 老头老夫妇自拍性tv | 青青草原在线免费观看视频 | 欧美精品成人一区二区三区四区 | 最近最经典中文mv字幕 | 三级亚洲欧美 | 亚洲成人精品网 | 高清日韩av | 窝窝午夜精品一区二区 | 亚洲欧美在线一区二区 | 深夜小视频在线观看 | 韩国美女一区二区 | 色丁香婷婷 | 亚洲第一天堂在线观看 | 亚洲av无码专区国产乱码不卡 | 欧美第一页草草影院 | 四虎在线播放 | 丝袜制服中文字幕 | 国产精品伦一区二区三级视频 | 中文字幕伊人 | 欧美性视频一区二区三区 | av中文字幕免费观看 | 国产精品久久久久久久妇 | 精品国模一区二区三区 | 制服丝袜中文字幕在线 | 日本视频三区 | 日韩精品在线观看中文字幕 | 天天操天天舔天天干 | 亚洲乱码一区二区三区在线观看 | 女同调教视频 | 久久日韩| 亚洲精品视频在线播放 | 骚av在线 | 精品xxx| 又嫩又硬又黄又爽的视频 | 成年人免费网站在线观看 |