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