题目要求

题目链接

分析

其实应该用DFS啦,打表还是免了,9!9!9!警告。

怎么搜呢?一个boolean数组+一个int数组,int数组按顺序存每一位的数值,boolean数组的index对应实际数值,而true表示已被使用。

一旦搜到的used[i]是true,那就剪枝,确实没有搜的必要了。

AC代码(Java语言描述)

import java.util.Scanner;public class Main {private static StringBuilder result = new StringBuilder();private static int num;private static int[] sequence;private static boolean[] used;private static void dfs(int k) {if (k == num) {for (int j = 1; j <= num; j++) {result.append(' ').append(' ').append(' ').append(' ').append(sequence[j]);}result.append('\n');return;}for (int i = 1; i <= num; i++) {if (!used[i]) {used[i] = true;sequence[k+1] = i;dfs(k+1);used[i] = false;}}}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);num = scanner.nextInt();scanner.close();sequence = new int[num+1];used = new boolean[num+1];dfs(0);System.out.print(result);}}

全排列问题(洛谷P1706题题解,Java语言描述)相关推荐

  1. 线性存储的最短平均检索时间(洛谷P1253题题解,Java语言描述)

    题目要求 P1253题目链接 分析 很像 ~洛谷P1223题题解~,也是一种类似SJF的贪心法. 排个序,由于两个不大于10000的数,乘起来还是int,就使用int属性吧. 数据量小,所以Scann ...

  2. 队列模拟约瑟夫问题(洛谷P1996题题解,Java语言描述)

    题目要求 P1996题目链接 分析 以前就研究过"约瑟夫环"问题: <单循环链表求解约瑟夫环问题(Java语言描述)> <杀人游戏~约瑟夫环(洛谷P1145题题解 ...

  3. 枚举求解单词方阵(洛谷P1101题题解,Java语言描述)

    题目要求 P1101题目链接 分析 可以用DFS做,但我立下了个Flag,所以就用了朴素的枚举来做.... 结果,我的天哪,做了好几个小时-- 其实这种地图题,真的适合 DFS or BFS or D ...

  4. 快速幂||取余运算【模板】(洛谷P1226题题解,Java语言描述)

    题目要求 P1226题目链接 分析 标准的快速幂取模算法板子,之前这个算法我在这篇文章中讲过了:<快速幂算法详解&&快速幂取模算法详解>. 这里选择使用比较简单的API实现 ...

  5. 贪心策略摘果子(洛谷P1478题题解,Java语言描述)

    题目要求 P1478题目链接 分析 本题的低配版题目链接 → 题解 那个题就是纯水题没啥可写的,我除了贴代码无话可说,但这题吧,虽然不算难,但也可一说. 建议大家移步这里 → 精辟题解 这位爷写了本题 ...

  6. 麦森数(洛谷P1045题题解,Java语言描述)

    题目要求 题目链接 分析 这题挺经典的,快速幂取模算法,如果求出大数再取模就可能T掉. 之前有篇文章写了这个算法:<快速幂算法详解&&快速幂取模算法详解> 既然是Java, ...

  7. 求子集元素之和(洛谷P2415题题解,Java语言描述)

    题目要求 P2415题目链接 分析 这题我觉得--当个数学题做就好了嘛. 有一个数N的情况:result = 1 * N 有两个数N1.N2的情况:result = 2 * (N1+N2) 有三个数N ...

  8. N进制正反累加判回文数(洛谷P1015题题解,Java语言描述)

    题目要求 P1015题目链接 分析 开始的时候写了这么一个代码,应该是比较基础的,是十进制的. private static void low() {Scanner scanner = new Sca ...

  9. 试试把OJ题意抽象成物理模型(洛谷P1007题题解,Java语言描述)

    题目要求 P1007题目链接 分析 这题干出的,真有毒... 要是有这种指挥官,也是醉了... 言归正传,这题其实是可以贪心求解的,但我们还可以更加666... 事实上,题干上面那一大篇基本在扯,关键 ...

最新文章

  1. java数据类型转化_JAVA基本数据类型及其转换
  2. 知识图谱前沿跟进,看这篇就够了,Philip S. Yu 团队发布权威综述,六大开放问题函待解决!...
  3. 有关绑定没有数据显示的问题
  4. 【Spark篇】---Spark初始
  5. 2011年 CIO简历该怎么写?
  6. WinPcap过滤串表达式的语法
  7. java web开发问题集合
  8. 分享Silverlight/WPF/Windows Phone一周学习导读(12月13日-12月19日)
  9. MyEclipse下JDBC-MySQL配置总结
  10. Win10如何删除3D对象文件夹
  11. CNCC2018 即将开幕,报名优惠截止倒计时5天!
  12. 苹果mac视觉效果和动态图形设计软件:After Effects 2022 (ae 2022)
  13. 单片机的c语言程序设计显示12,12手把手教你学单片机的C语言程序设计中断服务函数.pdf...
  14. JavaScript 浏览器端 this的指向性问题
  15. 平面设计分析之图形创意解析
  16. 如何使用《背景音乐提取器》提取歌曲中的伴奏
  17. SQL查询cross join 的用法(笛卡尔积)
  18. charles的简介、安装、破解及使用教程
  19. MSM全处理器深度解析
  20. Java radius源码_Java开发的radius server服务端

热门文章

  1. [知了堂学习笔记]_网络基础知识_1.OSI参考模型(网络七层协议)
  2. 数据挖掘初次接触!学习代码
  3. Intellij idea添加单元测试工具
  4. rails log_level
  5. linux开启ssh服务,实现ssh远程登录
  6. VS Code编译Python
  7. 遍历Map keySet和entrySet
  8. 台达伺服电机选型手册_机械加工工艺师手册_打包下载
  9. input只能输入数字_Python基础第一个案例:猜数字游戏,这个都写不出,那就放弃吧...
  10. java 多线程两种方式_JAVA多线程实现的两种方式