洛谷P2235 [HNOI2002]Kathy函数
// 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函数的更多相关文章
- 洛谷$P$2235 $Kathy$函数 $[HNOI2002]$ 数位$dp$
正解:数位$dp$ 解题报告: 传送门$qwq$ $HNOI$的题从02年就这么神了嘛$QAQ$,,, 嗷对了这题如果看出了一个结论就是个数位$dp$板子,,,?但是结论很神我$jio$得挺难看出来的 ...
- bzoj 1223: [HNOI2002]Kathy函数 数位DP 高精度
1223: [HNOI2002]Kathy函数 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 207 Solved: 90[Submit][Stat ...
- 洛谷 P3742 umi的函数
传送门 思路 \(loceaner\)已经蔡虚鲲到连红题都不会做了 因为有\(special\ judge\)所以我们就可以瞎搞了! 由题目可知,只要有一个\(y[i] > x[i]\)则一定没 ...
- 【模板】矩阵快速幂 洛谷P2233 [HNOI2002]公交车路线
P2233 [HNOI2002]公交车路线 题目背景 在长沙城新建的环城公路上一共有8个公交站,分别为A.B.C.D.E.F.G.H.公共汽车只能够在相邻的两个公交站之间运行,因此你从某一个公交站到另 ...
- 洛谷 P2233 [HNOI2002]公交车路线 解题报告
P2233 [HNOI2002]公交车路线 题目背景 在长沙城新建的环城公路上一共有8个公交站,分别为A.B.C.D.E.F.G.H.公共汽车只能够在相邻的两个公交站之间运行,因此你从某一个公交站到另 ...
- 洛谷P2231 [HNOI2002]跳蚤 [数论,容斥原理]
题目传送门 跳蚤 题目描述 Z城市居住着很多只跳蚤.在Z城市周六生活频道有一个娱乐节目.一只跳蚤将被请上一个高空钢丝的正中央.钢丝很长,可以看作是无限长.节目主持人会给该跳蚤发一张卡片.卡片上写有N+ ...
- [洛谷U62364]三次函数极值
U62364 三次函数极值 题面 给定一个三次函数\(f(x)=a_3x^3+a_2x^2+a_1x+a_0\) 求其极值. 格式 输入包括一行四个整数\(a_3,a_2,a_1,a_0\) 输出包括 ...
- 洛谷P2759 奇怪的函数(log 二分)
题目描述 使得 x^xxx 达到或超过 n 位数字的最小正整数 x 是多少? 输入输出格式 输入格式: 一个正整数 n 输出格式: 使得 x^xxx 达到 n 位数字的最小正整数 x 输入输出样例 输 ...
- 洛谷P2759 奇怪的函数
P2759 奇怪的函数 题目描述 使得 x^x 达到或超过 n 位数字的最小正整数 x 是多少? 输入输出格式 输入格式: 一个正整数 n 输出格式: 使得 x^x 达到 n 位数字的最小正整数 x ...
随机推荐
- 网页效果分析 VCD分解
VCD分解分为三部分: 1. view 视觉 HTML + CSS 基本界面模板 2. controller 控制 javascript 内 ...
- 第八课 go的条件语句
1 if ... else package main import "fmt" func main() { flag:= { fmt.Println("flag > ...
- Ubuntu登录异常: 输入正确的密码, 但是却无法进入系统, 总是返回到登录界面, 但是用ctrl+alt+F1-F文字界面登录都可以进入。
今天打开电脑的时候, 在输入密码之后, 未进入ubuntu的桌面, 而是显示了几行英文之后有返回到了登录界面.显示的英文如下: could not write bytes: Broken pipe ...
- java 多线程系列---JUC原子类(一)之框架
根据修改的数据类型,可以将JUC包中的原子操作类可以分为4类. 1. 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ;2. 数组类型: AtomicIn ...
- 类型:linux;问题:linux命令;结果:Linux常用命令大全
Linux常用命令大全 QQ空间新浪微博腾讯微博人人网豆瓣网百度空间百度搜藏开心网复制更多1997 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) una ...
- springmvc下的省市县三级联动
转自:https://blog.csdn.net/rentian1/article/details/77662635
- Tiny4412 u-boot分析(1)u-boot配置流程分析
参考Friendlyarm的文档,编译uboot的流程为 make tiny4412_config make 这个过程主要涉及到两个文件,顶层的Makefile文件和mkconfig文件,makeco ...
- .Net时间运算 - DateTime类,TimeSpan类
DateTime类是.Net中用于处理时间类型数据的. 一.字段 MaxValue 表示 DateTime 的最大可能值.此字段为只读. MinValue 表示 DateTime 的最小可能值 ...
- 登陆Oracle出现错误java.lang.exception
出现错误时登录企业管理器时出现的界面 出现这种错误一般是因为没有设置时区,一般默认的是agentTZRegion=GMT,也就是GMT.所以大家只要设置了这个东西,然后重新启动dbconsole就可以 ...
- re.findall 两个连续匹配成功的输出后一个