PAT - DFS

从零到一:手把手部署用友T3标准版11.2及SQL Server 2008R2环境 本文详细介绍了从零开始部署用友T3标准版11.2及SQL Server 2008R2环境的完整流程,包括环境准备、SQL Server安装、环境检测与修复、T3标准版安装实战以及初始化配置与测试。通过手把手的步骤指导和常见问题解决方案,帮助用户顺利完成部署,确保系统稳定运行。 阅读详情

使用DFS可以解决枚举子序列问题:给定一个序列,枚举这个序列的所有子序列。因为每个数总有两种状态,选与不选,然后进行递归即可。

枚举从N个整数中选择K个数的方案是子问题。

例题:从序列A(n个数)中选K个数,使得和为x,且序列的平方和最大。 //有边界,提前判断

//序列A中n个数选k个数使得和为x,最大平方和为maxSumSqu
#include<cstdio>
#include<vector>
using namespace std;
const int maxn = 10010;

int n, k, x, maxSumSqu = -1, A[maxn];
vector<int> temp, ans; //temp用于储存可能的序列

void DFS(int index, int nowK, int sum, int sumSqu) {
	if (nowK == k && sum == x) {
		if (sumSqu > maxSumSqu) {
			maxSumSqu = sumSqu;
			ans = temp;
		}
		return;
	}
	
	if (index == n || nowK > k || sum > x) return;
	//选index号数
	temp.push_back(A[index]);
	DFS(index + 1, nowK + 1, sum + A[index], sumSqu + A[index] * A[index]);
	temp.pop_back();
	//不选index号数
	DFS(index + 1, nowK, sum, sumSqu);
}

int main() {
	/*
	4 2 6
	2 3 3 4
	*/
	/*
	10 2 11
	2 6 7 8 2 5 0 7 4 5
	*/
	scanf("%d%d%d", &n, &k, &x); //序列A中n个数选K个数,使得和为x
	for (int i = 0; i < n; i++) {
		scanf("%d", &A[i]);
	}

	DFS(0, 0, 0, 0);
	for (int i : ans)
	{
		printf("%d ", i);
	}
}

假如数可以被重复选择的话,将选index号数的DFS代码改为

DFS(index, nowK + 1, sum + A[index], sumSqu + A[index] * A[index]);

即可,太巧妙了!index可以重复选择,直到不再要的时候,在进入index + 1的选择。

背包问题

有n件物品,每件物品的重量为w[i],价值为c[i]。需要选出若干件物品放入一个容量为V的背包,使得在选入的物品重量和不超过V的情况下,物品总价值最大,求最大价值。n在1到20之间。   //无边界

抽象为DFS问题,分支为选与不选,死胡同为选完n个物品。注意要利用weight<=V这个条件进行剪枝。

//背包问题,使用DFS解决,岔道口:每个物品只有两种状态,放/不放
//死胡同是 超重/物品放完
#include<cstdio>

const int maxn = 30;
int w[maxn], c[maxn], n, V, MaxValue = -1;

void DFS(int index, int nowWeight, int nowValue) {
	if (index == n)//选择完n件物品后
	{
		//if (nowWeight <= V && nowValue > MaxValue) 将该处的判断可以提前,减少分支
		//	MaxValue = nowValue;
		return;
	}
	if(nowWeight + w[index] <= V) //判断安全后才会加新的物品
	{
		if (nowValue + c[index] > MaxValue)
			MaxValue = nowValue + c[index];
		DFS(index + 1, nowWeight + w[index], nowValue + c[index]); //选第index件物品
	}

	DFS(index + 1, nowWeight, nowValue);
}
int main() {
	/*
	5 8
	3 5 1 2 2
	4 5 2 1 3
	*/
	scanf("%d%d", &n, &V); //有n个物品,最大重量V
	for (int i = 0; i < n; i++) {
		scanf("%d", &w[i]);
	}
	for (int i = 0; i < n; i++) {
		scanf("%d", &c[i]);
	}
	DFS(0, 0, 0);
	printf("%d\n", MaxValue);
}

 

