/*
二分+枚举
枚举k会超时,枚举r还要优化,有可能会超64
*/
#include<stdio.h>
#include<math.h>
#define ll __int64
#define inf 1000000000000
#define ii 1000000000000000000
ll endd,enddk,enddr;
void update(ll k,ll r) {
if(k*r<endd) {
endd=k*r;
enddk=k;
enddr=r;
}
if(k*r==endd) {
if(enddr>r) {
enddr=r;
enddk=k;
}
}
return ;
}
ll power(ll k,ll f) {
ll sum=1,i;
for(i=1;i<=f;i++)
sum*=k;
return sum;
}
ll erfen(ll r,ll left,ll right,ll n) {
while(left<=right) {
ll mid=(left+right)/2;
ll sum=power(mid,r)-1;
if(sum==n*(mid-1))return mid;
// printf("%I64d\n",sum);
if(sum<n*(mid-1))
left=mid+1;
else
right=mid-1;
}
return -1;
}
int main(){
ll n,i,k;
while(scanf("%I64d",&n)!=EOF) {
endd=n;enddr=1;enddk=n-1;
for(i=2;i<=40;i++) {//必须从2开始,从一开始会超ll
ll kk=(ll)pow(1.0*n,1/(1.0*i))+1;//重点优化
k=erfen(i+1,2,kk,n);
if(k!=-1)
update(k,i);
k=erfen(i+1,2,kk,n+1);
if(k!=-1)
update(k,i);
// printf("k2=%I64d\n",k);
// if(i==3)break;
}
printf("%I64d %I64d\n",enddr,enddk);
}
return 0;}

hdu 4430 二分+枚举的更多相关文章

  1. HDU 1669 Jamie's Contact Groups(多重匹配+二分枚举)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1669 题目大意: 给你各个人可以属于的组,把这些人分组,使这些组中人数最多的组人数最少,并输出这个人数 ...

  2. hdu 5248 序列变换(二分枚举)

    Problem Description 给定序列A={A1,A2,...,An}, 要求改变序列A中的某些元素,形成一个严格单调的序列B(严格单调的定义为:Bi<Bi+,≤i<N). 我们 ...

  3. hdu 1669(二分+多重匹配)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1669 思路:由于要求minimize the size of the largest group,由此 ...

  4. BFS+状态压缩DP+二分枚举+TSP

    http://acm.hdu.edu.cn/showproblem.php?pid=3681 Prison Break Time Limit: 5000/2000 MS (Java/Others)   ...

  5. hdu 3277(二分+最大流+拆点+离线处理+模板问题...)

    Marriage Match III Time Limit: 10000/4000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  6. hdu 3081(二分+并查集+最大流||二分图匹配)

    Marriage Match II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  7. hdu 1815(二分+2-sat)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1815 题意:给出n个牛棚.两个特殊点S1,S2的坐标.S1.S2直连.牛棚只能连S1或S2,还有,某些 ...

  8. hdu 4024 二分

    转自:http://www.cnblogs.com/kuangbin/archive/2012/08/23/2653003.html   一种是直接根据公式计算的,另外一种是二分算出来的.两种方法速度 ...

  9. FZU-2216 The Longest Straight (二分枚举)

    题目大意:给n个0~m之间的数,如果是0,那么0可以变为任意的一个1~m之间的一个数.从中选出若干个数,使构成一个连续的序列.问能构成的最长序列的长度为多少? 题目分析:枚举连续序列的起点,二分枚举二 ...

随机推荐

  1. sed简单脚本练习

    sed脚本的执行顺序可以简记为:Read,Execute,Print,Repeat(读取,执行,打印,重复)简称REPR 分析脚本的执行顺序: l 读取一行到模式空间(sed内部的一个临时缓存,用于存 ...

  2. [转]查询表达式 (F#)

    本文转自:http://msdn.microsoft.com/zh-cn/library/hh225374.aspx 查询表达式可以查询数据源并将数据是一种预期形式.             查询表达 ...

  3. .NET通过字典给类赋值

    /// <summary> /// /// </summary> /// <typeparam name="T"></typeparam& ...

  4. jqueryUI插件

    <link rel="stylesheet" href="~/Content/themes/base/jquery-ui.css" /> <s ...

  5. MVC中使用MVCPager简单分页

    一.建立数据库以及建立MVC项目 自己随便建立一个数据库,并且添加数据.我建立的数据库如下. 二.建立LINQ to SQL映射. 然后一步步点确定 三.编写代码 在Controllers中建立控制器 ...

  6. Java集合框架源码(三)——arrayList

    1. ArrayList概述: ArrayList是List接口的可变数组的实现.实现了所有可选列表操作,并允许包括 null 在内的所有元素.除了实现 List 接口外,此类还提供一些方法来操作内部 ...

  7. axis2与eclipse的整合:开始一个简单的axis2 的demo

    1.下载axis2,现在axis2最新版本是axis2-1.6.2,下载地址:http://axis.apache.org/axis2/java/core/download.cgi 2.下载好的zip ...

  8. CSS3 自动旋转

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. css3 平行四边形 、大括弧

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. day25-2 OSI协议和socket抽象层

    目录 OSI协议 物理层 数据链路层 以太网协议 Mac地址 广播地址 网络层 获取对方Mac地址(ARP协议) 传输层 TCP协议 UDP协议 应用层 socket抽象层 OSI协议 互联网的本质就 ...