麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

[USACO2.2]集合 Subset Sums

2019-11-14 09:31:58
字體:
來源:轉載
供稿:網友

題目:

對于從1到N (1 <= N <= 39) 的連續整數集合,能劃分成兩個子集合,且保證每個集合的數字和是相等的。舉個例子,如果N=3,對于{1,2,3}能劃分成兩個子集合,每個子集合的所有數字和是相等的:{3} 和 {1,2}這是唯一一種分法(交換集合位置被認為是同一種劃分方案,因此不會增加劃分方案總數) 如果N=7,有四種方法能劃分集合{1,2,3,4,5,6,7},每一種分法的子集合各數字和是相等的:{1,6,7} 和 {2,3,4,5} {注 1+6+7=2+3+4+5}{2,5,7} 和 {1,3,4,6}{3,4,7} 和 {1,2,5,6}{1,2,4,7} 和 {3,5,6}給出N,你的程序應該輸出劃分方案總數,如果不存在這樣的劃分方案,則輸出0。程序不能預存結果直接輸出(不能打表)。

輸入格式:

輸入文件只有一行,且只有一個整數N

輸出格式:

輸出劃分方案總數,如果不存在則輸出0。

樣例: SAMPLE INPUT

7

SAMPLE OUTPUT

4

思路:

動態規劃: f[i][j]-選到第i個時集合一和為j的方案數 f[i][j]+=f[i-1][j-i] for(i=2;i<=n;i++) for(j=g;j>=1;j- -) if(j>=i) f[i][j]=f[i-1][j-i]; 簡化得: f[i]+=f[i-j]

代碼:

# include<cstdio># include<cstdlib># include<iostream># include<algorithm>using namespace std;long long ans=0,n,g,f[100101];int main(){ scanf("%d",&n); if(n%4==1 || n%4==2){//如果g為奇數輸出0
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久久久久久久久久免费 | 性少妇videosexfreexxx片 | 高清国产午夜精品久久久久久 | 日韩视频精品一区 | 国产一级毛片国语版 | 黄色特级大片 | 国产一国产一级毛片视频 | 欧美国产精品久久 | av免费在线观看免费 | 成人艳情一二三区 | 蜜桃网在线观看 | 国产成人高清在线观看 | 欧美日本不卡 | 亚洲男人的天堂在线视频 | 91精品国产综合久久久动漫日韩 | 成人福利在线播放 | 欧美成人午夜影院 | 福利在线免费视频 | 欧美成人一二三区 | 成人免费福利视频 | 一级黄色片武则天 | 美国av免费看| 欧美黑人伦理 | 久久久久久久久久美女 | 综合图区亚洲 | xxxx欧美视频 | 欧美日韩成人一区二区 | 久久免费观看一级毛片 | 国产88久久久国产精品免费二区 | 久久精品亚洲成在人线av网址 | 一级黄色毛片播放 | 黄色大片www| 欧美激情性色生活片在线观看 | 亚洲国产精品久久久久制服红楼梦 | 伊人午夜视频 | 特片网久久 | 欧美成人理论片乱 | 国产福利视频 | av电影在线免费 | 欧美黑人伦理 | 天天色狠狠干 |