具身智能中的(VLA)算法与实践——第一讲 基础与概览 本文介绍了视觉-语言-动作(VLA)模型的基础概念及其在AI领域的重要性。VLA模型通过融合多模态数据实现具身智能,使AI系统能感知环境并执行物理动作。文章探讨了大型语言模型(LLMs)和视觉语言模型(VLMs)如何赋能具身智能,包括指令解析、场景理解和动作规划。同时提供了Python、PyTorch/TensorFlow开发环境的详细搭建指南,包含GPU配置建议和测试代码。VLA模型在机器人操作、导航、人机协作等领域具有广泛应用前景,是实现通用人工智能的关键技术。 阅读详情

相关推荐

零成本实现飞牛 OS 内网穿透:CloudFlare 隧道搭建全攻略

一、引言:突破内网限制的最优解当你的内网环境中部署了飞牛 OS 系统(无论是老旧电脑还是 NAS 设备),想要实现公网访问时,传统方案往往面临两大痛点:公网 IP 申请困难且成本高DDNS 动态解析配置复杂专业内网穿透工具存在付费门槛今天为大家带来零成本解决方案:通过免费域名搭配 CloudFlare 隧道技术,无需公网 IP 即可轻松实现飞牛 OS 服务的公网访问。全程操作可视化,新手也能快速上手!二、前期准备:必备工具清单(1)域名准备。

Honmaple的博客 7495

从N个数选取k个数的组合--不降原则(DFS)

从N个数中选取k个数–不降原则(DFS) 原理 :不降原则(看代码前先看一下原理吧) 举个例子: 比如说在6里面随便选5个数,那么选法都是什么呢? 瞎枚举? 12345 12346 前两个还不会弄混 然后很可能就乱了 少点数可能不会乱 但是多了就不好整了 比如说在100里随便选50个数。 1 2 3 4 5 6 7 8 9 10 11 12… 所以我们可以运用不降原则: 保证枚举的这些数是升序排列...

lhc121386的博客 1万+

Flutter 中使用蓝牙插件报错,说没有权限怎么解决

2、在build.grale里面更改一下版本号,我修改的是targetSdkVersion这个版本号,需要根据你自己的版本进行更改,记得更改之后先flutter clean一下再run。搞了一晚上,没搞出来,第二天用同事手机测试发现他手机可以,我手机还是不行,才发现是Android版本问题,需要修改两处地方。废话不多说,咱先看报错信息。

zzj17637822814的博客 2289

从n个数中选k个数(组合问题)

不降原则:选出的数全部保证是升序,这样就可以避免选重。 eg:1 2 3 4 5 我们可以选: 1 2 3 1 2 4 1 2 5 然后把第二位的2加1变成3,因为是升序 1 3 4 1 3 5 再把3加1变成4 1 4 5到这里以1开头的的组合就全部枚举完了,接下来就以2开头,因为时刻要满足是升序 2 3 4 2 3 5 2 4 5 3 4 5这里就把这5个数全部枚举完了。 这道题重点就是选数然后判断结果是否为质数 选数的过程就用了不降原则,利用递归实现 #incl

the_littlew的博客 4079

Halcon 算子 select_shape

作用:借助形状特征选择区域; 参数翻译(对应以上参数顺序): 输入区域、 输出满足条件的区域、 输入参数形状特征('anisometry', 'area', 'area_holes', 'bulkiness'等)、 输入参数关系符('and', 'or')、 输入参数下限值(0.0 ≤ Min ≤ 99999.0)、 输入参数上限值(Max >= Min 并且0.0 ≤ Max ≤ 99999.0); 描述: 算子select_shape根据形状特征选择区域,对于...

奔跑的郑的博客 2万+

SAP公司间采购后台配置及前台操作详解

