蓝桥dfs专题

news2025/1/31 3:16:01

1、dfs + 路径打印

小明冒充X星球的骑士,进入了一个奇怪的城堡。
城堡里边什么都没有,只有方形石头铺成的地面。

假设城堡地面是 n x n 个方格。【如图1.png】所示。

这里写图片描述

按习俗,骑士要从西北角走到东南角。
可以横向或纵向移动,但不能斜着走,也不能跳跃。
每走到一个新方格,就要向正北方和正西方各射一箭。
(城堡的西墙和北墙内各有 n 个靶子)

同一个方格只允许经过一次。但不必走完所有的方格。

如果只给出靶子上箭的数目,你能推断出骑士的行走路线吗?

有时是可以的,比如图1.png中的例子。

本题的要求就是已知箭靶数字,求骑士的行走路径(测试数据保证路径唯一)

输入:
第一行一个整数N(0<N<20),表示地面有 N x N 个方格
第二行N个整数,空格分开,表示北边的箭靶上的数字(自西向东)
第三行N个整数,空格分开,表示西边的箭靶上的数字(自北向南)

输出:
一行若干个整数,表示骑士路径。

为了方便表示,我们约定每个小格子用一个数字代表,从西北角开始编号: 0,1,2,3....
比如,

图1.png中的方块编号为:

0  1  2  3
4  5  6  7
8  9  10 11
12 13 14 15


示例:
用户输入:
4
2 4 3 4
4 3 3 3

程序应该输出:
0 4 5 1 2 3 7 11 10 9 13 14 15

AC代码:

2、砝码称重

dfs过一半数据

AC代码:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.math.BigInteger;
import java.util.*;



public class Main
{
    static PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
    static int N = (int)1e6 + 10;
    static int w[] = new int[N];
    static boolean st[] = new boolean[N];

    static int n;
    static int res;

    static void dfs(int k,int sum) // 表示k个砝码,重量是sum
    {
        if(k > n) // 选完n个砝码
        {
            if(sum > 0 &&  !st[sum]) // 判断选出来的n个砝码是否没被标记过,如没标记则答案加1
            {
                res ++;
                st[sum] = true;
                return;
            }
        }
        //还没选够n个砝码
        else
        {
            dfs(k+1,sum-w[k]);//砝码放右边
            dfs(k+1,sum);//跳过,不选用当前的砝码
            dfs(k+1,sum+w[k]);//砝码放左边
        }
    }

    public static void main(String[] args ) throws IOException
    {
        n = rd.nextInt();
        for(int i = 1 ; i <= n ; i ++)  w[i] = rd.nextInt();

        dfs(0,0);

        pw.println(res);
        pw.flush();
    }
}

class rd
{
    static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    static StringTokenizer tokenizer = new StringTokenizer("");

    static String nextLine() throws IOException  { return reader.readLine(); }

    static String next() throws IOException
    {
        while (!tokenizer.hasMoreTokens())  tokenizer = new StringTokenizer(reader.readLine());
        return tokenizer.nextToken();
    }

    static int nextInt() throws IOException  { return Integer.parseInt(next()); }

    static double nextDouble() throws IOException { return Double.parseDouble(next()); }

    static long nextLong() throws IOException  { return Long.parseLong(next());}

    static BigInteger nextBigInteger() throws IOException
    {
        BigInteger d = new BigInteger(rd.nextLine());
        return d;
    }
}

