当前位置: 首页 > news >正文

USACO08 OPEN Roads Around the Farm S (递归)

(我太垃了,得写点题解提升一下)

P2907 [USACO08OPEN] Roads Around The Farm S

题目描述

Farmer John 的奶牛对探索农场周围的领地产生了兴趣。最初,所有 $N$ 头奶牛($1 \leq N \leq 10^9$)以一个大群体的形式开始沿着一条道路旅行。当遇到岔路时,群体有时会选择分成两个较小的(非空)群体,每个群体沿着一条道路继续前进。当其中一个群体到达另一个岔路时,它可能会再次分裂,依此类推。

奶牛们设计了一种特殊的分裂方式:如果它们可以分裂成两个群体,使得群体的大小正好相差 $K$($1 \leq K \leq 1000$),那么它们就会以这种方式分裂;否则,它们就停止探索,开始安静地吃草。

假设总是会有新的岔路,计算最终安静吃草的奶牛群的数量。

输入格式

两个空格分隔的整数,$N$ 和 $K$。

输出格式

一个整数,表示安静吃草的奶牛群的数量。

输入输出样例 #1

输入 #1

6 2

输出 #1

3

说明/提示

有 $6$ 头奶牛,群体大小的差异是 $2$。

最终有 $3$ 个群体(分别有 $2$、$1$ 和 $3$ 头奶牛)。

  6/ \
2   4/ \1   3

(由 ChatGPT 4o 翻译)
就是一个比较简单的递归吧。。。
首先牛群的数量就是分成不同群体的次数再+1,就直接定义ans=1了
假设分出来的两个牛群中,数量较多的是x,数量较少的y
那么x=(n+k)/2, y=(n-k)/2
则 x-y=k,x+y=n
得到2x=n+k;
所以递归的终止条件就是n+k不是偶数了。不是偶数怎么分成两群牛呢???
还有,当x<=0或x>=n的时候递归也终止,怎么可能牛的数量小于0或一群牛的数量大于所有牛的数量呢?
对于y,这也是成立的,所以y<=0或y>=n也是终止条件
否则,ans++, 继续调用x和y
代码如下↓
#include<iostream> using namespace std; int n,k; int ans=1; void f(int n){ int x=(n+k)/2; int y=n-x; if((n+k)%2!=0) return ; else{ if(x<=0||x>=n) return; if(y<=0||y>=n) return ; ++ans; f(x); f(y); } } int main(){ cin>>n>>k; f(n); cout<<ans<<endl; return 0; }
就这样了。。。也就嘛嘛。。。
(最近在打音游,求键盘推荐。我用的迈从Ace60 蓝冰磁轴手感真的不戳儿~就是有点吵 啊喂)

http://www.rkmt.cn/news/3759.html

相关文章:

  • JavaScript生成随机数的方法
  • LiveOS 的制作简介
  • 目标检测 | 基于Weiler–Atherton算法的IoU求解
  • 对比Java学习Go——函数、集合和OOP
  • 【WRF-VPRM 预处理器】HEG 安装(服务器)-MRT专业的工具替代
  • redis实现缓存2-解决缓存穿透,缓存击穿
  • 单克隆抗体人源化:从鼠源缺陷到全人源突破,3 大阶段破解临床应用难题
  • C 语言实现动态数组、链表、栈与队列
  • git reset
  • Brute It -TryHackMe
  • 题解:P12336 第三心脏
  • Spring篇知识点(1)
  • uniapp原生插件 TCP Socket 利用文档
  • 【PyQt5】实现输入延迟响应:3秒无输入后自动读取内容
  • Windows 自带的SSH中配置X11
  • 完整教程:技术小白如何快速的了解opentenbase?--把握四大特色
  • 9.13日模考总结
  • 高斯消元
  • uni-app iOS 性能监控全流程 多器具协作的实战优化指南
  • 十八、CPU的控制流:正常控制流和异常控制流
  • 使用 C# 设置 Excel 单元格格式 - 教程
  • 【ARM Cache 及 MMU 系列文章 6.1 -- Cache maintenance 指令及相关寄存器有哪些?】
  • 每日Java并发面试系列(5):基础篇(线程池的核心原理是什么、线程池大小设置为多少更合适、线程池哪几种类型?ThreadLocal为什么会导致内存泄漏?) - 实践
  • 模仿玩家习惯的简单AI系统:GoCap
  • 浅谈马拉车
  • 十七、异常和中断响应过程的时序图
  • 直播平台搭建,浏览器中的事件循环与Node中的事件循环 - 云豹科技
  • Redisson 分布式锁的实现原理 - 教程
  • ros2--service/服务--接口 - 教程
  • 深入解析:【Unity基础】枚举AudioType各个枚举项对应的音频文件类型