洛谷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 ...
随机推荐
- Python使用SMTP模块、email模块发送邮件
一.smtplib模块: 主要通过SMTP类与邮件系统进行交互.使用方法如下: 1.实例化一个SMTP对象: s = smtplib.SMTP(邮件服务地址,端口号) s = smtplib.SMTP ...
- [置顶]
都是类型惹的祸——小心unsigned
正如我们所知道的,编程语句都有很多的基本数据类型,如char,inf,float等等,而在C和C++中还有一个特殊的类型就是无符号数,它由unsigned修饰,如unsigned int等.大家有没想 ...
- Activity的显式跳转和隐式挑战
安卓中Activity的跳转几乎是每一个APP都会用到的技术点.而且他的使用时十分简单的. 这里我们先说一下主要的技术要点: 1.在清单文件中注册新的Activity 2.通过意图跳转 这里我们看一下 ...
- 我的第一个Socket程序-SuperSocket使用入门(二)
操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操操 辛辛苦苦写那么久的博客,最后手贱点了全屏富文本编辑器 ...
- java定时器控制时间打印
public class test2 { public static void main(String []args){ Timer timer=new Timer(); timer.schedule ...
- dos 下bat 常用符号
1.@一般在它之后紧跟一条命令或一条语句,则此命令或语句本身在执行的时候不会显示在屏幕上.请把下面的代码保存为test.cmd文件,然后运行,比较一下两条echo语句在屏幕上的输出差异: ech ...
- java中的字符,字节和编码
1. 编码问题的由来,相关概念的理解 1.1 字符与编码的发展 从计算机对多国语言的支持角度看,大致可以分为三个阶段: 系统内码 说明 系统 阶段一 ASCII 计算机刚开始只支持英语,其它语言不 ...
- Freemarker 使用注意事项
上次借助 Freemaker 模板引擎来动态构造 Kylin 访问的 SQL,在使用过程中,遇到了一些坑. ${} 输出变量时需要注意: 示例 WHERE shop_id = ${val} 里的 v ...
- Boost中实现线程安全
博客转载自: http://www.cnblogs.com/lvdongjie/p/4447142.html 1 boost原子变量和线程 #include <boost/thread.hpp& ...
- serializeArray()和.serialize()的区别、联系
serializeArray()和.serialize()的区别.联系 <form id='addForm' action='UserAdd.action' type='post'> ...