第二十一周代码(java + DFS/BFS)

2024/03/04        周一

路径之谜

题目链接

【参考代码】

dfs剪枝

#include <iostream>
#include <vector>
using namespace std;

int n;
int dx[] = {-1, 0, 1, 0}, dy[] = {0, 1, 0, -1};
bool visit[21][21] = {false};
int north[21], west[21];
vector<int> path;
bool flag = false;

void pathAddBlockNumber(int x, int y)
{
    path.push_back(x * n + y);
}

bool check()
{
    for(int i=0;i<n;i++)
    {
        if(north[i] != 0 || west[i] != 0)
            return false;
    }
    return true;
}

void dfs(int startx, int starty)
{ 
    if(north[starty] < 0 || west[startx] < 0) //剪枝,错误类型
        return;
    if(startx == n-1 && starty == n-1 && check()) //结束条件
    { //打印路径
        for(int i=0; i<path.size(); i++)
        {
            printf("%d ", path[i]);
        }
        return;
    }
    
    for(int i=0;i<4;i++)
    {
        int nowx = startx + dx[i];
        int nowy = starty + dy[i];
        if(visit[nowx][nowy] || nowx < 0 || nowx >= n || nowy < 0 || nowy >= n)
            continue;
        visit[nowx][nowy] = true;
        north[nowy]--, west[nowx]--;
        pathAddBlockNumber(nowx, nowy);

        dfs(nowx, nowy);
        visit[nowx][nowy] = false;
        north[nowy]++, west[nowx]++;
        path.pop_back();
    }
}

int main()
{
  scanf("%d", &n);
  //cin>>n;
  for(int i=0;i<n;i++)
  {
      scanf("%d", &north[i]);
  }
  for(int i=0;i<n;i++)
  {
      scanf("%d", &west[i]);
  }
  north[0]--,west[0]--; //(0,0)处的计数值先各减1 
  visit[0][0] = true; //(0,0)已访问 
  path.push_back(0); //路径加入0这个点
  dfs(0, 0);
  return 0;
}

2024/03/05        周二

P1025 [NOIP2001 提高组] 数的划分

题目链接

【参考代码】

#include <iostream>
using namespace std;

int count = 0;
int n, k;

//后一个数必须大于等于前一个数
void dfs(int nextnumber, int step, int sum)
{
    if(step == k) //分完step步,都要结束掉
    {
    	if(sum == n) //符合条件的结果+1
        	count++; 
        return;
    }
    //for(int i=nextnumber; i <= (n-sum)/(k-step); i++)
    for(int i=nextnumber; i <= n-sum; i++)
    {
        dfs(i, step+1, sum + i);
    }
}


int main()
{
    cin>>n>>k;
    dfs(1, 0, 0);
    cout << count;
}

2024/03/06        周三

实验1 java基础

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Apache Camel】基础知识

【Apache Camel】基础知识 Apache Camel是什么Apache Camel基本概念和术语CamelContextEndpointsRoutesRouteBuilderComponentsMessageExchangeProcessorsDomain Specific Language&#xff08;DSL&#xff09; Apache Camel 应用执行步骤Apache Camel 示意图参考 Apache Camel…

智慧农业的新时代

1.智慧农业的发展背景及重要性 随着科技的发展&#xff0c;农业现代化已经成为我国农业发展的必然趋势。智慧农业作为农业现代化的重要组成部分&#xff0c;通过运用物联网、大数据、云计算等先进技术&#xff0c;实现对农业生产、管理和服务的智能化&#xff0c;提高农业生产效…

「媒体宣传」品牌发布会活动策划注意点

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 品牌发布会活动策划的媒体宣传方面&#xff0c;以下是关键的注意点&#xff1a; 一、目标与定位 明确核心信息和品牌重点。 设定清晰的目标受众。 二、媒体选择 针对性选择主流媒体、…

rt-thread uart驱动

uart驱动描述基于GD32F470芯片。 rt-thread提供了一套I/O设备模型&#xff0c;如果想要使用操作系统的驱动去进行操作&#xff0c;就得将具体芯片的硬件驱动注册到设备驱动框架上。 关于rt-thread的I/O设备模型相关内容可以参考 rt-thread I/O设备模型-CSDN博客文章浏览阅读55…

基于springboot的母婴商城

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本母婴商城系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息&am…

js五星评价的制作方法

方法有两种&#xff0c;1、jquer插件&#xff1b;2、图片循环&#xff1b; 第一种、效果图 代码 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"…

Uniapp壁纸小程序源码/双端微信抖音小程序源码

Uniapp壁纸小程序源码&#xff0c;双端微信抖音小程序源码。WordPress后台的小程序。为一些做壁纸类自媒体的朋友解决变现难的问题&#xff0c;抖音壁纸常见的图片取号码&#xff0c;微信的壁纸公众号小程序均可使用该小程序进行变现&#xff0c;这款小程序后端为WordPress&…

44、网络编程/数据库相关操作练习20240306

一、代码实现数据库的创建&#xff08;员工信息表&#xff09;&#xff0c;并存储员工信息&#xff08;工号、姓名、薪资&#xff09;&#xff0c;能实现增加人员信息、删除人员信息、修改人员薪资操作。 代码&#xff1a; #include<myhead.h>int do_update(sqlite3 *p…