公司间采购后台配置及前台操作详解 SAP 实施中公司间交易几乎每个项目都会有此业务需求,比如内地很多公司都会在香港设置贸易型子公司。通过香港公司接单,然后转内地公司生产,或内地公司通过香港公司采购进口原材料,这些业务必然会涉及到公司间交易,下面我将详细说明下SAP是如何实现这种业务场景的,供大家参考。 配置前必须前台先创建公司间供应商主数据和客户主数据 1. 创建相应的客户主数据 功能说明 公司间...

weixin_40672823的博客 1万+

选数

题目描述 已知nn个整数 x1,x2,…,xnx1,x2,…,xn,以及一个整数k(k<n)k(k<n)。 从nn个整数中任选kk个整数相加,可分别得到一系列的和。 例如当n=4,k=3n=4,k=3,44个整数分别为 3,7,12,193,7,12,19时,可得全部的组合与它们的和为: 3+7+12=22 3+7+19=29 7+12+19=38 3+12+19=34 现在,要求...

weixin_42696809的博客 1977

ESP32开发环境避坑指南:用Thonny烧录MicroPython固件时常见的5个错误及解决方法

本文针对ESP32开发新手,详细解析了使用Thonny IDE烧录MicroPython固件时最常见的5个错误及其解决方案。内容涵盖驱动安装、端口识别、固件烧录失败、版本兼容性、连接不稳定以及文件系统操作异常等核心痛点,并提供硬件层面的深度排查指南,帮助开发者高效搭建稳定的ESP32开发环境。

weixin_29189003的博客 407

1079. Total Sales of Supply Chain (25)-PAT甲级真题(dfs,bfs,树的遍历)

1079. Total Sales of Supply Chain (25) A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone involved in moving a product from supplier to customer. Start

柳婼 の blog 2332

QT实现OPCUA服务端客户端(附完整源码)

QT实现OPCUA服务端客户端(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1822

一个车载HUD的设计参考

一个车载HUD的设计参考

weixin_72050316的博客 800

PAT_A1103(DFS深搜)

1103Integer Factorization(30分) TheK−Pfactorization of a positive integerNis to writeNas the sum of theP-th power ofKpositive integers. You are supposed to write...

眼里一片海 231

20-CUDA规约算法:并行求和优化策略-✨

本文介绍了GPU上高效并行规约(Reduction)算法的优化技巧。规约是将大量数据合并为单个值的基础计算模式,广泛应用于科学计算等领域。文章从基础并行规约实现出发,逐步讲解了三种关键优化策略:1)交错寻址减少共享内存bank冲突;2)循环展开降低分支预测开销;3)多级规约处理大规模数据。性能对比显示,优化策略可带来最高4.5倍的加速效果。最后总结了最佳实践,包括合理使用共享内存、循环展开和warp级优化等技巧。这些优化方法可显著提升GPU计算密集型应用的性能。

2301_79143213的博客 172

PAT练习笔记——8.1 深度优先搜索(DFS)

2019年9月PAT - 练习笔记——8.1 以下页码标注的是阅读器中实际页码,而不是书本身自印的页码。 第8章 提高篇(2)——搜索专题 8.1 深度优先搜索(DFS) 注意 可以考虑对某些数据进行预处理,从而提高效率 目录 A1103 Integer Factorization A1103 Integer Factorization The K−P factorization o...

qreamly的博客 363

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

浙大 PAT 甲级 1079 Total Sales of Supply Chain 最简单的深度优先搜索 DFS

这几乎是PAT甲级练习题中最简单的一道DFS了…无需赘述,贴上代码供参考就好了。 #include<stdio.h> #include<vector> #include<map> #include<math.h> using namespace std; vector<int> edge[100000]; map<int, i...

qq_39115541的博客 162

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

PAT甲级备考——DFS+剪枝

dfs

weixin_43650171的博客 313

浙大 PAT 甲级 1087 All Roads Lead to Rome 深度优先搜索 DFS

PAT甲级练习题已经出现过无数次类似的题目了,都是:找路径、择优条件。都用深度优先搜索来解决,出现次数多了之后就属于简单题了。 #include<stdio.h> #include<vector> #include<map> #include<string> #include<memory.h> using namespace std; struct Edge { int next; int cost; }; map<int, string&

