NYOJ-组合数
2016-02-12 17:19
417 查看
NYOJ-组合数
本来思路是dfs,不过可以利用C++的STL可以解决
C++ STL
#include<cstdio> #include<algorithm> #include<iostream> using namespace std; int n, r; bool isD(string s) { char c1 = s[0]; for (int i = 1; i < r; i++) { if (c1 < s[i]) return false; c1 = s[i]; } return true; } int main() { //freopen("in.txt", "r", stdin); string s1; scanf("%d%d", &n, &r); for (int i = n; i > 0; i--) { s1 += '0' + i; } string s2; while(prev_permutation(s1.begin(), s1.end())) { if (isD(s1) && s2 != s1.substr(0, r)){ s2 = s1.substr(0, r); cout << s2 << endl; } } return 0; }
dfs
#include<cstdio> #include<cstdlib> int box[11], book[11], n; void dfs(int step, int count) { if (count >= n+1) { for (int i = 0; i < n; i++) { printf("%d",box[i]); } puts(""); if (box[0] == n) exit(-1); return; } // 尝试处理每一种可能 for (int i = step; i > 0; i--) { box[count-1] = step--; dfs(step, count+1); } } int main() { // freopen("in.txt","r",stdin); //从in.txt 中读入数据 int m; scanf("%d%d", &m, &n); dfs(m, 1); return 0; }
相关文章推荐
- tomcat-闪退和启动两个tomcat解决方法
- 设计模式(四)简单工厂模式
- 设计模式(四)简单工厂模式
- 设计模式之简单工厂模式
- Oracle Restart可以用来给Oracle GoldenGate 做 High Availability 使用么?
- 迭代器
- 后缀平衡树 nbut1653 String in the tree
- ElasticSearch初步学习,创建索引(入门一)
- python中List添加元素的几种方法
- hdu--2089(打表)
- 类装载器读取properties资源文件
- macbook安装mysql
- 51 nod 1130 N的阶乘的长度 V2(斯特林近似)
- nyoj301 递推求值(矩阵快速幂)
- 【设计模式】2、生成器模式(建造者模式)
- c++ string 用法总结
- QT的Meta-Object系统
- 需要经常看的故事
- vs2013连接mysql mysql_init未定义
- Android TV Studuy1-2