深色系可视化界面看腻了,来点浅色系?安排,20页来了。

只要不放在大屏上展示&#xff0c;贝格前端工场还是非常推崇浅色系的可视化界面&#xff0c;把它作为配色的首选 。浅色系可视化界面具有以下几个优势&#xff1a; 清晰明了 浅色系界面通常使用明亮的颜色&#xff0c;如白色、浅灰色等&#xff0c;使界面元素更加清晰可见。这…

微前端之什么是微前端

什么是微前端 微前端分类 基于路由的微前端&#xff1a;组件化微前端&#xff1a;iframe嵌入式微前端&#xff1a; 优点缺点 动态加载/懒加载微前端&#xff1a;微应用容器化方案&#xff1a; 微前端解决方案 single-spa阿里巴巴 Cloud Alfaiframe 方案Web ComponentsModule Fe…

【工作记录】Threejs学习笔记-引入OrbitControls

前言 前一篇文章我们介绍了three.js中的基础概念&#xff0c;并给出了展示整体流程的一个简单示例&#xff0c; 本文我们继续研究。 问题 我们在很多3d效果图上都能看到鼠标移动或者缩进实现旋转或者放大缩小的效果&#xff0c;这个在three.js中是通过OrbitControls这个组件…

计算机系统缺少cv100.dll文件解决方法(最新)

cv100.dll 是一个Windows操作系统中的动态链接库&#xff08;DLL&#xff09;文件。DLL文件是包含可由多个程序共享的代码和数据的模块&#xff0c;以减少磁盘空间占用并提高系统性能。根据收集到的信息&#xff0c;cv100.dll 文件可能与图像处理、计算机视觉相关的功能有关。 …

springcloud:3.8测试限流

服务提供者【test-provider8001】 Openfeign远程调用服务提供者搭建 文章地址http://t.csdnimg.cn/06iz8 相关接口 测试远程调用&#xff1a;http://localhost:8001/payment/index 服务消费者【test-consumer-resilience4j8004】 Openfeign远程调用消费者搭建 文章地址http://t…

功能安全概念梳理二

什么是SEooC&#xff1f;SEooC和element有什么不一样&#xff1f; 参考链接&#xff1a;车规级 | ISO26262中对独立安全要素&#xff08;SEooC&#xff09;的开发要求 汽车功能安全(ISO 26262)系列: 到底什么是SEooC开发 安全措施(Safety measure)和安全机制(Safety mechanis…

[Redis]——缓存击穿和缓存穿透及解决方案(图解+代码+解释)

目录 一、缓存击穿&#xff08;热点Key问题&#xff09; 1.1 问题描述 1.2 解决方案及逻辑图 1.2.1 互斥锁 1.2.2 逻辑过期 二、缓存穿透 2.1 问题描述 2.2 解决方案逻辑图 2.2.1 缓存空对象 2.2.2 布隆过滤器 一、缓存击穿&#xff08;热点Key问题&#xff09; 个人理…

鸿蒙岗位大反攻:几十家头部应用加入鸿蒙后,鸿蒙工程师薪酬水涨船高

华为原生鸿蒙生态开始百花齐放&#xff1a;已经有几十家国内应用软件&#xff0c;宣布适配华为原生鸿蒙APP&#xff0c;其中就包括支付宝、美团、新浪微博、小红书、B站、高德地图、58同城等多家头部应用。 因为华为已经公开宣布&#xff1a;2024年的鸿蒙5.0系统将不再兼容安卓…

Redis(5.0)

1、什么是Redis Redis是一种开源的、基于内存、支持持久化的高性能Key-Value的NoSQL数据库&#xff0c;它同时也提供了多种数据结构来满足不同场景下的数据存储需求。 2、安装Redis&#xff08;Linux&#xff09; 2.1、去官网&#xff08;http://www.redis.cn/&#xff09;下…

Hololens 2应用开发系列(3)——MRTK基础知识及配置文件配置(中)

Hololens 2应用开发系列&#xff08;3&#xff09;——MRTK基础知识及配置文件配置&#xff08;中&#xff09; 一、前言二、输入系统2.1 MRTK输入系统介绍2.2 输入数据提供者&#xff08;Input Data Providers&#xff09;2.3 输入动作&#xff08;Input Actions&#xff09;2…

云服务器迁移--天翼云篇(最省钱解决官方未解问题)

0x00 背景 距离上次从华为云迁移到天翼云过了一年之久&#xff0c;之前买的一年期天翼云服务器快到期了&#xff0c;这次需要把这个池子(内蒙)的天翼云服务器迁移到新买的另一个池子的天翼云里。上一篇文章华为云迁移到天翼云教程在 云服务器迁移 (全网最省钱最详细攻略)_服务…

二分以及练习题目

二分模板 判断是否可以二分 &#xff08;1&#xff09;单调性 备选答案集是有序的 &#xff08;2&#xff09;二段性 在检查了mid是否符合要求之和&#xff0c;我可以舍弃左右某一边的答案 两个模板 关键词&#xff1a;满足条件的最小值&#xff0c;最大值最小&#xff0…