ACdream - 1726 A Math game(递归,避免重复top之前的不入栈 或 定义 top 光标)

基于MATLAB的太阳能光伏电力仿真,模拟每日太阳能发电,可视化功率曲线,并通过数值积分计算总能量输出。.zip 1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 立即下载

Recently, Losanto find an interesting Math game. The rule is simple: Tell you a number H, and you can choose some numbers from a set {a[1],a[2],......,a[n]}.If the sum of the number you choose is H, then you win. Losanto just want to know whether he can win the game.
Input
There are several cases. 
In each case, there are two numbers in the first line n (the size of the set) and H. The second line has n numbers {a[1],a[2],......,a[n]}. 0<n<=40, 0<=H<10^9, 0<=a[i]<10^9,All the numbers are integers.
Output
If Losanto could win the game, output "Yes" in a line. Else output "No" in a line.
Sample Input
10 87
2 3 4 5 7 9 10 11 12 13
10 38
2 3 4 5 7 9 10 11 12 13
Sample Output
No
Yes


题意:输入 n.h,下面一行有n个数,从这n个数中任选几个数,看着几个数能不能和等于 h,若能就输出Yes  否则就输出No

这是我比赛时的思路,但是没有那个sum【】数组减值,但是我是用 tt[x-1]<=a[i]和book数组标记 ,这样避免重复的(像1,2,3,或3,2,1,或2,1,3等6种排列只能出现一种),这样时间复杂度太高了,但当时那个代码是个 wa,不也不知道哪出错了,(不要再想那个代码了,没意义,下面有更好的)但是那个代码要改进的地方太多了,就像为了避免重复,就定义一个top,让 top 之前的不能再次入栈,这样避免从重复(比上面那个好(时间复杂度低)),我又加了sum[] 数组减值,提交不知道为啥是 0 ms ,可能是后台数据太水了

代码:

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define Max 50
long long book[Max];
long long a[Max],n,h,f,s[Max];


void dfs(long long top,long long x ,long long sum) //top 之前的不会再入栈,所以根本就不用book数组标记 
{													// x-1 为已经加了几个数了,sum为这几个数的和; 
	if(sum==h||f)
    {
         f = 1;
         return ;
    }
    if(x>n)
    {
        f = 2;
        return ;
    }
    for(long long i = top; i<=n; i++)
    {
         if(sum+(s[n]-s[i-1])<h)  // 这个减值挺好,以后一定要思考减值; 
        	return ;
         if(sum+a[i]>h)  
            continue;
         dfs(i+1,x+1,sum+a[i]);
         if(f) return ;
    }
}
int main()
{
    while(~scanf("%lld%lld",&n,&h))
    {
        for(long long i=1; i<=n; i++)
        {
        	scanf("%lld",&a[i]);
        	if(i==1) s[i] = a[i];
        	else s[i] = s[i-1] + a[i];
        }
        f = 0;
        memset(book,0,sizeof(book));
        dfs(1,1,0);
        if(f==1) printf("Yes\n");
        else printf("No\n");
    }
    return 0;
}


上面这些代码都是根据全排列的代码改编的,全排列就是看看这个数有没有被标记过,若没有被标记过,就把这个数存入数组中,若被标记过,就让 i++,看看下个数是否被标记 。 那么每一次调用函数,压入栈中,若假设这n个数都没有被标记过,那么这一栈,就要有n次递归,每个压入栈中的都要有n次递归的话,你想想这是多大的复杂度。所以呢,一般是不用全排列改编的代码的,上面代码已经改编的很好,时间复杂度降低了很多了,但是,你想想这用不用这样在每一个栈中判断一些数是不是符合情况,不需要让数在一个栈中枚举,只需,定义一个光标,让光标从开始移动,当光标移动到这个数时,这个数无非就两种情况,选或者不选,所以每一栈中就只会递归调用两次,(上一个代码时间短的原因我觉着就是,随说每一栈中都会调用递归多次,但压入栈中的数量不定,开始可能多,随着每一栈中的top增加,压入栈中的数量会越来越少,而下面这个代码压入栈中的数量,都是当光标移动到最后时,才返回)所以代码:

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define Max 50

long long sum[Max],a[Max],n,h,f;

