洛谷P2907 [USACO08OPEN]Roads Around The Farm S

P2907 [USACO08OPEN]Roads Around The Farm S 题目描述 Farmer John's cows have taken an interest in exploring the territory around the farm. Initially, all N (1 <= N <= 1,000,000,000) cows commence traveling down a road in one big group. Upon encountering a fork in the road, the group sometimes cho 阅读详情

题目描述

约翰的 N 只奶牛要出发去探索牧场四周的土地。它们将沿着一条路走,一直走到三岔路口(可以认为所有的路口都是这样的)。这时候,这一群奶牛可能会分成两群,分别沿着接下来的两条路继续走。如果她们再次走到三岔路口,那么仍有可能继续分裂成两群继续走。

奶牛的分裂方式十分古怪:

如果这一群奶牛可以精确地分成两部分,这两部分的牛数恰好相差 M 头,那么在三岔路口牛群就会分裂。

否则,牛群不会分裂,她们都将在这里待下去,平静地吃草。 请计算,最终将会有多少群奶牛在平静地吃草。

数据范围:

1≤N≤10^9

1≤M≤10^3


思路

首先,如果牛是奇数只,就要

平静热闹地吃草

或者说,牛的数量小于等于M,说明无法再分成相差M的两个牛群了

否则,就使用我们数学中的知识,将现在牛的数量减去M后除以2(一定是除以,不是除【这是一年级的小孩常错的。。。】),这就是一群牛的数量,另外一群比这群多M头牛就是【+M】


code:

#include <bits/stdc++.h>

using namespace std;

int n, m, s;

void f (int x) {
	if ((x - m) % 2 != 0 || x <= m) {
		s++;
		return;
	}
	else {
		f ((x - m) / 2);
		f ((x - m) / 2 + m);
	}
}

int main () {
	
	cin >> n >> m;
	
	f (n);
	
	cout << s;
	
	return 0;
}

EtherCAT-7 从站代码移植-SPI STM32F103 + AX58100,从站代码移植。 阅读详情

相关推荐

stm32驱动NRF24L01_原理+代码解析

NRF24L01是NORDIC公司生产的一款无线通信通信芯片,采用FSK 调制,集成NORDIC自家的Enhanced Short Burst协议。可以实现点对点或是1对6的无线通信。无线通信速度最高可达到2Mbps。①2.4G全球开放的ISM频段,免许可证使用。②最高工作速率2Mbps,高校的GFSK调制,抗干扰能力强。③126个可选的频道,满足多点通信和调频通信的需要。④内置CRC检错和点对多点的通信地址控制。⑤可设置自动应答,确保数据可靠传输。//NRF24L01寄存器操作命令。

zyc18700766982的博客 2万+

BZOJ 1621: [Usaco2008 Open]Roads Around The Farm分岔路口

Description     约翰的N(1≤N≤1,000,000,000)只奶牛要出发去探索牧场四周的土地.她们将沿着一条路走,一直走到三岔路口(可以认为所有的路口都是这样的).这时候,这一群奶牛可能会分成两群,分别沿着接下来的两条路继续走.如果她们再次走到三岔路口,那么仍有可能继续分裂成两群继续走.    奶牛的分裂方式十分古怪:如果这一群奶牛可以精确地分成两部分,这两部分的牛数恰好相

jjs98 1321

【亲测好用】解决Windows系统Vscode终端无法使用yarn报错无法加载文件

我明明使用`npm i -g yarn ` 安装成功了 甚至在文件夹处 CMD 也可以看到yarn 的版本 甚至在Vscode中又重新安装了一遍yarn 为什么还是报错呢?

Aeporn的博客 888

P2907 [USACO08OPEN]Roads Around The Farm S 洛谷

如果这一群奶牛可以精确地分成两部分,这两部分的牛数恰好相差 K 头,那么就会分成两群牛。假设能分成两个群体,设较多的小群体牛数为a,较少的小群体牛数为b。因此能分裂的条件是,分裂前的牛数减去相差的k值能被2整除。问最后分成了多少群牛。(求牛被划成了多少个小群体)否则,牛群不会分裂,原地不动。若不能分裂,即就是一群。这题我的思路是递归。由此递归函数代码如下。

MY230305的博客 296

X86/64架构中的总线 和 ARM架构中总线的理解

内部总线 /CPU总线/FSB前端总线:类似ARM架构中的AHB总线北桥? 直接和CPU连接,这条总线主要由CPU使用,用来与高速缓存、主存和北桥(或MCH)之间传送信息。 外部总线:类似ARM架构中的APB总线(外围总线)南桥?例如PCI总线、USB总线等 通过北桥与CPU连接(南桥?),是CPU与内存RAM、ROM和输入/输出设备接口之间进行通讯的通路 内存总线:内存与北桥间的总线称为内存总线 ...

a746742897的博客 1067

