[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 预计到达时间),翻译错了,干脆去掉好了. 先要有两个个工具 ...
随机推荐
- (一)基于阿里云的MQTT远程控制(Android 连接MQTT服务器,ESP8266连接MQTT服务器实现远程通信控制----简单的连接通信)
如果不了解MQTT的可以看这篇文章 http://www.cnblogs.com/yangfengwu/p/7764667.html http://www.cnblogs.com/yangfengw ...
- 【Socket】苍老师有了丈夫,我也有了SAEA
一.前言 时间过得真是快,转眼就2018年了.首先祝各位博友,软件开发者新年新气象,事业有成,身体健康,阖家幸福!最近看到园子里好多关于自己的2017年度总结以及对自己新一年的愿景,觉得 ...
- vue基础入门
Hello World <body> <!-- 在angularJS中用ng-model --> <!-- {{mseeage?message:11}}支持三元表达式 ...
- input上传图片(file),预览图片的两种方法。blob与base64编码
上传图片时一般都需要预览,我一般用这两种方法来实现.base64编码可以直接上传到后台,后台解析下,得到的文件就会比较小了,省去了压缩图片这一步了. //获取对象input file 的图片地址,放进 ...
- Java版本APP接口安全设计
Java版本APP接口安全设计 安全设计分为两种: 1.传输安全. 2. 会话安全. 1.传输安全 怎么保证接口经过网络传输不被抓包获取? 1.如果只是使用对称性算法,破解APP拿到加密密钥就可以解密 ...
- centos7 安装solr
1 下载solr安装包 下载6.4.1版本 2.创建 存放数据的文件夹 solr_data 和 安装目录 solr_installation 3.进入solr的bin目录执行 /install_sol ...
- 【原创】java NIO FileChannel 学习笔记 FileChannel实现分析 即FileChannelImpl分析
上文已经说了FileChannel是一个抽象类,FileChannelImpl是其实现,接下来介绍FileChannelImpl,参考代码来自OpenJDK7 首先 public class File ...
- 微信小程序参数二维码6问6答
微信小程序参数二维码[基础知识篇],从6个常见问题了解小程序参数二维码的入门知识. 1.什么是小程序参数码? 微信小程序参数二维码:针对小程序特定页面,设定相应参数值,用户扫描后进入相应的页面. 2. ...
- ZJOI 2015 诸神眷顾的幻想乡
题目描述 幽香是全幻想乡里最受人欢迎的萌妹子,这天,是幽香的2600岁生日,无数幽香的粉丝到了幽香家门前的太阳花田上来为幽香庆祝生日. 粉丝们非常热情,自发组织表演了一系列节目给幽香看.幽香当然也非常 ...
- MySQL:表的操作 知识点难点总结:表完整性约束及其他常用知识点二次总结🙄
表操作 一 : 修改表表表表表表表表表: ALTER TABLE 语法 1. 改表名rename alter table 表名 rename 新表名 2. 增加字段add alter table 表名 ...