OJ 栓奶牛【C】【Python】【二分算法】

题目

算法思路

要求的距离在最近木桩与最远木桩相隔距离到零之间,所以是二分法

先取一个中间值,看按照这个中间值可以栓多少奶牛,再与输入奶牛数比较,如果大于等于,则增大距离,注意这里等于也是增大距离,因为要求的是最大距离,如果这个距离还能再大点呢,如果小于说明距离太大,缩小距离

C代码

//二分法
#include<stdio.h>
int main(){int n,k,p1;scanf("%d %d %d",&n,&k,&p1);int muzhuang[k+1];muzhuang[1]=p1;int i;for(i=2;i<=k;i++){muzhuang[i]=muzhuang[i-1]+((muzhuang[i-1]*2357+137)%10)+1;}int left,right,mid;left=0,right=k;int sum,t,ans;while(left<=right){mid=(left+right)/2;sum=1;t=1;for(i=2;i<=k;i++){if(muzhuang[i]-muzhuang[t]>=mid){t=i;sum++;}}//距离太小,如果等于,则要看看还能不能再大一点if(sum>=n){ans=mid;left=mid+1;}//距离太大else{right=mid-1;}}printf("%d",ans);return 0;
}

Python代码

n, k, p1 = map(int, input().split(' '))
lst = [p1]
for i in range(1, k):lst_i = lst[i - 1] + (lst[i - 1] * 2357 + 137) % 10 + 1lst.append(lst_i)  # 注意防止下标越界
left, right, ans = 0, k - 1, 0
while left <= right:mid = (left + right) // 2  # 注意python不会自动取整sum1, t = 1, 0for i in range(k):if lst[i] - lst[t] >= mid:t = isum1 += 1if sum1 >= n:ans = midleft = mid + 1else:right = mid - 1
print(ans)

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

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

相关文章

python内置函数bytes()、callable()详解

bytes() 函数 bytes()函数用于创建一个新的不可变的字节序列对象&#xff0c;它是bytearray()的不可变版本。这个函数非常有用&#xff0c;尤其是在处理二进制数据、进行网络编程或者文件操作时。 语法 bytes([source[, encoding[, errors]]])source&#xff1a;可以是字符串…

苍穹外卖---文件上传-阿里OSS

一&#xff1a;开通阿里云对象存储服务oss,创建bucket&#xff0c;获得密钥 二&#xff1a;在程序中集成上传文件功能 1.连接阿里云OSS对象存储服务器 声明一个配置属性的文件用于传入连接的参数 package com.sky.properties;import lombok.Data; import org.springframewo…

OceanBase数据库oceanbase-ce的docker镜像中文说明

本文为OceanBase数据库oceanbase-ce的docker镜像的中文说明&#xff0c;原英文链接为&#xff1a; oceanbase/oceanbase-ce - Docker Image | Docker Hub 如何使用 docker 部署 OceanBase OceanBase 为 OceanBase 数据库提供了一个名为 oceanbase-ce 的独立测试镜像。默认情…

浏览器工作原理与实践--虚拟DOM:虚拟DOM和实际的DOM有何不同

虚拟DOM是最近非常火的技术&#xff0c;两大著名前端框架React和Vue都使用了虚拟DOM&#xff0c;所以我觉得非常有必要结合浏览器的工作机制对虚拟DOM进行一次分析。当然了&#xff0c;React和Vue框架本身所蕴含的知识点非常多&#xff0c;而且也不是我们专栏的重点&#xff0c…

yarn常用命令行

##修改hdfs日志的读写权限 hdfs dfs -ls /tmp/logs/autoflow/logs hdfs dfs -chmod arwx /tmp/logs/autoflow/logs ##查看所有node节点状态 yarn node -list -all ##查看当前运行的应用 yarn application -list ##杀掉application yarn application -kill application_17036…

二手车商的套路

https://www.dongchedi.com/article/7126394624675578405 https://www.dongchedi.com/article/7126394624675578405 现在&#xff0c;有越来越多的人去了解二手车&#xff0c;二手车相对于新车来说&#xff0c;更加的亲民划算。很多新车需要四五十万&#xff0c;而二手车有可…

Qt Creator 新建项目

&#x1f40c;博主主页&#xff1a;&#x1f40c;​倔强的大蜗牛&#x1f40c;​ &#x1f4da;专栏分类&#xff1a;QT❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、使用 Qt Creator 新建项目 1、新建项目 2、选择项目模板 3、选择项目路径 4、选择构建系统 5…

你不可不知的5款小众神器

Hey小伙伴们&#x1f44b;&#xff0c;是不是还在为工作中的效率不高而烦恼呢&#xff1f;别急&#xff0c;今天我就给大家安利5款超实用的国产小众工作效软件&#xff0c;让你的工作台效率翻倍&#xff0c;轻松应对各种工作挑战&#xff01;&#x1f31f; 1️⃣ 亿可达 ycoda…

使用立体视觉作为 3D LiDAR 的替代方案,在 KITTI ADAS 立体视觉数据集上微调立体变换器 (STTR) 模型-含数据集+源码资料下载

为什么是立体视觉? ADAS 立体视觉是指使用两个摄像头(类似于人眼)从略有不同的角度捕获图像的技术。该设置模仿人类双眼视觉,使系统能够感知环境的深度和 3D 结构。 立体视觉的关键技术方面 ADAS 立体视觉具有多种优势和高度复杂的功能。让我们探索它们以更好地理解: …

视频图像的两种表示方式YUV与RGB(4)

本篇主要讲YUV与RGB之间的转换&#xff0c;包括YUV444 颜色编码格式 转为 RGB 格式 &#xff0c;RGB颜色编码格式转为 YUV444 格式。 一、 YUV与RGB之间的转换 YUV与RGB颜色格式之间进行转换时 , 涉及一系列的数学运算 ; YUV 颜色编码格式转为RGB格式的转换公式 取决于 于 YUV …

蓝桥杯每日一题:矩形牛棚(单调栈)

作为一个资本家&#xff0c;农夫约翰希望通过购买更多的奶牛来扩大他的牛奶业务。 因此&#xff0c;他需要找地方建立一个新的牛棚。 约翰购买了一大块土地&#xff0c;这个土地可以看作是一个 R行&#xff08;编号 1∼R1&#xff09;C 列&#xff08;编号 1∼C1&#xff09;…

Python requests 模块

爬虫、网络编程、接口......对于Python工程师来讲都绕不过一个强大的模块---requests&#xff0c;本篇文章就深入详细讲一讲requests模块。同时也先也分享一下开源API网站&#xff1a;Gitee-API文档、JSONPlaceholder API文档、和风天气API文档、Postman Echo API网站&#xff…

C语言_文件操作

文件基础 什么是文件 文件是在计算机中以实现某种功能、或某个软件的部分功能为目的而定义的一个单位。磁盘上的文件是文件。但是在程序设计中&#xff0c;我们一般谈的文件有两种&#xff1a;程序文件、数据文件&#xff08;从文件功能的角度来分的&#xff09;。 程序文件 …

App加固:不同类型和费用对比

文章目录 [TOC]引言应用程序加固是什么不同类型[App加固](https://www.ipaguard.com/)的费用对比基础加固高级加固云加固 白嫖的混淆加密工具](https://www.ipaguard.com/)-[ipaguard总结参考资料 引言 在当前移动应用市场中&#xff0c;安全性已经成为一个非常重要的话题。为…

Qt单实例运行

开发过程中经常需要确保Qt程序的唯一实例运行&#xff0c;方法有很多种&#xff0c;这里讲一种最方便的方法&#xff0c;创建共享内存。共享内存是操作系统提供的一种进程间通信机制&#xff0c;允许多个进程访问同一块内存区域。你可以利用这一特性来标记程序是否已经在运行。…

tdesign坑之EnhancedTable树形结构默认展开所有行

⚠️在官方实例中&#xff0c;树形结构的表格提供了2种方法控制展开全部节点&#xff1a; 一是通过配置属性tree.defaultExpandAll为true代表默认展开全部节点&#xff08;仅默认情况有效&#xff09;&#xff1b; 二是使用组件实例方法expandAll()可以自由控制树形结构的展开…

web页面刷新,怎么使每次的随机颜色都一样?

// 创建一个种子随机数生成器 function seededRandom(seed) { var x Math.sin(seed) * 10000; return x - Math.floor(x); } // 使用种子随机数生成器来生成颜色 function generateColor(id) { var random seededRandom(id); var r Math.floor(random * 256); var g Math.…

Bert基础(十二)--Bert变体之知识蒸馏原理解读

B站视频&#xff1a;https://www.bilibili.com/video/BV1nx4y1v7F5/ 白话知识蒸馏 在前面&#xff0c;我们了解了BERT的工作原理&#xff0c;并探讨了BERT的不同变体。我们学习了如何针对下游任务微调预训练的BERT模型&#xff0c;从而省去从头开始训练BERT的时间。但是&#…

311_C++_QT表格的单个item的撤销、恢复操作,代码量很小,轻量化

:初始截图 :修改截图 :撤销截图 connect(m_customTableWidget, &QTableWidget::itemChanged, this, &FileDoc::itemChanged);

o(∩_∩)o设置代理访问博客(三)o(∩_∩)o

增加定时执行功能 直接看代码实现&#xff1a; # -*- coding:UTF-8 -*-import json import random import re import threading import time from datetime import timedeltaimport requests from bs4 import BeautifulSoup from loguru import loggeruid "qq_17328759…