BZOJ 1621 [Usaco2008 Open]Roads Around The Farm分岔路口:分治 递归

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1621 题意:   约翰的N(1≤N≤1,000,000,000)只奶牛要出发去探索牧场四周的土地。   她们将沿着一条路走,一直走到三岔路口(可以认为所有的路口都是这样的)。   这时候,这一群奶牛可能会分成两群,分别沿着接下来的两条路继续走。   如果她们再次走到三岔...

a1392136的博客 324

智能预测性维护AI系统实战效率提升:AI应用架构师的技巧分享

在工业领域,预测性维护(Predictive Maintenance, PdM)是降低停机损失、优化维护成本的关键手段。然而,现有系统往往面临三大效率瓶颈数据处理延迟:工业设备产生的海量实时数据(如传感器、PLC)需传输至云端处理,导致预警滞后;模型推理效率:复杂深度学习模型(如ResNet、Transformer)在边缘设备上推理时间长,无法满足实时要求;落地集成困难:与企业现有ERP、MES、SCADA系统对接繁琐,导致“模型好用但业务不用”的尴尬。本文从架构、数据、模型、落地架构设计。

AI天才研究院 746

[C]奶牛生奶牛问题

一只刚出生的奶牛,4年生1只奶牛,以后每一年生1只。现在给你一只刚出生的奶牛,求20年后有多少奶牛。 #define _CRT_SECURE_NO_WARNINGS 1 #include &lt;stdio.h&gt; //一只刚出生的奶牛,4年生1只奶牛,以后每一年生1只。现在给你一只刚出生的奶牛,求20年后有多少奶牛。 //递归的好用处 int CalCowsNum(int iYear) ...

quchen528的博客 3312

关于DEJA_VU3D - Cesium功能集专栏说明

专栏主要目的是对工作中基于Cesium实现过的功能进行整合,暂时打算一周2-3更的样子来更新,每一篇都会奉上完整源代码(尽可能把代码简洁一些)。功能实现大多数是自己琢磨实现的,也有参考其他大神后整理实现的,初步算了算现在有差不多实现小130个左右的功能,后续也会不断的更新。..........................................

总得学点什么的博客 2万+

性能调优秘籍——让OpenClaw运行速度提升10倍(2026优化版)

OpenClaw性能优化核心摘要 本文详细介绍了提升OpenClaw系统性能的关键技术,包括: 使用性能分析器进行代码级性能诊断 内存优化与高效缓存策略 并发处理优化技术 数据库查询性能提升方法 重点内容包括: 全面的性能分析工具实现(计时、内存监控、错误跟踪) 自动生成性能报告和优化建议 操作耗时与内存占用分析算法 关键性能指标(平均耗时、内存增长)计算 通过系统性的性能分析优化,可使OpenClaw运行速度提升10倍以上。

博客 903

信息奥赛课课通(C++)p223-农场周围的道路

问题描述: 约翰的奶牛对探索农场周围的地域很感兴趣。最初,所有N头奶牛沿着一条路一起行动。在遇到一个岔路口后,奶牛们分成两组(没有一组为空)后继续往下走。当其中一组遇到另一个岔路口后,继续分成两组,一直这样下去。 奶牛有一种奇特的分组方法;如果它们能将奶牛分成两组奶牛数目相差K,则它们将按此方法分组;否则,它们将停止探索,开始安静地吃草。 假定在路上总是会有新的岔路出现,计算最后停下来吃草的奶牛的...

mengdicfm的博客 2324

DeepSeek揭秘:构建高效反洗钱智能监控系统的全流程与代码实例

在金融领域,反洗钱(AML)是一项至关重要的任务。随着金融交易的复杂性和规模不断增长,传统的手工监控方法已无法满足现代金融系统的需求。因此,开发一个智能监控系统来自动识别和报告可疑交易变得尤为重要。本文将详细介绍如何使用DeepSeek技术构建一个高效的反洗钱智能监控系统,并提供相关的代码实例。

理论都是虚的,代码才是王道。 886

洛谷P2907 [USACO08OPEN] Roads Around The Farm S 题解

因此,我们可以得出结论,一群奶牛最终能否分裂取决于其数量是否与K具有相同的奇偶性。如果具有相同的奇偶性,则可以继续分裂;如果不相同,则不能分裂,将会形成一个最终的群体。这个问题可以通过观察和数学推理来解决。我们需要找到一个规律,即给定初始奶牛数量N和每次分裂时两组奶牛数量之差K,最终会有多少群奶牛在平静地吃草。首先,我们可以注意到,每次分裂后,每一群奶牛的数量都会减少。因此,最终每一群奶牛的数量都会减少到某个值,使得无法再按照差值为K的方式分裂。,那么这群奶牛能够分裂的条件是存在两个正整数。

GalaxyDeepLove的博客 1025

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

洛谷 P2907 [USACO08OPEN]农场周围的道路Roads Around The Farm