void dfs(long long top,long long ans)
{
	if(ans==h)
	{
		f=1;
		return ;
	}
	if(top>n||ans>h||ans+(sum[n]-sum[top-1])<h) //减值 
		return ;
	dfs(top+1,ans);
	if(f) return ;
	dfs(top+1,ans+a[top]);
	if(f) return ;
}
int main()
{
	long long i,j;
	while(~scanf("%lld%lld",&n,&h))
	{
		for(i=1;i<=n;i++)
		{
			scanf("%lld",&a[i]);
			if(i==1) sum[i] = a[i];
			else sum[i] = sum[i-1] + a[i];
		}
		f = 0;
		dfs(1,0);
		if(f) printf("Yes\n");
		else printf("No\n");
	}
	return 0;
} 

以后遇到这样的题先想想能不能定义光标top,让光标移动,让每一栈中的调用函数(递归)变少,这道题就是选不选的问题;


人脸识别签到考勤系统实战源码 这是一套可直接运行的人脸识别智能签到考勤系统,基于OpenCV YuNet人脸检测与SFace特征识别实现,全程本机运行,数据保存在本地SQLite,不上传任何服务器。配套交付完整Python源码、9章实战教程(md/html/pdf三种格式)、逐步骤操作截图和答辩PPT讲解。 系统围绕五个功能模块展开:人脸注册支持照片批量导入并提取特征入库;识别签到支持照片或摄像头两种方式,实时框出人脸并标注姓名、相似度与考勤状态;考勤规则引擎按config.py里配置的上下班时间与宽限分钟,自动判定迟到、早退、缺勤;Tkinter管理面板完成人员管理、流水查询与月度汇总;最后通过openpyxl一键导出整月考勤矩阵,正常绿、迟到黄、缺勤红,Excel打开即用。 选型上特意选了YuNet+SFace路线:纯pip安装免编译,CPU单帧识别不到100ms,两个ONNX模型共约37MB,出自OpenCV官方模型仓库,毕设报告引用有据可查。教程第7章整理了16条Windows下真实踩过的报错及排查方法,第8章给出换模型、换人脸、加功能的二次开发路径。 适合做计算机视觉方向毕设或课程设计的学生,也适合想给班级、实验室、小团队搭一套本地签到工具的Python学习者。运行环境为Python 3.9以上、Windows 10/11,不需要GPU。 使用时先pip install -r requirements.txt装齐依赖,再运行download_data.py下载模型,最后启动main.py即可进入图形界面;命令行register、recognize、report子命令也可脱离界面单独调用。 立即下载

相关推荐

【无人机航测】MATLAB重叠率与地面分辨率协同设计:航线间距及飞行方向优化系统 MATLAB 无人机航测重叠率设计|地面分辨率与航线间距计算

内容概要:本文档介绍了基于MATLAB R2025b开发的无人机航测重叠率与航线间距计算系统,旨在通过建立统一的航测几何计算体系,实现重叠率、地面分辨率与航线间距的动态协同设计。系统结合相机参数、飞行参数、地形数据与风场信息,通过自动化候选航向搜索与多目标优化,选择兼顾覆盖质量、飞行效率与安全性的最优航线方向。项目涵盖从参数输入、摄影测量计算、地形与安全修正,到候选路线生成、综合评价与结果可视化的全流程,并构建了五万组模拟数据用于算法验证与模型训练,支持桌面交互、批量处理与服务化部署,适用于多种复杂场景下的无人机航测任务规划。 适合人群:具备一定MATLAB编程基础和摄影测量知识的科研人员、工程技术人员及高校师生,尤其适合从事无人机航测、地理信息系统(GIS)、遥感与测绘等相关领域的从业者。 使用场景及目标:① 实现无人机航测任务中地面分辨率与航线间距的精确计算与动态优化;② 解决复杂地形与风场环境下航线方向选择困难、覆盖质量难以保障的问题;③ 通过自动化设计减少人为经验依赖,提升航测任务的可靠性与效率;④ 为后续的三维建模、正射影像生成与灾害应急评估等应用提供高质量的数据基础。 阅读建议:建议读者结合文中提供的完整代码示例与GUI界面设计,逐步实践参数配置、模型计算与结果分析流程。重点关注摄影测量公式推导、地形修正策略与多目标优化算法的实现细节,并利用模拟数据进行敏感性分析与模型验证,以深入理解系统的设计理念与工程应用价值。

