P6183 [USACO10MAR]The Rock Game S

输入输出样例
输入
3
输出
OOO
OXO
OXX
OOX
XOX
XXX
XXO
XOO
OOO

PS:

因为每一位只有两种可能,这里用01,有没有重复的,就可以把01转换成十进制,

看看有没有用过,知道找出所有

Java代码:90分还望大佬指点

import java.util.Scanner;

public class TheRockGame {
public static int n=0,max=0;;
public static int[] num;;
// public static int[][] result;;
public static boolean[] bool;;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n=sc.nextInt();
sc.close();
num = new int [n];
//一位的可能是2种,也就是2的n次方可能
max=1<<n;
bool = new boolean [max];
// result=new int [max+1][n];
bool[0]=true;
//第一种肯定全是O
for (int i = 0; i <n; i++) {
System.out.print('O');
}
System.out.println();
dfs(1);
}
public static void dfs(int step){
//如果是最后一步的话,肯定是O了
if(step==max){
for (int i = 0; i <n; i++) {
System.out.print('O');
}
System.out.println();
// outPut();
System.exit(0);
}
for (int i = 0; i < num.length; i++) {
//每一次只改一位的,因为我每一步只能进行一次操作
num[i]=num[i]==1?0:1;
int temp=toBinary();
//如果我当前的数被用过,就跳过
if(bool[temp]){
num[i]=num[i]==1?0:1;
continue;
}
//没有被用过的话,就记录用过
bool[temp]=true;
//输出此次的
for (int j = 0; j < n; j++) {
// System.out.print(num[j]==1?'X':'O');
// result[step][j]=num[j];
System.out.print(num[j]==1?'X':'O');
}
System.out.println();
//只有找到新的才能到下一步
dfs(step+1);
//用完了复原
bool[temp]=false;
num[i]=num[i]==1?0:1; }
}
// public static void outPut(){
// for (int i = 0; i <= bool.length; i++) {
// for (int j = 0; j < n; j++) {
// System.out.print(result[i][j]==1?'X':'O');
// }
// System.out.println();
//
// }
// }
//从二进制转换过来
public static int toBinary(){
int sum=0;
for (int i = 0; i <n; i++) {
sum=sum*2+num[i];
}
return sum;
}
}

Java实现 洛谷 P6183 [USACO10MAR]The Rock Game S(DFS)的更多相关文章

  1. Java实现 洛谷 P3916 图的遍历(反向DFS+记忆化搜索)

    P3916 图的遍历 输入输出样例 输入 4 3 1 2 2 4 4 3 输出 4 4 3 4 import java.io.BufferedReader; import java.io.IOExce ...

  2. Java实现 洛谷 Car的旅行路线

    输入输出样例 输入样例#1: 1 3 10 1 3 1 1 1 3 3 1 30 2 5 7 4 5 2 1 8 6 8 8 11 6 3 输出样例#1: 47.5 import java.util. ...

  3. Java实现 洛谷 P1738 洛谷的文件夹

    题目描述 kkksc03是个非凡的空想家!在短时间内他设想了大量网页,然后总是交给可怜的lzn去实现. 洛谷的网页端,有很多文件夹,文件夹还套着文件夹. 例如:/luogu/application/c ...

  4. Java实现洛谷 P1428 小鱼比可爱

    题目描述 人比人,气死人:鱼比鱼,难死鱼.小鱼最近参加了一个"比可爱"比赛,比的是每只鱼的可爱程度.参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只 ...

  5. 洛谷 P2986 [USACO10MAR]伟大的奶牛聚集Great Cow Gat…(树规)

    题目描述 Bessie is planning the annual Great Cow Gathering for cows all across the country and, of cours ...

  6. 【题解】洛谷P1514 [NOIP2010TG] 引水入城(DFS+DP)

    次元传送门:洛谷P1514 思路 可以证明如果有解 那么每个蓄水池可以覆盖到的干旱区必定是线段 证明: 举个栗子 8 9 8 7 9 7 6 9 6 明显到不了中间的点 如果不是连续的线段 中间肯定有 ...

  7. 【题解】洛谷P2296 [NOIP2014TG] 寻找道路(SPFA+DFS)

    题目来源:洛谷P2296 思路 一开始看还以为是一道水题 虽然本来就挺水的 本道题的难点在于如何判断是否路径上的点都会直接或者间接连着终点 我们需要在一开始多建一个反向图 然后从终点DFS回去 把路径 ...

  8. 洛谷P1242 新汉诺塔(dfs,模拟退火)

    洛谷P1242 新汉诺塔 最开始的思路是贪心地将盘子从大到小依次从初始位置移动到目标位置. 方法和基本的汉诺塔问题的方法一样,对于盘子 \(i\) ,将盘子 \(1\to i-1\) 放置到中间柱子上 ...

  9. 洛谷 P2986 [USACO10MAR]Great Cow Gat…(树形dp+容斥原理)

    P2986 [USACO10MAR]伟大的奶牛聚集Great Cow Gat… 题目描述 Bessie is planning the annual Great Cow Gathering for c ...

随机推荐

  1. 【MySQL基础总结】索引的使用

    索引的使用 概述 1.索引由数据库中一列或多列组合而成,其作用是提高对表中数据的查询速度 2.索引的优点是可以提高检索数据的速度 3.缺点是创建和维护索引需要耗费时间 4.所以索引可以提高查询速度,减 ...

  2. css3的 calc属性无效问题解决

    css3的 calc:计算属性. 运算符两边需要加空格,才有效. 错误示例:.mystyle{width:calc(100%-25px)}这样是不生效的 运算符"+ - * /"左 ...

  3. Scala 中 Any 类源码

    package scalaabstract class Any { def equals(that: Any): Boolean //值比较 def hashCode(): Int //hash值 d ...

  4. 桥接模式(c++实现)

    外观模式 目录 外观模式 模式定义 模式动机 UML类图 源码实现 优点 缺点 总结 模式定义 桥接模式(Bridge),将抽象部分与它的实现部分分离,使他们都可以独立的变化.什么叫抽象与他的实现分离 ...

  5. k8s搭建实操记录干货二(node)

    #注:172.16.110.111为master,172.16.110.112\114为node1\node2(kubeadm join部分要等master完成后手工操作,其它可执行本脚本一键安装) ...

  6. doxygen+graphviz轻松绘制函数调用图(call graph)

    前言 之前的工作环境习惯了使用source insight查看函数分析代码,切换到mac下后改用vscode,发现缺少函数调用关系图生成.跨平台的understand可以很好的解决,但是公司没有购买, ...

  7. 201771010128王玉兰《面向对象程序设计(Java)》第十周学习总结

    第一部分:理论知识部分总结: (1) 定义简单泛型类: A:泛型:也称参数化类型(parameterizedtype),就是在定义类.接口和方法时,通过类型参数指 示将要处理的对象类型. B:泛型程序 ...

  8. LightOJ1336

    题目大意: 给你一个 n ,求出 1 到 n 中有多少个数的因数和为偶数. 解题思路: 可以先求出因数和为奇数的数字的个数. 由算术基本定理我们可以得到:N=P1a1P2a2P3a3 … Pnan, ...

  9. 一篇文教你使用python Turtle库画出“精美碎花小清新风格树”快来拿代码!

    Turtle库手册可以查询查询 python图形绘制库turtle中文开发文档及示例大全,手册中现有示例,不需要自己动手就可以查看演示. 使用Turtle画树,看了一下网上的代码,基本上核心的方法是使 ...

  10. python基础:list与string互转

    数据清洗必备技能 https://www.cnblogs.com/yaner2018/p/11162630.html