** 排座位**

要安排:3个A国人,3个B国人,3个C国人坐成一排。

要求不能使连续的3个人是同一个国籍。

求所有不同方案的总数?

参考答案:

283824

public class Main1 {

    public static int count = 0;

    public void swap(int[] A, int a, int b) {
int temp = A[a];
A[a] = A[b];
A[b] = temp;
} public void dfs(int[] A, int step) {
if(step == A.length) {
if(check(A))
count++;
return;
} else {
for(int i = step;i < A.length;i++) {
swap(A, i, step);
dfs(A, step + 1);
swap(A, i, step);
}
}
return;
} public boolean check(int[] A) {
for(int i = 2;i < A.length;i++) {
if(A[i] == A[i - 1] && A[i] == A[i - 2])
return false;
}
return true;
} public static void main(String[] args) {
Main1 test = new Main1();
int[] A = {1,1,1,2,2,2,3,3,3};
test.dfs(A, 0);
System.out.println(count);
}
}

最新文章

  1. MVC中RenderBody的工作原理
  2. 常用MySQL命令整理
  3. iOS开发——UI进阶篇(十七)CALayer,核心动画基本使用
  4. 【Oracle】使用Oracle的v$sql视图查看近段时间执行的SQL语句
  5. NXP开源自动驾驶计算平台Bluebox 打造现实无人汽车
  6. 九度OJ 1531 货币面值(网易游戏2013年校园招聘笔试题) -- 动态规划
  7. python入门安装
  8. html5本地存储web storage的简单使用
  9. mysqldump 利用rr隔离实现一致性备份
  10. SimpleDateFormat 的线程安全问题与解决方式
  11. LinkCode 下一个排列、上一个排列
  12. checkstyle.xml Code Style for Eclipse
  13. SQLite multiple threads
  14. python tkinter-布局
  15. 异步IO(协程,消息循环队列)
  16. dp练习(0)——数字三角形
  17. leetcode Two Sum II - Input array is sorted &lt;面试常考题&gt;
  18. 装饰器模式(Decorator)
  19. 获取指定包名下继承或者实现某接口的所有类(扫描文件目录和所有jar)
  20. 含html转义字符编码(&amp;#22235;)转换--python

热门文章

  1. Python 简明教程 --- 0,前言
  2. JS理论-跨域解决方案
  3. sqli-labs之Page-2
  4. Unity3D的UGUI布局锚点自动绑定关系
  5. Template模式C++实现
  6. 复习MintUI
  7. 愉快地使用Open Live Writer写博客
  8. sql 判断 表 视图 存储过程 存在 然后 删除
  9. 如何覆盖elementUI样式
  10. 都说变量有七八种,到底谁是 Java 的亲儿子