【ACM】—蓝桥杯大一暑期集训Day3

🚀欢迎来到本文🚀
🍉个人简介:陈童学哦,目前学习C/C++、算法、Python、Java等方向,一个正在慢慢前行的普通人。
🏀系列专栏:陈童学的日记
💡其他专栏:C++STL,感兴趣的小伙伴可以看看。
🎁希望各位→点赞👍 + 收藏⭐️ + 留言📝 ​
⛱️学习应使你快乐!望与诸君共勉!🏄‍♂️

在这里插入图片描述

Day3集训

  • 前言
  • A - Subtraction Game
    • 解题思路
    • 示例代码
  • B - 全排列
    • 解题思路
    • 示例代码
  • C - 健康的奶牛
    • 解题思路
    • 示例代码
  • D - New Year Transportation
    • 解题思路
    • 示例代码
  • 总结

前言

因参加了我校的ACM暑期集训为之后的xcpc等赛事做准备,所以就有了此文哈哈。本文主要复盘做题的过程以及一些感悟,便于复习巩固。辣么现在废话也不多说啦,直接往下看吧哈哈。

A - Subtraction Game

来源:CodeForces - 1844A. Subtraction Game
在这里插入图片描述
在这里插入图片描述
题意: 两个人先后从一堆石子中取a或b个石子,最先无法取得石子的人就输了,输入给出a和b,要求输出的n使得先手开局必输。

解题思路

这道题其实是雷声大雨点小啦,就是谁先把石子取完让另一个人无法再取的话就赢了,那么只要后手的那个人取石子的时候能够全部取完让先手的无法取得即可求解,题目所给样例可能有点迷惑性哈。

示例代码

#include <bits/stdc++.h>
using namespace std;
int main() {int t,a,b;cin>>t;while (t--) {cin>>a>>b;cout<<a+b<<endl;}return 0;
}

B - 全排列

来源:洛谷P1706 全排列问题
在这里插入图片描述

解题思路

本题用dfs深搜回溯再剪枝把所有情况罗列出来即可

示例代码

#include<bits/stdc++.h>
using namespace std;
int n,g[105],s[105];
void print(){for(int i=1;i<=n;i++)printf("%5d",s[i]);printf("\n");
}
void dfs(int x){if(x==n){print();return;}for(int i=1;i<=n;i++){if(!g[i]){g[i]=1;s[x+1]=i;dfs(x+1);g[i]=0;}}
}
int main(){cin>>n;dfs(0);
}

C - 健康的奶牛

来源:洛谷P1460 [USACO2.1] 健康的荷斯坦奶牛 Healthy Holsteins
在这里插入图片描述
在这里插入图片描述

解题思路

这道题用dfs深搜不需要剪枝,本蒟蒻没有做出来,看了某位神犇的哇

示例代码

#include<bits/stdc++.h>
using namespace std;
int co[1001];
int a[1001];
int b[1001][1001];
int c[1001];
int n,m,minn=0x3f3f3f3f;
bool judge(int x){for(int i=1;i<=n;i++){int sum=0;for(int j=1;j<=x;j++)sum+=b[c[j]][i];if(sum<a[i])return false;		}return true;
}void dfs(int t,int s){if(t>m){if(judge(s)){if(s<minn){minn=s;for(int i=1;i<=minn;i++)co[i]=c[i];}}return;}c[s+1]=t;dfs(t+1,s+1);c[s+1]=0;dfs(t+1,s);}int main(){cin>>n;for(int i=1;i<=n;i++)cin>>a[i];cin>>m;for(int i=1;i<=m;i++){for(int j=1;j<=n;j++)cin>>b[i][j];}dfs(1,0);cout<<minn<<' ';for(int i=1;i<=minn;i++)cout<<co[i]<<' ';
}

D - New Year Transportation

来源:CodeForces - 500A. New Year Transportation

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

解题思路

