dfs复习(一)

题目在蓝桥云课上: 

1.四位密码锁

四层,每层遍历所有可能的数字。

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int sum=0;
void dfs(int depth,int ans)
{if(depth==4) //不再递归 {if(ans==384)  {sum++;}return;}for(int i=1;i<=9;i++){ans*=i; dfs(depth+1,ans);ans/=i; }
}int main()
{dfs(0,1); cout<<sum<<endl;return 0;
}

2.素数环

首尾之和满足素数,每往下层遍历一次,即pre变next,每层遍历所有可能

#include<bits/stdc++.h>
using namespace std;
int n,sum=0,visit[21]= {0};
vector<int>q;
int fun(int x)
{if(x<=1){return 0;}for(int i=2; i<=sqrt(x); i++){if(x%i==0){return 0;}}return 1;
}void dfs(int cur,int pre)
{if(cur==n){if(fun(pre+1)) //首和尾之和为素数{sum++;for(int i=0; i<q.size(); i++){cout<<q[i]<<" ";}cout<<endl;return;}return;}for(int next=2; next<=n; next++){if(!visit[next] && fun(pre+next)){visit[next]=1;q.push_back(next);dfs(cur+1,next);q.pop_back(); //回溯返回上一步visit[next]=0;}}return;
}
int main()
{cin>>n;if(n<2){cout<<"No Answer"<<endl;return 0;}q.push_back(1);visit[1]=1;dfs(1,1);if(sum==0){cout<<"No Answer"<<endl;}return 0;
}

3.小朋友的崇拜圈

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int N,temp,max1=0; //temp为寻找完整圈
int a[100010];
int v[100010]= {0};void dfs(int cur,int sum1)
{if(v[cur]) //访问过,存在闭合圈 {if(cur==temp) //真正的完整闭合圈 {if(max1<sum1){max1=sum1;}}return;}else{v[cur]=1;dfs(a[cur],sum1+1);v[cur]=0;}
}
int main()
{cin>>N;for(int i=1; i<=N; i++){cin>>a[i]; //第i个小朋友崇拜的人编号}for(int i=1; i<=N; i++){temp=i;dfs(i,0); //寻找每个小朋友的圈}cout<<max1<<endl; return 0;
}

4. 冰冰的正多边形

此题不是dfs算法,回顾的哈希算法

#include<bits/stdc++.h>
using namespace std;
int t,n;
int main()
{cin>>t;while(t--){cin>>n;int a[20],x[110];vector<int>nums;memset(a,0,sizeof(a));memset(x,0,sizeof(x));for(int i=0; i<n; i++){cin>>a[i];}for(int i=0; i<n; i++){x[a[i]]++;}for(int i=0;i<110;i++){if(x[i]>=3){nums.push_back(i*3);}}sort(nums.begin(),nums.end());if(nums.size()!=0){cout<<"yes"<<endl<<nums[0]<<endl;}else{cout<<"no"<<endl;}nums.clear();}return 0;
}

5.特殊的多边形

//求出组合它的个n边形(乘积为n)所有可能的不同边长组合
//考虑到n边形边长的限制和乘积范围,使用dfs枚举所有的边长组合
//题目要求边长互不相同,所以边长大小保证为从小到大,即每次添加的新边都大于之前的所有边
//dfs构建出完整的n边形,记录其乘积值到 cnt 数组
//前缀和prefix[]快速求出[l,r]区间内合适的n边形 
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int t,n;
int cnt[N],prefix[N]; //cnt[i] 表示乘积为i的多边形个数void dfs(int dep,int st,int mul,int sum) //dep当前处理到第几条边,st上一条边的长度,mul当前已有的边长乘积,sum是当前边长之和
{if(mul>1e5) return; //剪枝1if(dep==n+1){cnt[mul]++;return;}int up=pow(1e5/mul,1.0/(n-dep+1))+3; //剪枝2(算边长上限)//剪枝3(算边长下限)//最后一位的长度不能超过sum,也不能超过up//即多边形前n-1条边和大于第n条边,第n条边要小于前n-1条边之和for (int i = st + 1; i < (dep == n ? min(sum, up) : up); i++){dfs(dep + 1, i, mul * i, sum + i);}
}
int main()
{cin>>t>>n;dfs(1,0,1,0);for(int i=1; i<=1e5; i++){prefix[i]=prefix[i-1]+cnt[i];}while(t--){int l,r;cin>>l>>r;cout<<prefix[r]-prefix[l-1]<<endl;}return 0;
}

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

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

相关文章

Python 从入门到实战40(数据分析概述)

我们的目标是&#xff1a;通过这一套资料学习下来&#xff0c;可以熟练掌握python基础&#xff0c;然后结合经典实例、实践相结合&#xff0c;使我们完全掌握python&#xff0c;并做到独立完成项目开发的能力。 上篇文章我们讨论了通过线程的相关知识。今天学习一下数据分析相…

#网络安全#渗透测试# 渗透测试应用

网络安全渗透测试是一种重要的安全评估方法&#xff0c;用于发现和评估网络系统中的安全漏洞。在进行渗透测试时&#xff0c;需要注意以下几个关键点&#xff1a; 法律和道德考量 获得授权&#xff1a;在进行渗透测试之前&#xff0c;必须获得目标系统的正式授权。未经授权的测…

python实现数据库的增删改查功能,图形化版本

import tkinter from tkinter import * import psycopg2 from tkinter import messagebox#连接信息 t_conn{"dbname": "d1","user": "u1","password": "123qqq...A","port": "15400","h…

vue+spreadjs开发

创建vue3项目 pnpm create vite --registryhttp://registry.npm.taobao.org安装spreadjs包 pnpm install "grapecity-software/spread-sheets17.1.7" "grapecity-software/spread-sheets-resources-zh17.1.7" "grapecity-software/spread-sheets-vu…

基于DDPG算法的股票量化交易

项目源码获取方式见文章末尾&#xff01; 回复暗号&#xff1a;13&#xff0c;免费获取600多个深度学习项目资料&#xff0c;快来加入社群一起学习吧。 **《------往期经典推荐------》**项目名称 1.【基于PyQTFaceNet卷积神经网络实现的学生人脸识别考勤系统】 2.【卫星图像道…

计算机强校99+分《数据库》课设

高校成绩数据库系统设计与实现 1、需求分析 1.1 数据需求描述 1.2 系统功能需求 1.3 其他性能需求 2、概念结构设计 2.1 局部E-R图 2.2 全局E-R图 2.3 优化E-R图 3、逻辑结构设计 3.1 关系模式设计 3.2 数据类型定义 3.3 关系模式的优化 4、物理结构…

川渝地区软件工程考研择校分析

C哥专业提供——计软考研院校选择分析专业课备考指南规划 通过最新数据分析,5所高校软件工程专业2025年考研难度从高到低预计为: 电子科技大学 >> 四川大学 > 重庆大学 ≈ 西南交通大学 > 西南大学 对于想考川渝地区985但核心目标为优先上岸的考生,建议重点考虑西…

gin入门教程(9):路由分组与路由版本控制

在使用 Gin 框架构建 RESTful API 时&#xff0c;路由分组与版本控制是一种常见的实践&#xff0c;可以帮助你更好地管理不同版本的 API。下面是如何在 Gin 中实现路由分组和版本控制的示例。 目录结构 /hello-gin │ ├── cmd/ │ └── main.go ├── api/ │ ├─…

Spring Boot助力的厨艺互动平台开发指南

2 相关技术 2.1 Spring Boot框架简介 Spring Boot是由Pivotal团队提供的全新框架&#xff0c;其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。通过这种方式&#xff0c;Sprin…

web 应用层接口请求日志

需求&#xff1a; 前文已经讲过如何使用MDC在日志中为每个请求生成一个唯一traceID&#xff0c;日志生成traceID。 请求作为入口&#xff0c;一般的系统都会有一个表 或者 文件 记录每个请求&#xff0c;方便运维统计接口调用情况&#xff0c;实现方案大体两种&#xff1a; 使用…

在浏览器里就可以运行的本地AI模型 - 一键去除图片背景AI

前言 浏览器的功能越来越强大, 从Chrome 113 开始, 谷歌把WebGPU引入到了浏览器中, 通过WebGPU的API, 可以直接访问本机电脑的GPU资源. 既然GPU资源可以在浏览器里运行, 给AI模型推理等带来了便利, 使得一些AI模型可以直接在浏览器里运行. 本文主要介绍介绍以下WebGPU的基本概…

【前端开发入门】JavaScript快速入门--js变量

目录 引言一、为什么要定义变量二、定义变量的一些技巧1. 解构赋值1.1 Object解构赋值1.2 Array解构赋值1.3 总结规律 2. 字符串拼接 三、变量作用域四、总结 引言 本系列教程旨在帮助一些零基础的玩家快速上手前端开发。基于我自学的经验会删减部分使用频率不高的内容&#xf…

uniapp 发起post和get请求!uni.request(OBJECT)

在uni-app中&#xff0c;发起HTTP请求主要通过uni.request方法实现。 Get请求 使用uni.request请求api&#xff0c;并且将 method参数设置为GET&#xff0c;有参数的话直接data&#xff1a;{}传递&#xff0c; success是请求成功回调函数&#xff0c;fail是失败函数 <but…

ipv6地址子网划分

IPv6 从左至右一共有8段地址,每一段用16进制表示&#xff0c;共128位。 例如&#xff1a;2001:0DB8:0001:0000:0000:0000:0000:0000 每一段的子网掩码如下&#xff1a; 第1段的掩码为是 0~16 01616 第2段的掩码为是 17~32 161632 第3段的掩码为是 33~48 …

DBeaver + Oracle 数据库修改CLOB类型字段内容

数据库中存在大量错误数据&#xff0c; CLOB类型字段值需要批量修改&#xff0c;因数据结构比较复杂&#xff0c;无法做到使用常规的update语句。。。。 一、问题介绍 oracle数据库中&#xff0c;clob类型字段&#xff0c; 数据格式为 {“type”:“OOC”, …}, 如何使用一个sql…

QQ音乐绿钻音效+DTS音效解锁

​ 工具 mt管理器 simplehook QQ音乐&#xff08;自行下载&#xff09; DTS音效修改方法&#xff1a;com.tencent.qqmusic.business.user.a.r1 赋值为1 绿钻音效修改方法&#xff1a; com.tencent.qqmusic.business.user.a.q1 赋值为1 建议使用hook实现&#xff0c;这里贴上si…

设计模式——过滤器模式

一、定义和概念 定义 C 过滤器模式&#xff08;Filter Pattern&#xff09;也称为标准模式&#xff08;Criteria Pattern&#xff09;&#xff0c;是一种设计模式&#xff0c;用于根据不同的标准或条件从一组对象中筛选出符合条件的对象。它将筛选条件的逻辑封装在不同的过滤器…

动态IP是什么?

随着互联网成为人们生活的重要组成部分&#xff0c;以信息传递为主导的时代种&#xff0c;网络连接质量对我们的工作效率、学习进度以及娱乐体验等方面都有很大影响。 动态IP&#xff0c;作为网络连接中的一种重要IP代理形式&#xff0c;越来越受到用户的欢迎。本文将深入解析…

关于 Linux 内核“合规要求”与俄罗斯制裁的一些澄清

原文&#xff1a;Michael Larabel - 2024.10.24 当 一些俄罗斯的 Linux 开发者被从内核的 MAINTAINERS 文件中移除 时&#xff0c;原因被描述为“合规要求”&#xff0c;但并未明确这些要求具体涉及什么内容。随后&#xff0c;Linus Torvalds 对此发表了评论&#xff0c;明确指…

计算机网络(十二) —— 高级IO

#1024程序员节 | 征文# 目录 一&#xff0c;预备 1.1 重新理解IO 1.2 五种IO模型 1.3 非阻塞IO 二&#xff0c;select 2.1 关于select 2.2 select接口参数解释 2.3 timeval结构体和fd_set类型 2.4 socket就绪条件 2.5 select基本工作流程 2.6 简单select的服务器代…