class PII
{
    int x,y;
    public PII(int x ,int y)
    {
        this.x = x;
        this.y = y;
    }
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/396609.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot基础知识

1 SpringBoot简介1.1 入门官网创建SpringBoot项目&#xff1a;https://start.spring.io/快速启动SpringBoot工程&#xff1a;SpringBoot程序可以不依赖Tomcat和IDE&#xff0c;源码工程打完jar后可以直接运行。java -jar springboot_quick_start-0.0.1-SNAPSHOT.jar1.2 简介<…

OAK相机如何将yoloV5lite模型转换成blob格式?

编辑&#xff1a;OAK中国 首发&#xff1a;oakchina.cn 喜欢的话&#xff0c;请多多&#x1f44d;⭐️✍ 内容可能会不定期更新&#xff0c;官网内容都是最新的&#xff0c;请查看首发地址链接。 ▌前言 Hello&#xff0c;大家好&#xff0c;这里是OAK中国&#xff0c;我是助手…

Hadoop 使用Linux操作系统与Java熟悉常用的HDFS操作

注意看评论区获取完整代码资料 目录 一、实验目的 二、实验平台 三、实验步骤 一、实验目的 理解HDFS在Hadoop体系结构中的角色&#xff1b;熟练使用HDFS操作常用的Shell命令&#xff1b;熟悉HDFS操作常用的Java API。 二、实验平台 操作系统&#xff1a;Linux&#xff0…

运筹系列68:TSP问题Held-Karp下界的julia实现

1. 介绍 Held-Karp下界基于1tree下界&#xff0c;但是增加了点权重&#xff0c;如下图 通过梯度下降的方法找到最优的π\piπ。 这里用到的1tree有下面几种&#xff1a; 全部点用来生成最小生成树&#xff0c;再加上所有叶子结点第二短的边中数值最大的那个任意选一个点&…

Java集合进阶(一)

文章目录一、Collection1. 概述2. 常用方法3. 集合遍历4. 案例二、List1. 概述2. 特有方法3. 并发修改异常4. 列表迭代器5. 增强 for 循环6. 数据结构6.1 栈和队列6.2 数组和链表7. List 子类特点7.1 LinkedList一、Collection 集合类的特点&#xff1a;提供一种存储空间可变的…

raspberry Pi 连接蓝牙(小爱同学)

参数valueraspberry pi MOdel4B&#xff0c;4Gbbluetooth MOdel小爱同学writeTime2023年 2月11日 下午13&#xff1a;14分raspberry System ModelLinux raspberrypi 5.15.61-v8 #1579 SMP PREEMPT Fri Aug 26 11:16:44 BST 2022 aarch64 GNU/Linux 连接蓝牙 请在小爱同学app上…

Linux 网络编程(UDP模型,libevent库使用)

1.ctags的使用安装命令&#xff1a;sudo apt install exuberant-ctags要使用ctags需要在当前目录生成 tags 文件&#xff0c;可以组织目录内所有.c间函数调用关系生成方法&#xff1a;1.在项目目录下输入命令&#xff1a;ctags ./* -R2.在任意一个文件内使用 ctrlp一些快捷命令…

python入门项目06:批量处理文件

文章目录前言一、理论知识1.1 OS模块1.2 XML的解析二、使用步骤1.引入库2.创建新文件夹3文件操作4 修改文件总结前言 本文要完成的是对于较多XML文档的自动修改&#xff0c;这部分往往在大量的图像标注的修改中会使用到&#xff0c;同时也不要局限于本文中所提到的使用场景。 …

springbboot随笔

无效的源发行版问题 改springboot版本 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http:…

高校竞赛信息管理系统

摘要随着当今社会的发展&#xff0c;时代的进步&#xff0c;各行各业也在发生着变化&#xff0c;比如高校竞赛信息管理这一方面&#xff0c;利用网络已经逐步进入人们的生活。传统的高校竞赛信息管理&#xff0c;都是学生去学校查看竞赛信息然后再进行报名&#xff0c;这种传统…

linux面试高级篇

题目目录1.虚拟机常用有几种网络模式&#xff1f;请简述其工作原理或你个人的理解&#xff1f;2. Dockerfile中最常见的指令是什么&#xff1f;3.docker网络模式有哪些&#xff1f;4.Kubernetes有哪些核心组件这些组件负责什么工作&#xff1f;5. Pod是什么&#xff1f;6.描述一…

H264编码原理

1.什么是音视频&#xff1f; 比如我们下载的mp4格式&#xff08;还有rmvb、avi&#xff09;的电影 2.什么是h264&#xff1f; 对摄像头采集的每一帧视频需要进行编码&#xff0c;由于视频中存在空间和时间的冗余&#xff0c; 需要用算法来去除这些冗余。H264是专门去除这些冗…

SQL基础语句小结

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; 目录 一、SQL概述 1.简介 2.格式语法 3.SQL分类 二、DDL操作数据库 1.创建数据库 2.查询与使用 3.删除数据库 三、DDL:操作表 (1)数据类型 (2)创建表 (3)查询当前数据库的表 (4)删除表 (5)修改表 四、DML…

小鹏汽车「错失」智能化好牌

本周&#xff0c;作为小鹏品牌销售主力的P7正式迎来改款发布。3月6日&#xff0c;小鹏P7i迎来首发&#xff0c;作为P7的改款车型&#xff0c;在整车电子架构、三电系统、智能化硬件配置上都进行了全面升级。 基于和G9相同的双Orin-X计算平台两个盲区激光雷达&#xff0c;P7i实现…

RocketMQ基础篇(一)

目录一、发送消息类型1、同步消息2、异步消息3、单向消息4、顺序消费5、延迟消费二、消费模式1、集群模式2、广播模式3、消费模式扩展4、如何配置三、其他用法1、事务消息2、过滤消息1&#xff09;Tag过滤2&#xff09;SQL方式过滤源码放到了GitHub仓库上&#xff0c;地址 http…

HyperLPR3车牌识别-Android-SDK光速部署与使用

简介HyperLPR在2023年初已经更新到了v3的版本&#xff0c;该版本与先前的版本一样都是用于识别中文车牌的开源图像算法项目&#xff0c;最新的版本的源码可从github中提取&#xff1a;https://github.com/szad670401/HyperLPRHyperLPR-Android-SDK for JitPackHyperLPR3的官方源…

Prim算法和Kruskal算法到底哪个好?

Prim和Kruskal有啥区别&#xff1f;到底哪个好&#xff1f; 今天做了一道最小生成树的题&#xff0c;发现了一点猫腻&#xff01; 题目在这里 &#xff1a; 《修路问题1》 文章目录Prim和Kruskal有啥区别&#xff1f;到底哪个好&#xff1f;先说结论PrimKruskal修路问题1——…

不好!有敌情,遭到XSS攻击【网络安全篇】

XSS&#xff1a;当一个目标的站点&#xff0c;被我们用户去访问&#xff0c;在渲染HTMl的过程中&#xff0c;出现了没有预期到的脚本指令&#xff0c;然后就会执行攻击者用各种方法注入并执行的恶意脚本&#xff0c;这个时候就会产生XSS。 涉及方&#xff1a; 用户&#xff0…

Linux端安装MySQL并实现远程连接Navicat

文章目录Linux端安装MySQL&#xff08;centos版本&#xff09;Linux端安装MySQL&#xff08;centos版本&#xff09; 1、先将MySQL需要的四个rpm安装包上传上去&#xff0c;这里可以使用Xftp软件或者是通过window端使用ftp文件传输方式上传到Linux端&#xff0c;这里选择Xftp来…

基于JavaWeb学生选课系统开发与设计(附源码资料)

文章目录1. 适用人群2. 你将收获3.项目简介4.技术实现5.运行部分截图5.1.管理员模块5.2.教师模块5.3.学生模块1. 适用人群 本课程主要是针对计算机专业相关正在做毕业设计或者是需要实战项目的Java开发学习者。 2. 你将收获 提供&#xff1a;项目源码、项目文档、数据库脚本…