这题用for循环递推一下,理清思路即可。

示例代码

#include<iostream>
using namespace std;
int main()
{int a[30005];int n,t,i;cin>>n>>t;for(i=1;i<n;i++)cin>>a[i];for(i=1;i<t;i+=a[i]); //递推if(i==t)cout<<"YES"<<endl;elsecout<<"NO"<<endl;
}

总结

Day3的题主要考察搜索,这类算法通常较难,需多加理解递归思想。
算法:dfs、bfs、回溯、递归、递推
感悟:dfs、bfs等算法的使用还需多加做题才能深入理解
总结:每个算法都有其巧妙处,搜索算法更是巧妙

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

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

相关文章

langchain学习笔记(九)

RunnableBranch: Dynamically route logic based on input | &#x1f99c;️&#x1f517; Langchain 基于输入的动态路由逻辑&#xff0c;通过上一步的输出选择下一步操作&#xff0c;允许创建非确定性链。路由保证路由间的结构和连贯。 有以下两种方法执行路由 1、通过Ru…

Vue开发实例(一)Vue环境搭建第一个项目

Vue环境搭建&第一个项目 一、环境搭建二、安装Vue脚手架三、创建Vue项目 一、环境搭建 下载方式从官网下载&#xff1a;http://nodejs.cn/download/ 建议下载v12.16.0版本以上的&#xff0c;因为版本低无法创建Vue的脚手架 检验是否安装成功 配置环境变量 新增NODE_HOME&…

win11系统中nginx简单的代理配置

一.背景 为了公司安排的师带徒任务。 操作系统版本&#xff1a;win11家庭版 nginx版本&#xff1a;1.24.0 二.配置代理 之前文章已经说明了nginx简单的安装&#xff0c;要看阅读这个文章哈。web服务器nginx下载及在win11的安装-CSDN博客 1.配置需求识别 前端服务nginx(80…

【探索AI】十七 深度学习之第3周:卷积神经网络(CNN)(一)-CNN的基本原理与结构

第3周&#xff1a;卷积神经网络&#xff08;CNN&#xff09; CNN的基本原理与结构 常见的卷积层、池化层与全连接层 LeNet、AlexNet等经典CNN模型 实践&#xff1a;使用CNN进行图像分类任务 CNN的基本原理与结构 引言与背景介绍 卷积神经网络&#xff08;CNN&#xff09;是…

双周回顾#007 - 前端与后端

前端的问题不是难&#xff0c;而是它面对最终用户。只要用户的喜好和口味发生变化&#xff0c;前端就必须跟上。 这导致前端不得不快速变化&#xff0c;因为用户的口味正在越来越快地改变。 后端不需要面对最终用户&#xff0c;需要解决的都是一些经典的计算机科学问题&#…

什么是Vue指令?请列举一些常见的Vue指令以及它们的用法

Vue.js 是一款流行的前端框架&#xff0c;它的指令&#xff08;Directives&#xff09;是 Vue.js 提供的一种特殊属性&#xff0c;用于在模板中对 DOM 元素进行直接操作。指令通常是以 v- 开头的特殊属性&#xff0c;用于响应式地将数据绑定到 DOM 元素上。 在 Vue 中&#xf…

C语言初阶—函数(函数的声明和定义,函数递归)

函数声明&#xff1a; 1.告诉编译器有一个函数叫什么&#xff0c;参数是什么&#xff0c;返回类型是什么&#xff0c;但是具体是不是存在&#xff0c;函数声明决定不了。 2.函数的声明一般出现在函数使用之前&#xff0c;要满足先声明后使用。 3.函数的声明一般要放在头文件中。…

Launch学习

参考博客&#xff1a; (1) 史上最全的launch的解析来啦&#xff0c;木有之一欧 1 ROS工作空间简介 2 元功能包 src目录下可以包含多个功能包&#xff0c;假设需要使用机器人导航模块&#xff0c;但是这个模块中包含着地图、定位、路径规划等不同的功能包&#xff0c;它们的逻…

