USACO 2024 Jan B题解

本期是USACO 2024年1月铜组的题解。(洛谷上有题目,可以提交)

Majority Opinion:

这题关键在于一个长度为3的区间内如果有两只牛有相同的喜好,那么是可以将这个区间全部同化,那么可以一步一步的拓展,最终一定可以覆盖所有。其他情况都是不可能的比如说:abbabba...

放个代码↓

#include <bits/stdc++.h>
using namespace std;
long long a[100005];
set<long long> ans;
int main(){int tc;cin>>tc;while(tc--){ans.clear();int n;cin>>n;for(int i=1;i<=n;i++){cin>>a[i];if(i>=3){if(a[i]==a[i-2] || a[i]==a[i-1])ans.insert(a[i]);else if(a[i-1]==a[i-2])ans.insert(a[i-1]);}}if(n==2){if(a[1]==a[2])cout<<a[1]<<endl;elsecout<<"-1"<<endl;}else{if(ans.empty())cout<<"-1";for(set<long long>::iterator itr=ans.begin();itr!=ans.end();itr++){cout<<*itr;cout<<' ';//注意判断itr是否是ans.end()的前一位(ans.end()是空的)}cout<<endl;		}}return 0;
}

Cannonball:

其实就是简单地模拟。判环的话,就记录一下每个点的力度和方向,只要再次出现就break。

//可怜的奶牛啊,被当做加农炮使
#include <bits/stdc++.h>
using namespace std;
int a[100005],b[100005],p[100005],d[100005];
bool vis[100005];
int main(){int n,s;cin>>n>>s;for(int i=1;i<=n;i++)cin>>a[i]>>b[i];int dir=1,power=1,ans=0;while(s>=1 && s<=n){if(a[s]){if(!vis[s] && power>=b[s]){vis[s]=true;p[s]=power;d[s]=dir;ans++;}else if(p[s]==power && d[s]==dir)break;}else{power+=b[s];dir*=-1;}s+=power*dir;}cout<<ans<<endl;return 0;
}

Balancing Bacteria:

非常需要G(技)巧的题目。我看了半天也不会,暴力都打不了,结果一看题解是二阶差分!!!!!!!什么鬼玩意啊啊啊啊啊啊啊啊啊啊

如果在差分两次后的数组的第i位上加1,就相当于在原数组i~n上加上了一个首项为1公差为1的等差数列。所以,a两次差分后所有数的绝对值的和,就是答案。代码实现很简单,我就放了。

---------------------------------------------------------------------------------------------------------------------------

OK,这就是本期的全部内容。我们下期再见!

友情提示:本期的全部代码都有问题,请不要无脑Ctrl C+Ctrl V

//彩蛋
#include <bits/stdc++.h>
using namespace std;
long long a[200005],opt1[200005],opt2[200005];
int main(){long long n;cin>>n;long long ans=0;for(int i=1;i<=n;i++){cin>>a[i];opt1[i]=a[i]-a[i-1];opt2[i]=opt1[i]-opt1[i-1];ans+=abs(opt2[i]);}cout<<ans<<endl;return 0;
}

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

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

相关文章

算法讲解之字符串

前言&#xff1a; 本文主要讲解算法中和字符串结合的题目&#xff0c;跟字符串结合的算法题种类丰富&#xff0c;主要是跟别的算法结合&#xff0c;下面介绍几道比较经典的题目~ 第一道&#xff1a;14. 最长公共前缀 题目描述&#xff1a; 编写一个函数来查找字符串数组中的…

987. 二叉树的垂序遍历 - 力扣(LeetCode)

题目描述 给你二叉树的根结点 root &#xff0c;请你设计算法计算二叉树的 垂序遍历 序列。 对位于 (row, col) 的每个结点而言&#xff0c;其左右子结点分别位于 (row 1, col - 1) 和 (row 1, col 1) 。树的根结点位于 (0, 0) 。 二叉树的 垂序遍历 从最左边的列开始直到…

简单的结构体应用实例。

#include <stdio.h> struct programming { float constant; char *pointer; }; int main() { struct programming variable; char string[] "菜鸟教程&#xff1a;https://www.runoob.com"; variable.constant 1.23; variabl…

生活篇——华为手机去除负一屏

华为手机去除如下图的恶心负一屏 打开华为的应用市场app 进入&#xff1a;我的-设置-国家/地区&#xff08;改为俄罗斯&#xff09;-进入智慧助手检查更新并更新智慧助手。 然后重复开始的操作&#xff0c;将地区改回中国&#xff0c;这样就没有负一屏了。

初中生用什么台灯最好?精选高口碑的学生护眼台灯

其实现在的孩子从上初中开始&#xff0c;他们的学习压力就已经很大了&#xff0c;繁重的功课让他们经常用眼过度&#xff0c;导致早早就戴上小眼镜。所以要想孩子拥有一个良好的视力健康&#xff0c;不仅要从日常的坐姿、用眼习惯开始纠正、培养&#xff0c;夜晚学习时的那一盏…

二叉树 ---- 所有结点数

普通二叉树的结点数&#xff1a; 递归法&#xff1a; 对二叉树进行前序or后序遍历&#xff1a; typedef struct Tree {int data;Tree* leftChild;Tree* rightChild; }tree,*linklist; //计算普通二叉树的结点数 int nodenums(linklist node) {if(node nullptr) return 0; …

麻将普通胡牌算法(带混)

最近在玩腾讯的麻将游戏,但是经常需要充值,于是就想自己实现一个简单的单机麻将游戏.第一个难点就是实现胡牌的判断.这里写一下心得. 术语 本文的胡牌是指手牌构成了3N2的牌型,即一对做将,剩下的牌均为刻子(3张一样的牌)或者顺子(3张连续的牌比如234饼). 下面就是一个14张牌…

2.14作业

整理移植操作系统到开发板要进行的工作&#xff0c;具体步骤 安装tftp服务器和nfs服务器&#xff0c;准备需要下载到开发板文件&#xff0c;存放在指定下载文件夹下&#xff0c;准备需要挂载到开发板文件夹&#xff0c;存放在指定挂载文件夹中。 ubuntu和开发板组网&#xff0c…

状态监测防火墙详细工作流程

状态监测防火墙是一种用于监测和分析网络通信状态的安全设备。其工作流程通常包括以下几个步骤&#xff1a; 1. 采集数据&#xff1a;防火墙会采集来自网络流量的数据&#xff0c;包括 IP 地址、端口号、协议类型等信息&#xff0c;并将其存储在数据库中。 2. 分析数据&#xf…

突破编程_C++_面试(基础知识(14))

面试题52&#xff1a;什么是操作符重载&#xff0c;它的用途是什么 操作符重载是 C 中的一个重要概念&#xff0c;它允许程序员重新定义或重载已有的操作符&#xff0c;使其能够用于用户自定义的数据类型。这种重载的目的是为了使得用户自定义的数据类型能够像内置类型一样方便…

CPython:表达式的求值顺序(evaluation order)

相关阅读 Pythonhttps://blog.csdn.net/weixin_45791458/category_12403403.html?spm1001.2014.3001.5482 C中表达式的求值 C语言针对表达式的计算&#xff0c;设置了操作符的优先级和结合性这两个特性&#xff0c;优先级用于解析不同优先级的符号&#xff0c;结合性用于解析…

2024年,要特别注意这两个方位

家居风水对每个家庭都非常重要&#xff0c;可在无形中影响到人们的事业、财富以及健康运势。俗话说&#xff1a;“风水轮流转”&#xff0c;2024年为甲辰龙年&#xff0c;斗转星移、九宫飞星将改变宫位&#xff0c;新一年的磁场即将启动&#xff0c;方位的吉凶也会重新变动&…

oracle单机打DBBP补丁

书接上回 ORA-600 adg无法查询故障-CSDN博客 https://blog.csdn.net/q195136130/article/details/135445378?spm1001.2014.3001.5502 单机安装DBBP 解压缩补丁包 unzip p34204559_121020_Linux-x86-64.zip 关闭数据库 su - oraclesqlplus / as sysdbashut immediate 检查…

Mac上软件闪退(意外退出)的解决方法

mac苹果电脑上运行软件会意外退出&#xff0c;怎么办&#xff0c;可以试试下面的方法&#xff0c;亲测可行&#xff01; 第一种方法&#xff1a; 1、打开访达&#xff0c;进入应用程序目录&#xff0c;找到闪退的软件图标&#xff0c;在软件图标上右键选择“显示简介”&#…

OpenCV 人脸检测(易上手版)

在丰富多彩的计算机视觉世界中&#xff0c;人脸检测是最有趣和最广泛应用的领域之一。无论是在安全系统、用户界面控制&#xff0c;还是在社交媒体中应用过滤器&#xff0c;准确有效地检测人脸的能力都是至关重要的。今天&#xff0c;很高兴与大家分享如何在 Python 中使用 Ope…

【网络攻防实验】【北京航空航天大学】【实验三、口令破解(Password Cracking)实验】

实验三、口令破解(Password Cracking)实验 一、 L0phtCrack破解实验 1、 注册L0phtCrack: 2、 设置口令: (1) 创建3个新账户: 帐户创建过程(以test-1为例): 帐户创建结果: (2) 使用L0phtCrack破解口令:(使用管理员账号运行程序) 口令破解结果: 正确破解口令…

探讨深度学习

深度学习 深度学习概述进展崛起框架 主页传送门&#xff1a;&#x1f4c0; 传送 深度学习 概述 深度学习是机器学习领域的一个分支&#xff0c;它是一种基于人工神经网络的学习方法&#xff0c;旨在让 计算机模仿人类大脑的神经结构和学习方式&#xff0c;从大量数据中学习并…

LeetCode--代码详解 155.最小栈

155.最小栈 题目 设计一个支持 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶…

代码随想录算法训练营Day25|回溯算法·组合总和III,电话号码的字母组合

组合总和III 题目&#xff1a;找出所有相加之和为n的k个数的组合。组合中只允许含有1-9的正整数&#xff0c;并且每种组合中不存在重复的数字。 组合变量个数为k个&#xff0c;和为n。简单思路是使用k重循环&#xff0c;一层层找出来&#xff0c;然后把每一层的数相加&#x…