算法竞赛入门经典:第七章 暴力求解法 7.9位向量法
来源:互联网 发布:棋牌类算法 编辑:程序博客网 时间:2024/06/05 23:41
/*位向量法:构造一个位向量B[i],而不是直接构造子集A本身,其中B[i] = 1当且仅当i在子集A中。注意:此题不是求排列,而是求子集,这里n个元素有2^n-1个子集,因为空集无法打印出来输入:3输出:0 1 20 10 201 212*//*关键:1 if(pos == n)//凡是递归,先写递归出口,否则若写在后面,很容易漏掉,所有元素是否选择确定完毕后才是一个完整的子集,因此是if(pos == n)才输出2 if(iArr[i])//确保i在子集iArr中{//printf("%d ",iArr[i]);//打印当前值集合printf("%d ",i);}printf("\n");//别忘了打印换行3 return ;//如果这里不返回,那么pos会一直大于n,走下去4 iArr[pos] = 1;//将当前元素放进去,0 1 2.解答树上是2^n-1个节点,因为不分解(不完整的解)也是解答树上的节点printPermutation(n,iArr,pos+1);iArr[pos] = 0;//将当前元素取出,0 1printPermutation(n,iArr,pos+1);*/#include <stdio.h>#include <stdlib.h>#define MAXSIZE 1024void printPermutation(int n,int *iArr,int pos){if(pos == n)//凡是递归,先写递归出口,否则若写在后面,很容易漏掉,所有元素是否选择确定完毕后才是一个完整的子集,因此是if(pos == n)才输出{for(int i = 0 ; i < n; i++){if(iArr[i])//确保i在子集iArr中{//printf("%d ",iArr[i]);//打印当前值集合printf("%d ",i);}}printf("\n");//别忘了打印换行return ;//如果这里不返回,那么pos会一直大于n,走下去}iArr[pos] = 1;//将当前元素放进去,0 1 2.解答树上是2^n-1个节点,因为不分解(不完整的解)也是解答树上的节点printPermutation(n,iArr,pos+1);iArr[pos] = 0;//将当前元素取出,0 1printPermutation(n,iArr,pos+1);}int main(int argc,char* argv[]){int n;scanf("%d",&n);int iArr[MAXSIZE];printPermutation(n,iArr,0);system("pause");return 0;}
0 0
- 算法竞赛入门经典:第七章 暴力求解法 7.9位向量法
- 《算法竞赛入门经典》-【第七章:暴力求解法】-7.4:回溯法
- 算法竞赛入门经典:第七章 暴力求解法 7.11回溯法
- 算法竞赛入门经典第七章暴力求解法7.1节第一题
- 算法入门竞赛经典第七章暴力求解法7.1.1
- 《算法竞赛入门经典》-【第七章:暴力求解法】-7.2:枚举排列
- 《算法竞赛入门经典》-【第七章:暴力求解法】-7.3:子集生成
- 算法竞赛入门经典:第七章 暴力求解法 7.1除法
- 算法竞赛入门经典:第七章 暴力求解法 7.2最大乘积
- 算法竞赛入门经典:第七章 暴力求解法 7.3分数拆分
- 算法竞赛入门经典:第七章 暴力求解法 7.4双基回文数
- 算法竞赛入门经典:第七章 暴力求解法 7.5枚举排列
- 算法竞赛入门经典:第七章 暴力求解法 7.6可重复的排列
- 算法竞赛入门经典:第七章 暴力求解法 7.7解答树
- 算法竞赛入门经典:第七章 暴力求解法 7.8子集生成
- 算法竞赛入门经典:第七章 暴力求解法 7.10 二进制法
- 算法竞赛入门经典:第七章 暴力求解法 7.13困难的串
- 算法竞赛入门经典:第七章 暴力求解法 7.16埃及分数
- 【纵横科技】前端 三种 表单验证 有图哦
- win2012部署asp网站相关
- 快速打开hosts
- 串口之GetCommState、SetCommState函数详解
- HDU 1869 六度分离 dijkstra&&dsfa
- 算法竞赛入门经典:第七章 暴力求解法 7.9位向量法
- Function调用PropUtil读取配置文件数据
- arm底板中linux程序的运行
- 百度编辑器umeditor使用总结
- Win7 VNC远程连接Centos桌面
- unix网络编程几种模型比较
- HTML网页设计——01
- 回到梦想开始的地方——致我的ACM
- 算法竞赛入门经典:第七章 暴力求解法 7.10 二进制法