尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

USACO08 OPEN Roads Around the Farm S (递归)

USACO08 OPEN Roads Around the Farm S (递归)
📅 发布时间:2026/6/18 22:25:18

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

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 蓝冰磁轴手感真的不戳儿~就是有点吵 啊喂)

相关新闻

  • JavaScript生成随机数的方法
  • LiveOS 的制作简介
  • 目标检测 | 基于Weiler–Atherton算法的IoU求解

最新新闻

  • 2026苏州市APP开发公司排名:十大定制开发服务商推荐 - IT老炮老刘
  • 【2026年6月】精编土工格栅与土工材料厂家推荐指南 - 多才菠萝
  • DeepSeek R1不是GPT蒸馏产物:从软标签缺失到VCOT架构的真相
  • 微信机器人防封终极指南:基于WeChaty的多模型AI智能助手实战部署
  • ansible急速入门实战篇
  • MSC8102分组电话农场卡硬件设计深度解析:从多处理器架构到电信级板卡实战

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号