思路:深度优先搜索(dfs),递归 #include<bits/stdc++.h> using namespace std; typedef long long ll; ll dfs(ll n,ll k) { if ((n + k) % 2 == 1||n<=k)return 1;//不能继续分 else return dfs((n + k) / 2, k)+dfs((n ...

weixin_44413191的博客 686

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

P2907 [USACO08OPEN] Roads Around The Farm S(递归)

Farmer John 的奶牛对探索农场周围的领地产生了兴趣。最初,所有N头奶牛(1≤N≤109)以一个大群体的形式开始沿着一条道路旅行。当遇到岔路时,群体有时会选择分成两个较小的(非空)群体,每个群体沿着一条道路继续前进。当其中一个群体到达另一个岔路时,它可能会再次分裂,依此类推。奶牛们设计了一种特殊的分裂方式:如果它们可以分裂成两个群体,使得群体的大小正好相差K1≤K≤1000),那么它们就会以这种方式分裂;否则,它们就停止探索,开始安静地吃草。

欢迎来到码高信奥胡老师的博客~ 242

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

[洛谷]P2907 [USACO08OPEN]农场周围的道路Roads Around The Farm (#数学 -1.12)(#搜索 -1.25)

题目描述 Farmer John's cows have taken an interest in exploring the territory around the farm. Initially, all N (1 &lt;= N &lt;= 1,000,000,000) cows commence traveling down a road in one big group. Upon ...

A.pro的博客 490

【洛谷P2907】 【USACO08OPEN】农场周围的道路 水模拟分治

P2907 [USACO08OPEN]农场周围的道路Roads Around The Farm 题目描述 Farmer John's cows have taken an interest in exploring the territory around the farm. Initially, all N (1 <= N <= 1,000,000,000) cows com

嘒彼小星 667

bzoj1621 / P2907 [USACO08OPEN]农场周围的道路Roads Around The Farm

P2907 [USACO08OPEN]农场周围的道路Roads Around The Farm 基础dfs,按题意递归即可。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #define re register 5 using namespace...

dingqiongliang0363的博客 293

深挖C++:类和对象(中)

(先进后出)

xys_678的博客 255

C++移动构造函数详解

移动构造函数是C++11引入的一种特殊构造函数,用于从临时对象(右值)"窃取"资源来初始化新对象,而不是进行昂贵的深拷贝。char* data;public:// 移动构造函数:参数是右值引用 &&// 关键:把源对象的资源置空。

拒绝AI文,努力在AI时代写出感动人心的好文章 394

ThunderKittens 深度解析:一个不基于 MLIR 的 C++ 模板 GPU DSL

Triton 是"让更多人能写 GPU kernel",ThunderKittens 是"让会写的人写得更爽"。前者用 MLIR 换易用性,后者用 C++ 模板换可控性。它们不是替代关系,而是覆盖了 GPU 编程光谱的两端。ThunderKittens 的出现,本质上是对"GPU DSL 必须基于 MLIR"这一默认假设的挑战。编译期类型系统本身就可以是一个强大的 DSL 基础设施,不需要中间 IR,不需要黑盒 pass,也能实现 tile 级抽象和零运行时开销。

Maxwell_Newton的博客 350

跟我学c++中级篇—类型定义的方式

本文系统阐述了编程中类型定义的重要性及c++中的实现方式。重点对比了宏定义、typedef与modern using三种机制,指出using在可读性、灵活性和模板支持上的优势,推荐优先使用。同时提醒开发者注意别名滥用、类型歧义、错误信息冗长等问题,强调统一规范与合理设计。最终结论:在现代c++开发中,应以using为主,兼顾简洁性与可维护性,避免陷入命名混乱与编译困境。

fpcc的专栏 89

【C++——类和对象(上)】筑基篇:以封装奠定面向对象之基

本文系统梳理C++类与对象的核心知识点,涵盖类的定义、访问限定符(public/private)、类作用域、对象实例化及内存布局。重点解析封装思想、this指针机制、空类大小为1字节的原因,以及类与对象在内存中的存储差异。通过对比C语言结构体与C++类,揭示面向对象设计的优势:数据保护、接口统一、命名隔离与代码可维护性提升。内容由浅入深,适合作为学习笔记与复习参考。

2602_95684935的博客 516

C++ 函数模版

模板参数:● template ,T 就是类型占位符,名字可以自定义,习惯用T● 占位符可以在函数返回值、形参、函数内部当作类型使用使用要点模板代码一般写在头文件:编译器需要看到完整模板源码,才能在每个编译单元完成实例化全局函数、类内成员函数都可以写成模板实例化发生在编译阶段,不是运行时隐式实例化:调用时编译器自动推导实参类型,生成对应版本函数。

2501_94041724的博客 307
上一篇: 洛谷P2911 [USACO08OCT]Bovine Bones G
下一篇: 洛谷P1093 [NOIP2007 普及组] 奖学金
Runcode8
博客等级 码龄4年 180粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值