hdu 6288(二分法加精度处理问题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6288

题意:给出a,b,k,n可满足(n^a)*(⌈log2n⌉)^b<=k ,求最大的n值
三个正整数a,b,k(1≤a,b≤10,10^6≤k≤10^18)

题目思路:这类给数学式子求n的最大值,且数据量大且多的,考虑时间复杂度,我们采用二分法找出n

思路:很明显就是二分n,向上取整可以先预处理出2^62,然后直接循环找到b的底数j,处理n^a*j^b一开始我们用的是powl,但是被卡精度了,卡了好久,我们也因为这题而崩溃了,正常状态下可以做的题也不会做。又没想到换一种check的方法。一直卡了3小时,后来才知道原来可以用k先除以a个n,再除以b个j,然后判断如果小于1就return0,否则return1。

原文地址:https://www.cnblogs.com/Aiahtwo/p/10497794.html

时间: 2024-11-02 21:31:21

hdu 6288(二分法加精度处理问题)的相关文章

HDU 4493 Tutor(精度处理)

题目 #include<stdio.h> int main() { int t; double a,s; scanf("%d",&t); while(t--) { s=0; for(int i=0;i<12;i++) { scanf("%lf",&a); s+=a; } //1.注意案例的输出格式 //2.rounded to the nearest penny int ss=s/12.0+0.005; printf("$

hdu 4004 (二分加贪心) 青蛙过河

题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4004 题目意思是青蛙要过河,现在给你河的宽度,河中石头的个数(青蛙要从石头上跳过河,这些石头都是在垂直于河岸的一条直线上) 还有青蛙能够跳跃的 最多 的次数,还有每个石头离河岸的距离,问的是青蛙一步最少要跳多少米可以过河> 这是一道二分加贪心的题,从0到的河宽度开始二分,二分出一个数然后判断在这样的最小步数(一步跳多少距离)下能否过河 判断的时候要贪心 主要难在思维上,关键是要想到二分上去,能想到

hdu.. 基础二分的精度问题

#include<stdio.h>#include<iostream>using namespace std;double f(double x){ return 8*x*x*x*x+7*x*x*x+2*x*x+3*x+6;}int main(){ int t,flag; double y,i,j,mid; cin>>t; while(t--) {   i=0.0;   j=100.0;   cin>>y;   if(y<f(0.0)||y>f(

HDU 5705 Clock (精度控制,暴力)

题意:给定一个开始时间和一个角度,问你下一个时刻时针和分针形成这个角度是几点. 析:反正数量很小,就可以考虑暴力了,从第一秒开始暴力,直到那个角度即可,不会超时的,数目很少,不过要注意精度. 代码如下: #include <cstdio> #include <string> #include <cstdlib> #include <cmath> #include <iostream> #include <cstring> #inclu

HDU Strange fuction(二分+精度控制)

相当于y是个常数求 F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x (0 <= x <=100)这个函数的最小值,令F' = 0,得出x,y的方程,用二分法解方程得x0(易证得x0>=0 && x0<=100),则F'(x0) = 0,由F'' 在[0-100]上恒大于0,所以F'在[0-100]上单增,所以F'(x)<0(x<x0),F'(x)>0(x>x0),所以F(x)在x=x0处取得最小值,所以本题主要就是二

HDU 5705 Clock 模拟(精度)

题意:给出时间 HH:MM:SS 角度a 问下一个H和M的角度为a的时刻?时针每小时30度,每分钟30/60度,每秒1/120 (3600,60,1)分针每小时360,每分钟6度,每秒6/60,1/10度; (,720,12)避免精度问题全部乘以120 算出h,m初始角度 h,m之间角度为deg=abs(h-m),暴力枚举几秒后deg==a即可,O(T) #include <bits/stdc++.h> using namespace std; typedef pair<int,int&

HDU 5652 二分加搜索 http://acm.split.hdu.edu.cn/showproblem.php?pid=5652

Problem Description A long time ago there are no himalayas between India and China, the both cultures are frequently exchanged and are kept in sync at that time, but eventually himalayas rise up. With that at first the communation started to reduce a

HDU 2199 (二分法)

主要思想就是两端逼近,最后得到结果,0MS #include <iostream> #include <cstdlib> #include <cstdio> #include <cmath> #include <algorithm> using namespace std; const double ep = 1e-6; double deal(double n) { return 8*pow(n,4) + 7*pow(n,3) + 2*pow(

hdu 3591 多重加完全DP

题目: The trouble of Xiaoqian Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1997    Accepted Submission(s): 711 Problem Description In the country of ALPC , Xiaoqian is a very famous mathematici