BZOJ4612——[Wf2016]Forever Young
1、题意:将一个数y转化成b进制数,使得他>=l,且<y,且转化后均为0~9,使b最大。
2、分析:我们发现要么答案的b很小,要么y很小。。那我们直接暴力枚举就好了啊
然后判断一下。。。另外给一个数,判断进制的时候需要二分。。。这个二分就是一个方程= =
解一解就好了= =
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
using namespace std;
#define LL long long
inline LL read(){
char ch = getchar(); LL x = 0, f = 1;
while(ch < '0' || ch > '9'){
if(ch == '-') f = -1;
ch = getchar();
}
while('0' <= ch && ch <= '9'){
x = x * 10 + ch - '0';
ch = getchar();
}
return x * f;
}
LL y, lo;
inline LL check(LL x, LL o){
LL ret = 0;
ret += o % 10;
ret += o % 100 / 10 * x;
ret += o / 100 * x * x;
return ret;
}
inline bool checker(LL u, LL t){
LL x = t, tot = 0, ot = 0;
t = 1;
while(x){
if(x % u >= 10) return true;
ot = ot + x % u * t;
t = t * 10; x /= u;
}
if(ot < lo) return true;
return false;
}
int main(){
//freopen("for.in", "r", stdin);
//freopen("for.out", "w", stdout);
LL ans = 0;
y = read(), lo = read();
for(LL i = lo; i <= 999; i ++){//sou number
LL l = 1, r = 1e9, t = 1;
if(i < 100) r = 1e18;
while(l <= r){
LL mid = (l + r) / 2;
if(check(mid, i) <= y) l = (t = mid) + 1;
else r = mid - 1;
}
if(check(t, i) == y){
ans = max(ans, t);
}
// if(i == 10) printf("%lld %lld\n", t, ans);
}
for(LL i = 1000000; i >= ans; i --){
// printf("%d\n", i);
if(i < 2) continue;
if(checker(i, y)) continue;
printf("%d\n", i);
return 0;
}
printf("%lld\n", ans);
return 0;
}
BZOJ4612——[Wf2016]Forever Young的更多相关文章
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- Java:网络编程
一.因特网地址 InetAddress类:实现主机名和因特网地址之间的转换. InetAddress address=InetAddress.getByName(String);返回一个InetAdd ...
- 2017人生总结(MECE分析法)
试着用MECE分析法对人生的整个规划做一下总结.作为技术人员,其实除了编码架构能力之外,分析问题的能力的重要程度也会随着职业发展越来越重要.<美团点评技术博客>说这几天要在黄金时段头版头条 ...
- November 08th, 2017 Week 45th Wednesday
Keep your face to the sunshine and you cannot see the shadow. 始终面朝阳光,我们就不会看到黑暗. I love sunshine, but ...
- JavaScript正则表达式进阶指南
摘要:正则表达式是程序员的必备技能,想不想多学几招呢? 本文用JavaScript的exec方法来测试正则表达式. 例如,正则表达式**/F.*g/会匹配"以F开头,以g结尾的字符串&quo ...
- <kotlin>基础,杂七杂八(亲测有效)
okhttp class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) ...
- Lesson 17 Always young
Text My aunt Jennifer is an actress. She must be at least thirty-five years old. In spit of this, sh ...
- 斯考特·杨(Scott Young)快速学习方法
上午在网上看到了斯考特·杨(Scott Young)的快速学习方法,感觉很受鼓舞. 现在已经读研究生了,可是发现自己自从上大学以来到现在,发现自己的学习方法有很大的问题. 我是个特别喜欢读书的人,在大 ...
- forever让nodejs应用后台执行
nodejs一般是当成一条用户命令执行的,当用户断开客户连接,运用也就停了,很烦人.如何让nodejs应用当成服务,在后台执行呢? 最简单的办法: $ nohup node app.js & ...
随机推荐
- Java 运行环境的安装、配置与运行
(一)SDK 的下载与安装 1. 下载SDK 为了建立基于SDK 的Java 运行环境,需要先下载Sun 的免费SDK 软件包.SDK 包含了一整套开发工具,其中包含对编程最有用的是Java 编译器. ...
- JSP传统标签开发
1.标签技术的API类继承关系 1).JspTag接口是所有自定义标签的父接口 该接口中没有任何属性和方法,只有两个直接子接口,Tag接口和SimpleTag接口,把实现Tag接口的自定义标签叫做传统 ...
- MySQL增加列,修改列名、列属性,删除列
mysql修改表名,列名,列类型,添加表列,删除表列 alter table test rename test1; --修改表名 alter table test add column name v ...
- Java——新IO 缓冲区与Buffer
缓冲区和Buffer import java.nio.IntBuffer; //================================================= // File Na ...
- js获取某个ID的class名称
.HTML结构 <div id = "test" class="test_class">我的类名为test_class</div> &l ...
- js基本数据类型和typeof
JavaScript数据类型是非常简洁的,它只定义了6中基本数据类型 null:空.无.表示不存在,当为对象的属性赋值为null,表示删除该属性 undefined:未定义.当声明变量却没有赋值时会显 ...
- js 字符串分割成字符串数组 遍历数组插入指定DOM里 原生JS效果
使用的TP3.2 JS字符串分割成字符串数组 var images='{$content.pictureurl} ' ;结构是这样 attachment/picture/uploadify/20141 ...
- MongoVUE
MongoVUE运行界面如下:
- Yii2 高级版新建一个 Api 应用
原文地址:http://www.getyii.com/topic/28 先在项目的根目录下复制一份 backend 为 api: cp backend/ api -r 拷贝 api 环境 cp -a ...
- QT实现贪吃蛇
board.h #ifndef BOARD_H #define BOARD_H #define MAX_X 40 #define MAX_Y 30 #define NORMAL_LABEL 0//普通 ...