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

2024牛客暑期多校训练营7

J:

J-Ball_2024牛客暑期多校训练营7 (nowcoder.com)

题目大意:

在二维笛卡尔坐标系中,有一根长度为 l的细长棍,宽度可以忽略不计,垂直于 y 轴,左端点位于原点 O(0,0)。

有一个小球,可以看作是一个点,位于 P(x,y)。

现在要确定是否存在一个支点,使得这根细长棍在绕该支点旋转时可以击中小球。请帮 Chino 找出任何满足条件的支点,或者告诉她不存在这样的支点。

若在旋转过程中,细长棍或其端点经过点 P(x,y),则视为可以击中小球。

解析:

以原点为圆心,半径为l的圆是一个大圆。但是对于圆心位于x轴且x逐渐增大的圆心,其半径为l-x,显然圆变小了。同样,对于x轴上的圆心从l 到0,圆也是逐渐变小的。所以最大的两个圆是以原点为圆心,半径为l的圆,另一个是以(l,0)为圆心,半径为l的圆。也就是对于棍子上任意一个在 (0,l)之间的支点 x0,当支点远离原点或右端点时,棍子旋转所覆盖的圆会逐渐变小。

因此,只需要判断点(x,y)是否位于两个大圆其中一个圆的内部即可,是,那么就是可以击中,否则就不可击中。

#include<bits/stdc++.h>using namespace std;
using ll = long long;int main() {int t; cin >> t;while(t--) {ll l,x,y; cin >> l >> x >> y;if(x*x+y*y<=l*l) cout << "Yes\n" << 0 << '\n';else if((l-x)*(l-x)+y*y <= l*l) cout <<  "Yes\n" << l << '\n';else cout <<  "No\n";}return 0;
}

I:

I-Fight Against the Monster_2024牛客暑期多校训练营7 (nowcoder.com)

题目大意:

这道题目需要我们计算击败怪兽所需的最小初始战争机器数量。怪兽的初始生命值为 h,而每台战争机器可以执行两种操作:“战斗”和“制造”:

  1. 战斗:每次操作可以使怪兽的生命值减少1,但是这台机器之后将无法使用(损坏)。
  2. 制造:选择 m台机器,同时对它们使用制造功能,可以制造出 k台新机器。每台机器只能被用来制造一次,但之后仍可以进行战斗。

解析:

这个时候 m == k,每次制造机器,机器数量都能够翻倍。
那么如果 h > m 的时候,总存在一个n,使得n*m >= h,这个时候的最小机器初始值是m 。
如果 h < m 的话,只需要h辆机器直接战斗 。

m != k 我们知道当怪兽的血量越高,那么初始的机器的数量也就会越多。这个时候我们就可以二分答案,mid表示初始的数量。这样我们可以通过计算对于每个机器都进行制造后的总机器数。如果总机器数要大于等于怪兽的血量,那么就可以减少r,否则就增加l。

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll m,h,k;int main() {int T;cin >> T;while (T--) {cin >> m >> k >> h;if(m != k){ll l = 0,r = h;while(l <= r){ll mid = (l + r) >> 1;//Mid 是 最小初始机器数 ll res = mid;// m - k 表示每次制作机器实际消耗的机器数 //(mid-m)/(m-k)表示可以进行多少次完整的制造操作 // (mid-m)/(m-k) + 1是加上初始的m台机器第一次制造 if(mid >= m) res += (( mid - m ) / ( m - k ) + 1 ) * k;if(res >= h) r = mid - 1;else l = mid + 1;}cout << l << '\n';}else cout << min(h,m) << '\n';// 这个时候 m == k,每次制造机器,机器数量都能够翻倍//那么如果 h > m 的时候,总存在一个n,使得n*m >= h,这个时候的最小机器初始值是m // 如果 h < m 的话,只需要h辆机器直接战斗 }return 0;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 在IntelliJ IDEA中利用Git拉取项目
  • Midjourney技巧-生成拟人化动物(做你的品牌形象代言人)
  • 代码随想录算法训练营第十五天(一)| 110.平衡二叉树 (优先掌握递归)257. 二叉树的所有路径
  • 【安全工具推荐-Search_Viewer资产测绘】
  • 欺诈文本分类微调(一):基座模型选型
  • 使用Gitlab实现monorepo多项目CICD
  • 一文HDMI (High-Definition Multimedia Interface)
  • spring常见面试题
  • React 学习——react项目中加入echarts图
  • 【ARM CoreLink 系列 4.2 -- NIC-400 控制器详细介绍】
  • Java语言程序设计——篇十三(1)
  • 浅述TSINGSEE青犀EasyCVR视频汇聚平台与海康安防平台的区别对比
  • Python生成缩略图
  • C++初阶_2: inline内联函数 宏函数
  • C# 设计模式之策略模式
  • CSS魔法堂:Absolute Positioning就这个样
  • Fastjson的基本使用方法大全
  • java2019面试题北京
  • JavaScript类型识别
  • Java的Interrupt与线程中断
  • JS专题之继承
  • Laravel核心解读--Facades
  • Object.assign方法不能实现深复制
  • React-生命周期杂记
  • Redis中的lru算法实现
  • storm drpc实例
  • Transformer-XL: Unleashing the Potential of Attention Models
  • 大型网站性能监测、分析与优化常见问题QA
  • 回顾2016
  • 前端之React实战:创建跨平台的项目架构
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 小程序 setData 学问多
  • 学习笔记TF060:图像语音结合,看图说话
  • 源码安装memcached和php memcache扩展
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • 阿里云ACE认证学习知识点梳理
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​字​节​一​面​
  • #NOIP 2014# day.1 T2 联合权值
  • #WEB前端(HTML属性)
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (1)Nginx简介和安装教程
  • (8)STL算法之替换
  • (js)循环条件满足时终止循环
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (四)汇编语言——简单程序
  • (一)项目实践-利用Appdesigner制作目标跟踪仿真软件
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .describe() python_Python-Win32com-Excel
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...