agent内存马

搭建一个简单的Servlet项目 ServletDemo package com.naihe;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;…

vue2+若依框架plus交互 路由介绍

本周及寒假 参加了校企合作的工程过程管理&#xff0c;和学长学姐一起写项目&#xff0c;之前学了vue也没有应用&#xff0c;然后对框架很多组件的用法不太了解&#xff0c;前期耽误了一些时间。 框架模块 首先是框架模块的介绍 api存了一些系统管理及发送请求的方法 例如p…

【python】`assert`断言语句

assert是一个断言语句&#xff0c;用于在代码中检查某个条件是否为真。 如果条件为假&#xff0c;将触发AssertionError 异常&#xff0c;从而指示存在错误。

在您的下一个项目中选择 Golang 和 Node.js 之间的抉择

作为一名软件开发者&#xff0c;我总是在寻找构建应用程序的最快、最高效的工具。在速度和处理复杂任务方面&#xff0c;我认为 Golang 和 Node.js 是顶尖技术。两者在性能方面都享有极高的声誉。但哪一个更快——Golang 还是 Node&#xff1f;我决定深入一些硬核基准测试&…

java-ssm-jsp-宠物护理预定系统

java-ssm-jsp-宠物护理预定系统 获取源码——》公主号&#xff1a;计算机专业毕设大全

物联网与智慧城市:融合创新,塑造未来城市生活新图景

一、引言 在科技飞速发展的今天&#xff0c;物联网与智慧城市的融合创新已成为推动城市发展的重要力量。物联网技术通过连接万物&#xff0c;实现信息的智能感知、传输和处理&#xff0c;为智慧城市的构建提供了无限可能。智慧城市则运用物联网等先进技术&#xff0c;实现城市…

使用R语言进行Logistic回归分析(2)

一、数据集描述&#xff0c;问题要求 下表是40位肺癌病人的生存资料&#xff0c;X1表示生活行为能力平分&#xff08;1到100&#xff09;&#xff0c;X2为病人的年龄&#xff08;年&#xff09;&#xff0c;X3由诊断到进入研究的时间&#xff08;月&#xff09;&#xff0c;X4…

计算机设计大赛 深度学习火车票识别系统

文章目录 0 前言1 课题意义课题难点&#xff1a; 2 实现方法2.1 图像预处理2.2 字符分割2.3 字符识别部分实现代码 3 实现效果4 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 图像识别 火车票识别系统 该项目较为新颖&#xff0c;适…

Pycharm的下载安装与汉化

一.下载安装包 1.接下来按照步骤来就行 2.然后就能在桌面上找到打开了 3.先建立一个文件夹 二.Pycharm的汉化

ABAP - SALV教程07 斑马纹显示和SALV标题

SALV设置斑马纹和标题 METHOD set_layout.DATA: lo_display TYPE REF TO cl_salv_display_settings. * 取得显示对象lo_display co_alv->get_display_settings( ).* 设置ZEBRA显示lo_display->set_striped_pattern( X ). * 设置Titlelo_display->set_list_he…

企业微信变更主体怎么改?

企业微信变更主体有什么作用&#xff1f;做过企业运营的小伙伴都知道&#xff0c;很多时候经常会遇到现有的企业需要注销&#xff0c;切换成新的企业进行经营的情况&#xff0c;但是原来企业申请的企业微信上面却积累了很多客户&#xff0c;肯定不能直接丢弃&#xff0c;所以这…

【二】【SQL】去重表数据及分组聚合查询

去重表数据 表的准备工作 去除表中重复的数据&#xff0c;重复的数据只留一份。 mysql> create table duplicate_table (-> id int,-> name varchar(20)-> ); Query OK, 0 rows affected (0.03 sec)mysql> insert into duplicate_table values-> (100,aaa)…