[bzoj3287] Mato的刷屏计划
第一眼以为是傻逼斜率优化>_<
f[i]表示按i次最多可输出字符数。。f[i]=max{ f[i-1]+1,(i-j-1)*f[j] },j<i-2
结果n在100+的时候就喜闻乐见地爆了longlong
根据网上题解可得(T_T)。。这题大概是要FFT优化?(跟着ccz大爷刷题果然高风险TAT
然而题解表示,这题求出f的前几项后,令x=n%5+15,最终答案f[n]=f[x]*4^((n-x)/5)..........
我死活没看出来这是为啥。。。
我显然是连FFT都不会的傻逼。。只好写了个压位高精度快速幂。。结果跑了#3。。233
突然觉得正解显然不是FFT = =。。另外status里面一堆奇怪语言也是感人>_<
#include<cstdio>
#include<iostream>
#include<cstring>
#define ll long long
#define d double
using namespace std;
const int maxn=;
const int modd=;
ll f[];
int dl[maxn],l,r;
ll a[],c[],b[];
int i,j,k,n,m,lena,lenc; inline d xl(int k,int j){//k<j<i-2
return ( f[j]*(j+)-f[k]*(k+) )/ (d)(f[j]-f[k]);
}
int ra,fh;char rx;
inline int read(){
rx=getchar(),ra=,fh=;
while((rx<''||rx>'')&&rx!='-')rx=getchar();
if(rx=='-')fh=-,rx=getchar();
while(rx>=''&&rx<='')ra*=,ra+=rx-,rx=getchar();return ra*fh;
}
inline void multoa(){
register int i,j,k;
memset(b,,(lena*+)<<);
for(i=;i<=lena;i++)for(j=,k=i;j<=lena;j++,k++){
b[k]+=a[i]*a[j];
if(b[k]>=modd)b[k+]+=b[k]/modd,b[k]%=modd;
}
for(k=lena<<;!b[k];k--);
memcpy(a,b,(k+)<<);lena=k;
}
inline void multoc(){
register int i,j,k;
memset(b,,(lena+lenc+)<<);
for(i=;i<=lena;i++)for(j=,k=i;j<=lenc;j++,k++){
b[k]+=a[i]*c[j];
if(b[k]>=modd)b[k+]+=b[k]/modd,b[k]%=modd;
}
for(k=lena+lenc;!b[k];k--);
memcpy(c,b,(k+)<<);lenc=k;
}
inline void poi(int b){//计算4^b
c[lenc=]=;a[lena=]=;
while(b){
if(b&)multoc();
b>>=;
if(b)multoa();
}
} int main(){
n=read();
f[]=,f[]=,f[]=;
l=,r=;
for(i=;i<=;i++){
while(l<r&&xl(dl[r-],dl[r])>=xl(dl[r],i-))r--;
dl[++r]=i-;
while(l<r&&i>xl(dl[l],dl[l+]))l++;
f[i]=f[dl[l]]*(i-dl[l]-);
if(f[i-]+>f[i])f[i]=f[i-]+;
// printf(" i:%d %lld\n",i,f[i]);
}
if(n<=)printf("%lld\n",f[n]);else{
int x=n%+;
poi((n-x)/);
a[lena=]=f[x];
multoc();
for(printf("%lld",c[lenc]),i=lenc-;i>;i--){
for(j=modd/;j;j/=)if(c[i]<j)putchar('');
printf("%lld",c[i]);
}puts("");//printf(" %d\n",lenc);
}
return ;
}
[bzoj3287] Mato的刷屏计划的更多相关文章
- bzoj 3287: Mato的刷屏计划 高精水题 && bzoj AC150
3287: Mato的刷屏计划 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 124 Solved: 43[Submit][Status] Desc ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- 查看ORACLE的实际执行计划
ORACLE的执行计划分为预估执行计划和实际执行计划.其中,你用Toad.PL/SQL Developer.SQL Developer.EXPLAIN PLAN FOR或者SET ATUOTRACE ...
- SQA计划和验收测试规程设计
一.SQA(软件质量保证)的定义 软件质量保证(SQA-Software Quality Assurance)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准.步骤.实践和方法能够正确地被所 ...
- oracle如何查看执行计划
1.在PL/SQL Developer中得到一个SQL的执行计划 输入想要查看执行计划的目标SQL,再按一下快捷键F5就可以了.2.explain plan 命令 explain plan for + ...
- 【声明】前方不设坑位,不收费!~ 我为NET狂官方学习计划
发个通知,过段时间学习计划相关的东西就出来了,上次写了篇指引文章后有些好奇心颇重的人跟我说:“发现最近群知识库和技能库更新的频率有点大,这是要放大招的节奏啊!” 很多想学习却不知道如何规划的人想要一个 ...
- SQL Server-聚焦查询计划Stream Aggregate VS Hash Match Aggregate(二十)
前言 之前系列中在查询计划中一直出现Stream Aggregate,当时也只是做了基本了解,对于查询计划中出现的操作,我们都需要去详细研究下,只有这样才能对查询计划执行的每一步操作都了如指掌,所以才 ...
- ORACLE从共享池删除指定SQL的执行计划
Oracle 11g在DBMS_SHARED_POOL包中引入了一个名为PURGE的新存储过程,用于从对象库缓存中刷新特定对象,例如游标,包,序列,触发器等.也就是说可以删除.清理特定SQL的执行计划 ...
- wget 显示"英国中部时间",去掉烦人的刷屏显示
wget下载文件显示多行,进度条后面显示英国中部时间,非常让人郁闷. 本来英文是eta(Estimated Time of Arrival 预计到达时间),翻译错了,干脆去掉好了. 先要有两个个工具 ...
随机推荐
- sqlserver 存储过程 查询
--查询 CREATE PROCEDURE [dbo].[SelelctMessage] @strTable varchar(), --要查询的表 @strColum varchar(), --要查询 ...
- (一)最小的Django
本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 本文基本内容均出自<Lightweight Django>(中文为<轻量级D ...
- Who's in the Middle
FJ is surveying his herd to find the most average cow. He wants to know how much milk this 'median' ...
- bzoj 2109: [Noi2010]Plane 航空管制
Description 世博期间,上海的航空客运量大大超过了平时,随之而来的航空管制也频频 发生.最近,小X就因为航空管制,连续两次在机场被延误超过了两小时.对此, 小X表示很不满意. 在这次来烟台的 ...
- bzoj 4199: [Noi2015]品酒大会
Description 一年一度的"幻影阁夏日品酒大会"隆重开幕了.大会包含品尝和趣味挑战两个环节,分别向优胜者颁发"首席品酒家"和"首席猎手&quo ...
- Raspberry Pi中可用的Go IDE:liteide
p { margin-bottom: 0.25cm; line-height: 120% } a:link { } Raspberry Pi中可用的Go IDE:liteide p { margin- ...
- 编译TensorFlow源码
编译TensorFlow源码 参考: https://www.tensorflow.org/install/install_sources https://github.com/tensorflo ...
- shell脚本异步日志分析-接口耗时、可用率
背景:现有日志接入日志报表大盘,为了避免作业高峰期间(双十一),系统也要观测系统整体情况,因此提出了观测近五分钟,接口成功率以及耗时等工具(默认统计最近五分钟,并进行结果汇总统计) 使用说明 前提:p ...
- Windows下使用OpenSSL生成自签证书
下载OpenSSLhttp://slproweb.com/products/Win32OpenSSL.html 生成证书 生成crt证书CMD进入安装bin目录,执行命令:openssl req -x ...
- PHP按行读取文件 去掉换行符"\n"
第一种: $content=str_replace("\n","",$content); echo $content; 或者: $content=str_rep ...