比原题水了很多(因为原题要高精度)

输出字典序前20种出栈序列。

其实是贪心题:我们每次确定一个出栈的数。

当栈里有数时,字典序显然比从后面拿数要小,所以先搜这个。

之后依次搜后面队列里的数,因为字典序依次增大。

有20个答案了就exit(0)。

然后就一遍AC了!!

 #include <cstdio>
#include <algorithm>
using namespace std;
const int N = ; int n, ans;
int l[N], r[N], d[N], tl, tr, td; void DFS(int k) {
if(k == n) {
ans++;
for(int i = ; i < n; i++) {
printf("%d", l[i]);
}
printf("%d", td ? d[td] : r[tr]);
if(ans == ) exit();
printf("\n");
return;
}
if(td) {
l[++tl] = d[td--];
DFS(k + );
d[++td] = l[tl--];
}
if(!tr) return;
int temp = tr;
l[++tl] = r[tr--];
while(tr) {
DFS(k + );
d[++td] = l[tl];
l[tl] = r[tr--];
}
DFS(k + );
/// 复原
tr = temp;
tl--;
td -= (temp - );
return;
} int main() {
scanf("%d", &n);
for(int i = n; i >= ; i--) {
r[i] = n - i + ;
}
tr = n;
DFS();
return ;
}

AC代码

最新文章

  1. [LeetCode] Search for a Range 搜索一个范围
  2. Visual C++ 的代码折叠
  3. Power BI for Office 365介绍
  4. Javac不是内部或外部指令
  5. zepto - scrollLeft
  6. C#常用功能函数小结(.NET 4.5)
  7. zjuoj 3603 Draw Something Cheat
  8. 给VPS装桌面
  9. Why Study JavaScript?
  10. Cocos2d-x内存管理解说在ios开发中
  11. 基于PDO的简易ORM
  12. 安装linux下面用来配置网络,防火墙,系统服务等设置的图形小工具Setup
  13. 【java】字节码操作技术
  14. Scala编程基础
  15. JVM自动内存管理机制——Java内存区域(下)
  16. python 实现线程安全的单例模式
  17. Unity获取插件所在目录的巧妙方法
  18. android studio 3.0 安装配置
  19. 【Java】JVM(一)、Java内存区域
  20. BZOJ 3876: [Ahoi2014]支线剧情 带下界的费用流

热门文章

  1. 五句话搞定JavaScript作用域(ES5)
  2. Form组件归类
  3. git遇到的问题 .Git: There is no tracking information for the current branch.
  4. java 中Excel的导入导出
  5. js删除数组元素
  6. vue &amp; iview
  7. TensorFlow总结
  8. linux 查看网段内所有IP
  9. SQL之CASE WHEN用法详解[1]
  10. 日历插件bootstrap-datetimepicker的使用感悟