洛谷 P1706. 全排列问题---关于next_permutation函数的使用
1.一元三次方程求解 --- 二分 划分区间的思想2.洛谷 P2249. 查找 --- 最基本的二分+lower_bound()写法3.牛客 小白月赛90. E----小A的任务 (优先队列 (大根堆)+ 枚举) 见识了不开longlong的后果4.牛客 小白月赛90. D---小A的线段 dfs+差分数组优化5.洛谷 P1101. 单词方阵 --- dfs6.洛谷 P1019. 单词接龙 --- dfs搜索 较为复杂的预处理情况 建议复习7.洛谷 P1433. 吃奶酪 --- 状态压缩dp -- 保留x位小数的方式8.洛谷 P1605. 迷宫 --- dfs9.AcWing 5566. 盖楼 -- 二分 + 容斥原理10.洛谷 P1443. 马的遍历 ---BFS 广度搜索板子题11.洛谷 P1219. 八皇后--dfs两种写法12.洛谷 P2036. PERKET -- 使用dfs 注意这题dfs的思路 很有特点13.洛谷 P3799. 小Y拼木棒 --- 排列与组合数的表示 暴力枚举14.洛谷 P1149. 火柴棒等式 ---思路很重要 利用枚举和搜素两种方式15.AcWing 896. 最长上升子序列 II16.AcWing 5565. 残垣断壁 -- bfs模板题 填涂颜色17.AcWing 1010. 拦截导弹----最长上升子序列的衍生应用 --图示分析18.AcWing 13-B-blank2. 13- B-填空第二题 顺子日期--关于利用find()查找字符串19.洛谷 P1217. 回文质数---关于暴力枚举如何优化的问题20.洛谷 P3654. First step -- 分别在行和列 暴力枚举的应用21.洛谷 P3392. 涂条纹---前缀和优化22.洛谷 P1088. P1088 [NOIP2004 普及组] 火星人 -- 对next_permutation的熟练使用
23.洛谷 P1706. 全排列问题---关于next_permutation函数的使用
24.洛谷 P1157. 组合的输出---dfs25.洛谷 P1036. 选数 -- dfs搜索26.洛谷 P1618. 三连击 --dfs和next_permutation函数两种方法27.洛谷 P2089. 烤鸭--暴力枚举与搜索28.洛谷 P2241. P2241 统计方形---暴力枚举29.AcWing 4404. X 进制减法 --- 关于每一位权重计算的详细解释30.AcWing 4403. 修剪灌木31.AcWing 14-B-blank2. 蓝桥杯填空第二题01串的熵32.AcWing 14-B-blank1. 蓝桥杯填空第1题--日期统计33.AcWing 4402. 刷题统计34.AcWing 5563. 自定义字典序----拓扑排序35.洛谷 P2392. kkksc03考前临时抱佛脚 -- 01背包变形 但思路很难想到 以及法二dfs深搜36.洛谷 P1064. P1064 [NOIP2006 提高组] 金明的预算方案37.洛谷 P3842. P3842 [TJOI2007] 线段38.洛谷 P1077. 摆花 --多重背包变形39.洛谷 P1164. 小A点菜40.洛谷 P1616. 疯狂的采药41.洛谷 P1049. P1049 [NOIP2001 普及组] 装箱问题42.AcWing 4961. 整数删除---双向链表 堆43.AcWing 5562. 最大生产----二分44.洛谷 P1002. P1002 [NOIP2002 普及组] 过河卒45.洛谷 P1802. 5 倍经验日--01背包变形46.洛谷 P1115. 最大子段和47.洛谷 P4017. P4017 最大食物链计数 -- 拓扑排序48.AcWing 1011. 挖地雷 -- dp49.AcWing 4960. 子串简写---二分50.AcWing 4959. 岛屿个数 以及其模板题 luoguP1162填涂颜色51.AcWing 4957. 飞机降落 -- dfs52.AcWing 4956. 冶炼金属 ---利用二分查找 容易理解的方法53.AcWing 898. 数字三角形54.AcWing 5. 多重背包问题 II55.AcWing 850. Dijkstra求最短路 II56.AcWing 846. 树的重心57.AcWing 844. 走迷宫58.AcWing 3302. 表达式求值59.AcWing 802. 区间和60.染色法判定二分图61.二分图的最大匹配(匈牙利算法)62.欧拉函数63.筛法求欧拉函数64.扩展欧几里得算法65.线性同余方程66.区间选点(贪心)67.牛客小白月赛9468.AcWing1027全排列问题
题目描述
按照字典序输出自然数
输入格式
一个整数
输出格式
由
每个数字保留
样例 #1
样例输入 #1
3
样例输出 #1
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
提示
题解
在algorithm
库中的next_permutation
函数可以很好解决这类排列问题
一定要记住他的使用模板
do{
for (int i = 1; i <= n; i ++ )
cout << a[i] << " ";
cout << endl;
}while (next_permutation(a + 1, a + n + 1));
来自 https://blog.csdn.net/weixin_52115456/article/details/127626074
如果我们需要自定义排序方式
就需要自定义一个bool函数放入next_permutation里面
如图
来自 https://blog.csdn.net/howardemily/article/details/68064377
本题全排列代码
#include <bits/stdc++.h>
using namespace std;
int a[20];
int main()
{
int n;
scanf("%d", &n);
for (int i = 1; i <= n; i ++ ) a[i] = i;
do{
for (int i = 1; i <= n; i ++ )
cout << setw(5) << a[i];
cout << endl;
}while (next_permutation(a + 1, a + n + 1));
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次 .NET某固高运动卡测试 卡慢分析
· 微服务架构学习与思考:微服务拆分的原则
· 记一次 .NET某云HIS系统 CPU爆高分析
· 如果单表数据量大,只能考虑分库分表吗?
· 一文彻底搞懂 MCP:AI 大模型的标准化工具箱
· 7 个最近很火的开源项目「GitHub 热点速览」
· 博客园2025新款「AI繁忙」系列T恤上架
· DeepSeekV3:写代码很强了
· 记一次 .NET某固高运动卡测试 卡慢分析
· Avalonia跨平台实战(二),Avalonia相比WPF的便利合集(一)