![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
模板
总结适合自己的模板
weixin_45655404
这个作者很懒,什么都没留下…
展开
-
模板 n个数中任意m个数的组合
一个包含n个元素的集合,它的子集有2^n 个 可以用二进制的方法进行直观的表示 每个1代表这个对应子集中某个数的状态,代表它在这个子集中出现过 子集的总数是2^n个也能很好的理解,每个位置有两种可能的情况1,0,分别代表这个元素在这个子集中出现或者不出现两种情况 如何确定子集中的数字出现的次数 使用 kk=kk&(kkk-1) 这个操作是消除二进制中1的个数,每操作一次就代表有一个元素 #include <bits/stdc++.h> using namespace std; voi原创 2021-04-26 20:05:27 · 57 阅读 · 0 评论 -
模板 全排列
利用递归求解全排列的思路: 第一层:让第一个数不同,得到n个数列,办法是第一个数和后面的每个数进行交换 这样做的n个数列,只要第一个数不同,不管后面的n-1个数怎么排列,这n个数列都不同 第二层:在上面的每个数列中去掉第一个数,对后面的n-1个数进行类似的排列 。。。 重复以上步骤,直到用完所有数字 即: begin==end #include <bits\stdc++.h> using namespace std; #define Swap(a,b) {int t=a; a=b; b=t;}原创 2021-04-26 18:32:08 · 66 阅读 · 0 评论