15 Puzzle(15 数码,IDA* 及 N 数码的 有解无解的判读)

The goal of the 15 puzzle problem is to complete pieces on 4×44×4 cells where one of the cells is empty space.In this problem, the space is represented by 0 and pieces are represented by integers from...

obsorb_knowledge的博客 6667

【电力负荷预测】项目介绍 MATLAB实现基于BO-Transformer-LSTM贝叶斯优化算法(BO)优化Transformer-LSTM组合模型进行居民用户多步电力负荷预测(含模型描述及部分示例

内容概要:本文介绍了一个基于BO-Transformer-LSTM的组合模型,用于实现居民用户多步电力负荷预测的完整项目实例。该模型融合Transformer的全局注意力机制与LSTM的局部时序记忆能力,构建能够捕捉长时依赖与周期性特征的深度学习架构,并引入贝叶斯优化(BO)自动搜索最优超参数组合,提升预测精度与训练效率。项目涵盖从原始数据清洗、特征工程、滑动窗口样本构建、模型设计到超参数优化、反归一化及多步误差评估的全流程,强调时间顺序划分以防止信息泄露,并通过周期编码、外生变量融合等方式增强数据表达能力。文中提供了详细的MATLAB代码示例,包括数据预处理、网络搭建、贝叶斯优化配置和预测结果评估等关键步骤。 适合人群:具备一定机器学习和时间序列分析基础,熟悉MATLAB编程环境,从事电力系统预测、智能电网、负荷管理等相关领域的研究人员、工程师及研究生。 使用场景及目标:①应用于居民级或多用户聚合负荷的短期至中期多步预测(如未来24小时);②服务于配电系统运行调度、需求响应基线设定、家庭能源管理系统优化、分布式能源协调控制等实际工程场景;③为科研提供可复现的深度学习+贝叶斯优化的技术路线参考。 阅读建议:此资源以实际项目为导向,建议读者结合提供的代码逐步实现并调试模型,重点关注数据质量控制、时间特征编码、组合网络结构设计与贝叶斯优化稳定性之间的协同关系,在实践中深入理解多步预测中的误差累积机制与超参数敏感性问题。

从n个数中任取m个数 的 多种情况,每种状况对应一种写法,还有 HDU - 1258 Sum It Up 这道题;

第一种写法,从 1~12 中任取 m个数,代码:#include&lt;stdio.h&gt; #include&lt;string.h&gt; #include&lt;algorithm&gt; using namespace std; int m,n; int a[100]; int tt[100]; int book[100]; void dfs(int x) { if(x==m) {...

obsorb_knowledge的博客 1286

国央企创新负责人如何通过平台实现科研成果的快速识别与转化?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

PotPlayer自用皮肤

自用 PotPlayer 皮肤,仅微调了字体大小与颜色,是按个人习惯调整,未做适配性调整。

题目 poj – 1426(A题)

Given a positive integer n, write a program to find out anonzero multiple m of n whose decimal representation contains only the digits 0and 1. You may assume that n is not greater than 200 and there i

obsorb_knowledge的博客 527

2-shell及常用命令-续.pdf

2-shell及常用命令-续.pdf

HDU - 1254 推箱子(标记状态,思路)

推箱子是一个很经典的游戏.今天我们来玩一个简单版本.在一个M*N的房间里有一个箱子和一个搬运工,搬运工的工作就是把箱子推到指定的位置,注意,搬运工只能推箱子而不能拉箱子,因此如果箱子被推到一个角上(如图2)那么箱子就不能再被移动了,如果箱子被推到一面墙上,那么箱子只能沿着墙移动. 现在给定房间的结构,箱子的位置,搬运工的位置和箱子要被推去的位置,请你计算出搬运工至少要推动箱子多少格. Input输...

obsorb_knowledge的博客 427

Win11+VSCode+TeXLive:学术党必备的LaTeX环境配置避坑指南(2024最新版)

本文详细介绍了如何在Windows 11系统下,通过VSCode编辑器与TeXLive发行版配置高效的LaTeX学术写作环境。针对国内用户常见的镜像下载慢、插件配置复杂等问题,提供了优化方案和避坑指南,帮助科研人员和学生快速搭建流畅的学术写作工作流。

plum99的博客 619

SAP COPA实战:手把手教你用CMOD增强搞定自定义特性派生(以客户字段为例)

本文详细介绍了在SAP COPA模块中通过CMOD增强实现自定义特性派生的全流程,以客户字段为例,展示了从特性设计、SPRO配置到特性派生逻辑实现的完整步骤。重点讲解了如何利用CMOD增强技术解决业务需求,提升获利能力段分析的灵活性和准确性。

weixin_30275415的博客 429

小明系列故事——捉迷藏 HDU - 4528 (标记 四种状态,也可以说是四种状态下的最小步数,很好的题)

  小明的妈妈生了三个孩子,老大叫大明, 老二叫二明, 老三..., 老三自然就叫小明了。  一天,小明的妈妈带小明兄弟三人去公园玩耍,公园里面树木很多,有很多地方可以藏身, 于是他们决定玩捉迷藏。经过几轮的猜拳后,第一轮是小明来找其他两个人,游戏规则很简单:  只要小明可以在规定的时间内找到他们就算小明获胜,并且被发现的两个人猜拳决定谁在下一轮负责找人;如果在规定的时间内只找到一个人,那么没有被...

obsorb_knowledge的博客 399

别再死磕MuJoCo了!用PyBullet+Stable-Baselines3搞定机械臂强化学习(保姆级环境配置)

本文详细介绍了如何使用PyBullet和Stable-Baselines3构建机械臂强化学习系统,绕过昂贵的MuJoCo许可壁垒。通过实战指南,包括环境配置、机械臂Gym环境构建、训练策略与调优技巧,帮助开发者快速掌握机器人强化学习技术,提升智能控制效率。

weixin_42667269的博客 264

数的全排列和 避免重复运,top之前不入栈,还有求n的数子集,不是全排列了,而是每个数选或不选的问题

输入一个数n,下面输入n个数,求n个数的全排列; 代码: #include #include #include using namespace std; #define Max 50 int book[Max],tt[Max]; int a[Max],n; void dfs(long long x ) { if(x>n) { for(int i=1;i<=n;i++) {

obsorb_knowledge的博客 396

GraphRAG 踩坑记录

GraphRAG踩坑记录

yufanwenshu的博客 4351

《PLECS仿真与实战:从建模到高端应用》-专栏文件目录

《PLECS仿真与实战:从建模到高端应用》是一本系统介绍PLECS电力电子仿真软件的实用指南。全书共10章,首先介绍软件安装与基础操作,包括RC电路仿真等入门内容;随后深入讲解各类电力电子电路的建模与仿真,涵盖整流、交交变换、直流变换、逆变等电路;最后探讨PWM控制建模和直流调速系统等高端应用。书中配有丰富的示例程序和波形分析方法,附录还包含电力电子器件、代码生成等实用资料。该书适合电力电子领域工程师和学生系统学习电路仿真技术。

542

第八届蓝桥杯 方格分割

标题:方格分割 6x6的方格,沿着格子的边线剪开成两部分。 要求这两部分的形状完全相同。 如图:p1.png, p2.png, p3.png 就是可行的分割法。 试计算: 包括这3种分法在内,一共有多少种不同的分割方法。 注意:旋转对称的属于同一种分割法。 请提交该整数,不要填写任何多余的内容或说明文字。 题意:一定要注意经过旋转和对称的为一种情况;思路一:考试的时候,我是把这个点都编号,...

obsorb_knowledge的博客 330

Trae中配置和使用MCP 服务保姆级教程

您好,我是程序员夏叶,深度AI编程使用者,专注于分享AI编程方面的使用技巧和经验,有兴趣的可以关注我的公众号,一起学习,共同进步。从21号开始,Trae开始陆陆续续的灰度推送了一次新版本,有的用户是21号收到的更新,有的用户是22号收到的更新,本次更新我愿称之为王炸级更新,具体更新内容可以去看我的上一篇文章。本次更新其中的一个内容就是支持了MCP 服务,那么什么是MCP呢,它的全称是。

cpp加油站的专栏 8200

hdu 1175 连连看(dfs,记录转弯次数)

“连连看”相信很多人都玩过。没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子。如果某两个相同的棋子,可以通过一条线连起来(这条线不能经过其它棋子),而且线的转折次数不超过两次,那么这两个棋子就可以在棋盘上消去。不好意思,由于我以前没有玩过连连看,咨询了同学的意见,连线不能从外面绕过去的,但事实上这是错的。现在已经酿成大祸,就只能将错就错了,连线不能从外围绕过。 玩家鼠标先...

obsorb_knowledge的博客 329

SAP 系统里生成 PDF 的几条主干路径:从 Spool 转换到 Adobe 原生渲染,再到 BTP 云服务

本文系统梳理了SAP生态中PDF生成的多种技术方案,包括Spool转换、OTF转换、Smart Forms/Adobe Forms原生生成以及云端服务等不同路径。文章通过实际案例和代码示例,详细分析了各方案的适用场景、技术要点和工程实践建议,特别强调了多语言支持、字体处理、性能优化等关键因素。针对不同业务需求,提供了从简单导出到复杂交互式PDF的完整解决方案框架,为SAP环境下的PDF处理提供了实用指南。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 287

使用CubeMX配置STM32H7的FreeRTOS

本文将介绍如何使用CubeMX配置STM32H7的FreeRTOS,并提供相应的源代码示例。通过使用CubeMX,你可以轻松地配置FreeRTOS和系统资源,并生成相应的初始化代码和配置文件。在"FreeRTOS"选项卡的"Tasks"部分,可以配置系统中的任务。首先,打开CubeMX软件。在"FreeRTOS"选项卡的"Resources"部分,你可以配置FreeRTOS使用的资源,例如,堆内存和信号量。例如,我们可以创建两个简单的任务,一个任务将在循环中切换LED的状态,另一个任务将通过串口打印消息。

JeeVue的博客 711

蜘蛛牌 HDU - 1584 (dfs,中间有些东西)

题目: 蜘蛛牌是windows xp操作系统自带的一款纸牌游戏,游戏规则是这样的:只能将牌拖到比她大一的牌上面(A最小,K最大),如果拖动的牌上有按顺序排好的牌时,那么这些牌也跟着一起移动,游戏的目的是将所有的牌按同一花色从小到大排好,为了简单起见,我们的游戏只有同一花色的10张牌,从A到10,且随机的在一行上展开,编号从1到10,把第i号上的牌移到第j号牌上,移动距离为abs(i-j),现在你...

obsorb_knowledge的博客 288

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Codeforces Round #498 (Div. 3) F. Xor-Paths(双dfs,会合)

There is a rectangular grid of size n×mn×m. Each cell has a number written on it; the number on the cell (i,ji,j) is ai,jai,j. Your task is to calculate the number of paths from the upper-left cell (1...

obsorb_knowledge的博客 250

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

蓝桥杯 历届试题 地宫取宝

问题描述  X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。  地宫的入口在左上角,出口在右下角。  小明被带到地宫的入口,国王要求他只能向右或向下行走。  走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。  当小明走到出口时,如果他手中的宝贝恰好是k件,则这些宝贝就可以送给小明。  请你帮小...

obsorb_knowledge的博客 245

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

HDU - 1584 蜘蛛牌

蜘蛛牌是windows xp操作系统自带的一款纸牌游戏,游戏规则是这样的:只能将牌拖到比她大一的牌上面(A最小,K最大),如果拖动的牌上有按顺序排好的牌时,那么这些牌也跟着一起移动,游戏的目的是将所有的牌按同一花色从小到大排好,为了简单起见,我们的游戏只有同一花色的10张牌,从A到10,且随机的在一行上展开,编号从1到10,把第i号上的牌移到第j号牌上,移动距离为abs(i-j),现在你要做的是求...

obsorb_knowledge的博客 154
上一篇: 数的全排列和 避免重复运,top之前不入栈,还有求n的数子集,不是全排列了,而是每个数选或不选的问题
下一篇: CodeForces - 877B Nikita and string (前缀和后缀,任意删除)
obsorb_knowledge
博客等级 码龄9年 38粉丝 213原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值