亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

組合問題的一般C++解法

2019-11-08 02:24:42
字體:
來源:轉載
供稿:網友

很多問題都可以歸結為組合問題:即C(n,m)---從n個元素中取m個,保存所有組合情況。

組合問題與排列問題不應該混為一談,排列需要考慮所取元素的放置順序,而組合問題則不考慮。

STL中提供的next_permutation解決的是排列問題,而且是全排列問題,即n個元素取出所有元素進行排列。

本篇記錄一般性組合問題的C++實現。

1.對于m較小的情況(通常3以下)可以直接枚舉:

比如C(5,3)直接枚舉即三重循環:

		for(int i=0;i<n;i++){			for(int j=i+1;j<n;j++){				for(int k=j+1;k<n;k++){					cout<<data[i]<<" "<<data[j]<<" "<<data[k]<<endl;				}			}		}2.對于m較大時,枚舉循環重數過大,可采用遞歸實現一般性的組合函數:

//組合問題C(n,m):n個元素中取m個,保存所有組合情況void combine(int data[],int n,int m,int temp[],const int M,vector<vector<int> > &vec_res){	for(int i=n; i>=m; i--)   // 注意這里的循環范圍	{		temp[m-1] = i - 1;		if (m > 1)		    combine(data,i-1,m-1,temp,M,vec_res);		else                     // m == 1, 輸出一個組合		{			vector<int > vec_temp;		    for(int j=M-1; j>=0; j--){				vec_temp.push_back(data[temp[j]]);		    }		    vec_res.push_back(vec_temp);		}	}}網上的做法是直接打印結果,為方便使用,對其進行修改,加入結果集參數vec_res,作為二維動態數組的引用,存儲所有的組合情況,便于提取進一步處理。main中調用方法如下:

		vector<vector<int> > vec_res;		int *data=new int[n];		int *temp=new int[m];		for(int i=0;i<n;i++){			data[i]=i+1;//測試數據為1...n		}		combine(data,n,m,temp,m,vec_res);		for(auto temp:vec_res){			for(auto e:temp){				cout<<e<<" ";			}			cout<<endl;		} 測試結果如圖:

為方便和排列問題比較,調用STL的排列算法,打印1,2,3序列的全排列輸出:

		//對比全排列問題		sort(data,data+n);		for(int i=0;i<n;i++)			cout<<data[i]<<" ";		while(next_permutation(data,data+n)){			for(int i=0;i<n;i++){				cout<<data[i]<<" ";			}			cout<<endl;		}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人日韩av在线| 久久影视电视剧免费网站清宫辞电视| 中文字幕一区二区精品| 欧美高清视频在线播放| 亚洲美女在线看| 久久久精品日本| 日韩有码视频在线| 成人国产精品久久久久久亚洲| 午夜伦理精品一区| 91久久久久久久久| 亚洲国产小视频在线观看| 日韩视频第一页| 欧美在线视频观看免费网站| 亚洲男人天堂2019| 久久精品国产99国产精品澳门| 欧美在线视频观看免费网站| 欧美日韩一区二区在线播放| 俺去亚洲欧洲欧美日韩| 久久久久久久影院| 国产成+人+综合+亚洲欧美丁香花| 日韩久久精品成人| 欧美亚洲伦理www| 夜夜嗨av色一区二区不卡| 国产精品揄拍一区二区| 日韩中文字幕在线播放| 亚洲自拍在线观看| 中文字幕日韩av综合精品| 国产亚洲精品日韩| 色噜噜久久综合伊人一本| 亚洲成色777777女色窝| 国产精品久久久久久久久男| 国产免费一区二区三区在线观看| 亚洲一区999| 97超级碰碰碰久久久| 精品国内产的精品视频在线观看| 国产精品色午夜在线观看| 亚洲自拍高清视频网站| 亚洲欧美福利视频| 国产精品免费视频久久久| 国产精品视频成人| 在线观看国产精品日韩av| 中文字幕最新精品| 欧美一级大片在线免费观看| 国产精品视频专区| 久久久久久久久久久网站| 亚洲国产精品嫩草影院久久| 色偷偷av亚洲男人的天堂| 青草青草久热精品视频在线观看| 亚洲国产成人爱av在线播放| 欧洲亚洲女同hd| 91丨九色丨国产在线| 精品国产欧美一区二区五十路| 欧美极品少妇与黑人| 中文字幕亚洲激情| 中文字幕一精品亚洲无线一区| 亚洲欧美日韩中文在线| 欧美日韩国产一区在线| 国产精品96久久久久久又黄又硬| 国产999精品| 国产福利精品在线| 亚洲成人久久网| 欧洲中文字幕国产精品| 亚洲自拍偷拍区| 色av中文字幕一区| 成人激情视频免费在线| 欧美黄色成人网| 国产成人精品国内自产拍免费看| 亚洲国产精品久久久| 国产伦精品一区二区三区精品视频| 欧美激情久久久久久| 91精品久久久久久久久中文字幕| 日韩av在线网站| 亚洲欧美日韩精品久久奇米色影视| 国产97人人超碰caoprom| 欧美日韩在线视频一区二区| 欧美电影免费看| 国产精品网红福利| 国产不卡在线观看| 欧美成人中文字幕| 亚洲黄色片网站| 91色琪琪电影亚洲精品久久| 97在线视频国产| 主播福利视频一区| 欧美日韩中文字幕在线| 中文字幕日韩视频| 欧洲日韩成人av| 国产精品对白刺激| 国产精彩精品视频| 国产日韩精品一区二区| 68精品久久久久久欧美| 欧美在线视频观看免费网站| 欧美一级在线亚洲天堂| 2019中文字幕免费视频| 国模视频一区二区| 7m精品福利视频导航| 亚洲精品xxx| 超碰日本道色综合久久综合| 狠狠做深爱婷婷久久综合一区| 国产精品嫩草视频| 欧美在线观看一区二区三区| www亚洲欧美| 日韩欧美在线中文字幕| 欧美激情日韩图片| 国产精品日韩精品| 在线电影av不卡网址| 在线亚洲午夜片av大片| 成人性生交大片免费看小说| 欧美性极品xxxx做受| 成人羞羞国产免费| 欧美性猛交xxxxx水多| 91国自产精品中文字幕亚洲| 亚洲黄页网在线观看| 日韩高清免费在线| 亚洲美女又黄又爽在线观看| 欧美有码在线观看视频| 日韩精品999| 国产一区二区三区欧美| 91欧美日韩一区| 久久99久久亚洲国产| 国产做受69高潮| 91精品国产综合久久男男| 欧美一区在线直播| 国产精品日本精品| 国产一区二区三区视频在线观看| 亚洲国产精品人人爽夜夜爽| 欧美另类极品videosbestfree| 亚洲精品乱码久久久久久金桔影视| 亚洲精品视频在线播放| 中文字幕日韩在线视频| 成人激情在线观看| 亚洲精品不卡在线| 亚洲女人被黑人巨大进入| 亚洲最大成人在线| 国产精品无av码在线观看| 日韩欧美精品免费在线| 亚洲一区二区三区xxx视频| 久久久久久久久久久亚洲| 日韩欧美在线视频日韩欧美在线视频| 久久精品国产亚洲精品2020| 久久久中精品2020中文| 18一19gay欧美视频网站| 国产精品视频999| 国产mv久久久| 高清欧美性猛交| 91久久精品视频| 欧美专区第一页| 色悠悠久久久久| 4438全国亚洲精品在线观看视频| 久久久久免费精品国产| 另类天堂视频在线观看| 欧美精品免费在线观看| 久久人91精品久久久久久不卡| 国产精品国语对白| 国产欧美精品一区二区三区介绍| 亚洲网站视频福利| 欧美性xxxx极品hd满灌| 亚洲激情小视频| 精品国产一区久久久| 97久久久免费福利网址| 自拍偷拍亚洲区| 亚洲a∨日韩av高清在线观看| 国产精品久久久久一区二区| 国产欧美婷婷中文| 亚洲国产成人91精品|