qq_39115541的博客 214

PAT 1034 无向图dfs

PAT 1034 无向图dfs 水题,虽然想了半天。。输出要按照字典序排序,第一次忘了导致测试点2没过。 代码: #include <iostream> #include <map> #include <string> #include <set> #include <vector> #include <algorithm> using namespace std; map<string,int> w; map<s

qq_43513855的博客 140

PAT甲级【1003】深度优先算法

1003,pat甲级,深度优先算法

Reptilien的博客 175

PAT甲级 1004 - dfs 和 bfs

PAT甲级 1004题目 Counting Leaves解析源码代码代码 - bfs代码 - dfs 题目 Counting Leaves A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child. Input Sp...

qq_37208650的博客 340

PAT-1053-树权值之和问题【DFS】

//题目大意:给出一棵树,每个节点带有权重,判断权值之和为S的路径并从小到大输出。 #include<bits/stdc++.h> #define MAXN 1005 using namespace std; struct node{ int weight; vector<int> child; }nodes[MAXN]; int path[MAXN];...

ChangeW fafa的博客 907

Dijkstra+DFS【解题模板】 + 【PAT】1003 Emergency

本题可以AC PAT 1003 Emergency OJ入口 由于在Dijkstra算法中进行进行求解第二标尺的最优值时经常会由于逻辑复杂而浪费很多时间,所以,一般做题的时候为了思路清晰,逻辑清晰常常将求接最短路径和求解最优第二标尺路径分开进行。 也就是先使用Dijkstra进行求解最短路径生产树。 再DFS所有的最短路径求解出符合题目要求的最优路径。 //迪杰斯特拉算法求出最短路径生成树 void Dijkstra(int start) { fill(dist, dist + MAX, INF); d

目标:NLP算法工程师 254

浙大PAT满分之路-(第三天+第四天)甲级1003 Emergency (25 分)[DFS深度优先+最短路径]

浙大PAT满分之路-(第三天)1003 原题: 第一行分别定义了 城市数量N、路(街道)的数量M、我们需要从哪个城市去哪个城市(C1\C2∈[0,N-1]) 第二行定义 N个城市中各包含了多少救援队人数 最后的M行定义了 哪两个城市是有街道的(即被连通的)以及路的长度 比如数据为:0 1 5 即表示从0号城市到1号城市是连通的,路的长度为5 在此背景下本题需要我们找到路径最短(优先级最高),并且...

qq_43670549的博客 619

pat 1018 Public Bike Management dfs

地址:https://pintia.cn/problem-sets/994805342720868352/problems/994805489282433024 pat给的题意真的是迷,我理解的是来回的途中只要把沿途的车站弄成完美即可,题意是在去的路上就得把每一个车站弄的完美,不考虑回; 用dfs遍历到sp的每一条路,不会超时,去最优值即可; 原先一直犹豫使用最短路求吧,还是用dfs,网上看了看,...

qq_36386435的博客 145

【PAT】A1020 Tree Traversals【树的遍历】【DFS】

Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder and inorder traversal sequences, you are supposed to output the level order traversal sequence of the cor...

elegant coder 960

PAT1079 Total Sales of Supply Chain(DFS)

PAT1079原题题目大意及思路代码运行截图收获 原题 题目大意及思路 此题题干与 PAT1106 Lowest Price in Supply Chain(树、邻接表、DFS)一致,可参考该题的解题思路。 不同点:本题是算出所有节点的销量*售价,后者是比较得出最小售价。 代码 #include<iostream> #include<vector> #include<cmath> using namespace std; double ans=0,p,r; const

virtual_YL的博客 278

PAT甲级 1175 Professional Ability Test-dfs

【代码】PAT 1175 Professional Ability Test-dfs。

weixin_74824251的博客 2024
上一篇: PAT - 栈、队列、链表
下一篇: PAT - BFS
DedicateToAI
博客等级 码龄9年 6粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值