传送门

题解

// luogu-judger-enable-o2
//minamoto
#include<cstdio>
#include<cstring>
using namespace std;
const int N=;
char s[N];int n;
template<class T>inline bool cmax(T&a,const T&b){return a<b?a=b,:;}
struct node{
int s[N];
void clear(){
memset(s,,sizeof(s));
}
void operator =(int val){
clear();
while(val){
s[++s[]]=val%,val/=;
}
}
void operator =(const char *str){
int len=strlen(str);
s[]=len;
for(int i=;i<len;++i) s[s[]-i]=str[i]-'';
}
void maintain(){
for(int i=;i<=s[];++i) if(s[i]>) s[i+]+=s[i]/,s[i]%=;
while(s[s[]+]){
++s[],s[s[]+]=s[s[]]/,s[s[]]%=;
}
}
void operator +=(const int &a){
s[]+=a,maintain();
}
void operator +=(node a){
cmax(s[],a.s[]);
for(int i=;i<=s[];++i) s[i]+=a.s[i];
maintain();
}
void operator -=(const int &a){
int i=;s[i]-=a;
while(s[i]<){
while(s[i]<) s[i]+=,--s[i+];
++i;
}
if(!s[s[]]) --s[];
}
int mod(){
return s[]&;
}
void div(){
for(int i=s[];i;--i){
if(i>&&s[i]&) s[i-]+=;
s[i]>>=;
}
if(!s[s[]]) --s[];
}
void mul(){
for(int i=;i<=s[];++i) s[i]*=;
maintain();
}
void print(){
for(int i=s[];i;--i) printf("%d",s[i]);
}
}ans,res,num;
int b[N*N];
int main(){
//freopen("testdata.in","r",stdin);
scanf("%s",s);
num=s;
n=;
while(num.s[]){
b[n++]=num.mod(),num.div();
}
if(n>){
int mid=(n-)>>;
ans=-(n&);
for(int i=;i<mid;++i) ans.mul();
ans-=;
res.clear();
for(int i=n-;i>=n-mid-;--i) res.mul(),res+=b[i];
bool flag=true;
for(int i=mid;~i;--i) if(b[i]!=b[n-i-]){flag=(b[i]>b[n-i-]);break;}
if(flag) res+=;
ans+=res;
}else ans=n;
ans.print();
return ;
}

