BZOJ5300 [Cqoi2018]九连环 【数学】【FFT】
题目分析:
这道题是数学必修五的原题,做法如下图,书上讲得很详细了。
  

那么这道题目用快速幂就可以解决了,值得注意的是,分析时间复杂度会发现直接做乘法其实是O(n^2)的,但是有一个1/20左右的常数,可能可以卡进去。为了追求稳定,考虑采用FFT优化。
emm,,,FFT做这种题是大材小用吧,用python写吧,理由是python的乘法是用fft实现的。
代码:
t=input()
count=0
while(count<t):
try:
a=input()
x=2**(a+1)
if a % 2 == 0:
x=x-2;
x=x//3;
else:
x=x-1;
x=x//3;
print x
except:
break
BZOJ5300 [Cqoi2018]九连环 【数学】【FFT】的更多相关文章
- 2019.01.02 bzoj5300: [Cqoi2018]九连环(fft优化高精+快速幂)
		
传送门 题意不好描述(自己看样例解释) 首先可以推出一个递推式:fn=fn−1+2fn−2+1f_n=f_{n-1}+2f_{n-2}+1fn=fn−1+2fn−2+1 然后可以构造两个等式: ...
 - # BZOJ5300 [CQOI2018]九连环 题解 | 高精度 FFT
		
今天做了传说中的CQOI六道板子题--有了一种自己很巨的错觉(雾 题面 求n连环的最少步数,n <= 1e5. 题解 首先--我不会玩九连环-- 通过找规律(其实是百度搜索)可知,\(n\)连环 ...
 - BZOJ5300 [Cqoi2018]九连环  【dp + 高精】
		
题目链接 BZOJ5300 题解 这题真的是很丧病,,卡高精卡到哭 我们设\(f[i]\)表示卸掉前\(i\)个环需要的步数 那么 \[f[i] = 2*f[i - 2] + f[i - 1] + 1 ...
 - 【BZOJ5300】[CQOI2018]九连环 (高精度,FFT)
		
[BZOJ5300][CQOI2018]九连环 (高精度,FFT) 题面 BZOJ 洛谷 题解 去这里看吧,多么好 #include<iostream> #include<cstdi ...
 - CQOI2018 九连环 打表找规律 fft快速傅里叶变换
		
题面: CQOI2018九连环 分析: 个人认为这道题没有什么价值,纯粹是为了考算法而考算法. 对于小数据我们可以直接爆搜打表,打表出来我们可以观察规律. f[1~10]: 1 2 5 10 21 4 ...
 - BZOJ5300:[CQOI2018]九连环——题解
		
一种打表的方法,适用于知道如何解九连环的人. 我们知道,解九(n)连环必须先解第九(n)环,然后解八(n-1).七(n-2)-- 根据这个我们飞快的写出了一个递推式,设\(f[i]\)为\(i\)连环 ...
 - [CQOI2018]九连环
		
嘟嘟嘟 对于这种找规律的题,我向来是不会的. 通过大佬们的各种打表找规律.神奇dp等方法,我们得到了答案就是\(\lfloor \frac{2 ^ {n + 1}}{3} \rfloor\). 高精是 ...
 - P4461 [CQOI2018]九连环
		
思路:\(DP\) 提交:\(2\)次 错因:高精写挂(窝太菜了) 题解: 观察可知\(f[i]=2*f[i-1]+(n\&1)\) 高精的过程参考了WinXP@luogu的思路: 发现一个问 ...
 - FFT && NTT板子
		
贴板子啦-- FFT板子:luogu P3803 [模板]多项式乘法(FFT) #include<cstdio> #include<iostream> #include< ...
 
随机推荐
- kubespray -- k8s集群dashboard 访问方式
			
1.参考这篇文章: https://github.com/kubernetes/dashboard/wiki/Creating-sample-user 创建用户 2.获取token 3.kubectl ...
 - C#创建自己的扩展方法
			
C#可以创建自己的扩展方法Extension Method: 参考这篇<判断是否为空然后赋值>http://www.cnblogs.com/insus/p/8004097.html 里,前 ...
 - RDLC报表显示存储于数据库的图片
			
图片以二进制存储于数据库表中.在显示RDLC报表时,把图片呈现出来. 好吧. 把存储过程写好: CREATE PROCEDURE [dbo].[usp_File_Select] AS SELECT [ ...
 - (转) Ubuntu 更改文件夹及子文件夹权限
			
Linux系统下如何修改文档及文件夹(含子文件夹)权限,我们来看一下. 一 介绍: 可以使用命令chmod来为文件或目录赋予权限.Linux/Unix 的档案存取权限分为三级 : 档案拥有者.群组.其 ...
 - [python][spark]wholeTextFiles 读入多个文件的例子
			
$pwd /home/training/mydir $cat file1.json {"firstName":"Fred", "lastName&qu ...
 - A2dp初始化流程源码分析
			
蓝牙启动的时候,会涉及到各个profile 的启动.这篇文章分析一下,蓝牙中a2dp profile的初始化流程. 我们从AdapterState.java中对于USER_TURN_ON 消息的处理说 ...
 - 学习ML.NET(2): 使用模型进行预测
			
训练模型 在上一篇文章中,我们已经通过LearningPipeline训练好了一个“鸢尾花瓣预测”模型, var model = pipeline.Train<IrisData, IrisPre ...
 - 开启C语言的学习之门
			
本人是一枚工业界的码农,为了职业道路越来越宽广决定向上位机方面进军,C语言曾经在大学里面学过点皮毛但是离应用远远不够,尽量每天在工作之余更新自己学习的进度,同时也希望有大神能给予在编程道路上的指导,话 ...
 - Linux下通过受限bash创建指定权限的账号
			
在日常业务运维中,有时为了配合解决问题,需要给非运维人员开通系统账号,用于查询日志或代码.通常为了系统安全或避免不必要的误操作等目的,会将账号权限降至最低.下面介绍下在Linux下通过受限bash创建 ...
 - Visual Studio2013安装过程以及单元测试
			
一.安装环境 操作系统版本:Windows10家庭中文版64位 CPU:i5-4200u 1.60GHz 硬盘内存:750G 二.安装版本 Visual Studio2013 三.安装过程 Visu ...