首页 > 其他分享 >刷题 二分

刷题 二分

时间:2023-12-06 20:22:37浏览次数:31  
标签:二分 int mid tc num check 刷题

2023.12.6 cf1902B

二分

一般来讲我们会在以下情况用到二分:

  • 求单调函数的零点
  • 求最小值的最大,或最大值的最小
  • 很难直接算出答案,但是很好判定答案合不合法

二分答案和二分查找差不多,就是check函数内是贪心dp之类的东西

当用二分控制精度时,以r-l>eps为循环条件,mid选r和l都行,一般需要保留k位小数时,取eps=1e-(k+2)

 

本题思路

观察题目数据,算法复杂度在logn及以下为宜,考虑二分

学分每天只要在学就会累加,肯定比前一天多,单调性有的

直接在天数里二分答案找满足学分修够的上课最小天数,然后减去即可,check里对任务数num判断一下就ok

 

代码

 

#include<iostream>
using namespace std;
#define ll long long
ll p,t,l,n;
bool check(int m,int num)
{
	int day=(num-1)/2+1;
	if(m>=day)
	{
		return(m*l+t*num>=p);
	}
	else return(m*l+m*2*t>=p);
}
int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	int tc;
	cin>>tc;
	while(tc--)
	{
		cin>>n>>p>>l>>t;
		int num=(n-1)/7+1;
		int l=0,r=n+1;
		while(l+1<r)
		{
			int mid=l+r>>1;
			if(check(mid,num))r=mid;
			else l=mid;
		}
		cout<<n-r<<endl;
	}
	return 0;
}

标签:二分,int,mid,tc,num,check,刷题
From: https://www.cnblogs.com/modemingzi-csy/p/17880443.html

相关文章

  • 2023最新高级难度react面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-高级难度react面试题合集问:如何实现React中的组件缓存策略?在React中,我们可以使用多种策略来实现组件的缓存,包括但不限于以下几种方法:使用React.memo()React.memo()是一个高阶函数,它可以接收一个组件作为参数,并返回一个新的组件。......
  • 2023最新中级难度Angular面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-中级难度Angular面试题合集问:Angular是什么?请简要介绍一下Angular框架的特点和优势。Angular是一个由Google维护的开源前端框架,用于构建高效、动态和响应式的单页面Web应用程序。它最初在2010年作为AngularJS发布,并于2016年进行了重写......
  • 2023最新高级难度Angular面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-高级难度Angular面试题合集问:解释一下Angular中的变化检测(ChangeDetection)是如何工作的?请介绍Angular的默认变化检测策略以及如何优化变化检测性能。Angular中的变化检测(ChangeDetection)是一个自动化的过程,用于检查组件树中的所有数......
  • 2023最新初级难度react面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-初级难度react面试题合集问:请详述React.js是什么?React.js是一个由Facebook开发的开源JavaScript库,用于构建用户界面(UserInterface,UI)。它是目前Web开发领域最流行和广泛使用的库之一。React.js主要提供了一个虚拟DOM(Virtua......
  • 2023最新中级难度react面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-中级难度react面试题合集问:请详述React中的HOC(高阶组件)的概念和应用场景?在React中,高阶组件(HighOrderComponent,简称HOC)是一种设计模式,它允许我们将共享的功能提取出来,形成一个新的可复用组件。HOC本质上就是一个接收组件作为参......
  • 2023最新初级难度PHP面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-初级难度PHP面试题合集问:请解释什么是PHP?PHP是一种开源的脚本语言,用于开发动态网站和Web应用程序。它是一种嵌入HTML中的语言,可以用来执行简单的任务,例如显示特定的图形或记录访客人数等。它可以轻松地插入到HTML页面中,并且支......
  • 2023最新中级难度PHP面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-中级难度PHP面试题合集问:请问如何在PHP中自定义魔术方法,例如__call()和__callStatic()?在PHP中,可以通过重写魔术方法来实现自定义行为。例如要实现自定义__call()方法,可以在类中定义一个名为__call的方法:classMyClass{......
  • 2023最新java面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-java面试题合集问:什么是抽象类和接口?抽象类和接口是面向对象编程中的两个重要概念,它们在Java、C#等编程语言中得到了广泛的应用。以下是关于抽象类和接口的解释:抽象类(AbstractClass):抽象类是一个不能被实例化的类,通常用于作为其他类......
  • 2023最新中级java面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-中级java面试题合集问:请解释什么是Java虚拟机(JVM),以及它的主要功能是什么?Java虚拟机(JVM)是一个虚拟的计算机,它在实际的硬件和操作系统上运行,并且能够执行Java字节码。Java字节码是由Java编译器从Java源代码编译而来的。JVM是Java平台的核......
  • 2023最新高级java面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-高级java面试题合集问:能否描述一下Java的垃圾回收机制及其工作原理?当然可以。Java的垃圾回收机制:Java的垃圾回收(GarbageCollection,简称GC)机制是Java虚拟机(JVM)的一部分,它自动处理应用程序不再使用的对象的内存。该机制帮助开发者避免......