洛谷P2235 [HNOI2002]Kathy函数的更多相关文章

  1. 洛谷$P$2235 $Kathy$函数 $[HNOI2002]$ 数位$dp$

    正解:数位$dp$ 解题报告: 传送门$qwq$ $HNOI$的题从02年就这么神了嘛$QAQ$,,, 嗷对了这题如果看出了一个结论就是个数位$dp$板子,,,?但是结论很神我$jio$得挺难看出来的 ...

  2. bzoj 1223: [HNOI2002]Kathy函数 数位DP 高精度

    1223: [HNOI2002]Kathy函数 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 207  Solved: 90[Submit][Stat ...

  3. 洛谷 P3742 umi的函数

    传送门 思路 \(loceaner\)已经蔡虚鲲到连红题都不会做了 因为有\(special\ judge\)所以我们就可以瞎搞了! 由题目可知,只要有一个\(y[i] > x[i]\)则一定没 ...

  4. 【模板】矩阵快速幂 洛谷P2233 [HNOI2002]公交车路线

    P2233 [HNOI2002]公交车路线 题目背景 在长沙城新建的环城公路上一共有8个公交站,分别为A.B.C.D.E.F.G.H.公共汽车只能够在相邻的两个公交站之间运行,因此你从某一个公交站到另 ...

  5. 洛谷 P2233 [HNOI2002]公交车路线 解题报告

    P2233 [HNOI2002]公交车路线 题目背景 在长沙城新建的环城公路上一共有8个公交站,分别为A.B.C.D.E.F.G.H.公共汽车只能够在相邻的两个公交站之间运行,因此你从某一个公交站到另 ...

  6. 洛谷P2231 [HNOI2002]跳蚤 [数论,容斥原理]

    题目传送门 跳蚤 题目描述 Z城市居住着很多只跳蚤.在Z城市周六生活频道有一个娱乐节目.一只跳蚤将被请上一个高空钢丝的正中央.钢丝很长,可以看作是无限长.节目主持人会给该跳蚤发一张卡片.卡片上写有N+ ...

  7. [洛谷U62364]三次函数极值

    U62364 三次函数极值 题面 给定一个三次函数\(f(x)=a_3x^3+a_2x^2+a_1x+a_0\) 求其极值. 格式 输入包括一行四个整数\(a_3,a_2,a_1,a_0\) 输出包括 ...

  8. 洛谷P2759 奇怪的函数(log 二分)

    题目描述 使得 x^xxx 达到或超过 n 位数字的最小正整数 x 是多少? 输入输出格式 输入格式: 一个正整数 n 输出格式: 使得 x^xxx 达到 n 位数字的最小正整数 x 输入输出样例 输 ...

  9. 洛谷P2759 奇怪的函数

    P2759 奇怪的函数 题目描述 使得 x^x 达到或超过 n 位数字的最小正整数 x 是多少? 输入输出格式 输入格式: 一个正整数 n 输出格式: 使得 x^x 达到 n 位数字的最小正整数 x ...

随机推荐

  1. AngularJS入门之如何快速上手

      概述: AngularJS(ng)是一个纯JS框架,AngularJS易于构建CRUD应用(CRUD意思是增删改查) 适用于以数据操作为主的SPA(Single Page Application) ...

  2. 问题:oracle 两个表之间的修改;结果:ORACLE 两个表之间更新的实现

    前提条件: 表info_user中有字段id和name,字段id为索引 表data_user_info中有字段id和name,字段id为索引 其中表info_user中字段id和表data_user_ ...

  3. #调整随机森林的参数(调整max_features,结果未见明显差异)

    #调整随机森林的参数(调整max_features,结果未见明显差异) from sklearn import datasets X, y = datasets.make_classification ...

  4. 对数组名取地址 a[ ],&a

    C语言规定,数组名代表数组的首地址,也就是第0号元素的地址.所以a==&a[0] 但对数组名取地址时却要注意了,在理解“对数组名取地址”这一表达式的含义时一定要记住:数组名是“数组”这种变量的 ...

  5. java.sql.SQLException: Error while processing statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

    执行Hive查询: Console是这样报错的 java.sql.SQLException: Error from org.apache.hadoop.hive.ql.exec.mr.MapRedTa ...

  6. 【译】Android 数据库 ORMLite

    @DatabaseField cloumnName:指定字段名,不指定则变量名作为字段名  canBeNull:是否可以为null   dataType:指定字段的类型 defaultValue:指定 ...

  7. android wifi框架

    ---恢复内容开始--- frameworks/base/services/java/com/android/server/wifi 中的ReadMe文件 WifiService: Implement ...

  8. javascript的概述

    JavaScript是怎么诞生的???刚开始的是为了验证表单而开发出来的. 什么是JavaScript???a.面向对象的编程语言b.解释性的编程语言(说白了就是不用编译的一种语言)c.脚本语言(说白 ...

  9. os模块 os.stat('path/filename') os.path.dirname(path) os.path.exists(path)  os.path.join(path1[, path2[, ...]])

    提供对操作系统进行调用的接口 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname")  改变当前脚本工作目录:相当于 ...

  10. .NET回归 HTML----超文本标记语言(暂时无图)

    HTML用来做网页,文件拓展名改为html可以形成网页 超文本标记语言==超越了文字的范畴,除了文字还可以有图片.视频.音频.动画特效等其它内容,由标记符号<>组成的一门计算机编程语言 H ...