bzoj4666 小z的胡话
题目描述:
题解:
乱搞好题哇。
众所周知斐波那契数列是有循环节的。
我们可以搞出在模$10^x$下与所给得数同余的集合,那么在模$10^{x+1}$下,同余集合一定是原集合及循环若干循环节的大集合的子集。
人话是,i have a xunhuanjie, i have a jihe.EN!another jihe and another xunhuanjie.
然后矩乘求值判定就好了。
代码:
#include<vector>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
ll MOD;
void Mod(ll&x){if(x>=MOD)x-=MOD;}
ll fastadd(ll a,ll b)
{
ll t = (long double)a*b/MOD;
ll ret = a*b-t*MOD;
while(ret<)ret+=MOD;
return ret;
}
struct mt
{
ll s[][];
void reset(ll k)
{
s[][]=s[][]=;
s[][]=s[][]=k;
}
void init()
{
s[][]=s[][]=s[][]=;
s[][]=;
}
bool check()
{
for(int i=;i<=;i++)for(int j=;j<=;j++)
if(s[i][j]!=(i==j))return ;
return ;
}
mt operator * (const mt&a)const
{
mt ret;ret.reset();
for(int i=;i<=;i++)
for(int j=;j<=;j++)
for(int k=;k<=;k++)
Mod(ret.s[i][j]+=fastadd(s[i][k],a.s[k][j]));
return ret;
}
};
mt operator ^ (mt&x,ll y)
{
mt ret;ret.reset();
while(y)
{
if(y&)ret=ret*x;
x=x*x;y>>=;
}
return ret;
}
ll n,L[];
vector<ll>ve[]; int main()
{
scanf("%lld",&n);
L[] = ,ve[].push_back(),MOD = ;
mt bas;bas.reset();
for(int i=;i<=;i++)
{
MOD=MOD*;
mt now;now.init();now=now^L[i&];
L[!(i&)]=,ve[!(i&)].clear();
mt nxt;nxt.reset();
while(!L[!(i&)]||!nxt.check())
{
for(int j=,lim=(int)ve[i&].size();j<lim;j++)
{
mt tmp;tmp.init();tmp=tmp^(ve[i&][j]+L[!(i&)]);
if(tmp.s[][]==n%MOD)ve[!(i&)].push_back(ve[i&][j]+L[!(i&)]);
}
L[!(i&)]+=L[i&];nxt=nxt*now;
}
}
if(!ve[].size())puts("-1");
else printf("%lld\n",ve[][]+);
return ;
}
bzoj4666 小z的胡话的更多相关文章
- BZOJ 2038: [2009国家集训队]小Z的袜子(hose) [莫队算法]【学习笔记】
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 7687 Solved: 3516[Subm ...
- BZOJ 2038: [2009国家集训队]小Z的袜子(hose)
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 7676 Solved: 3509[Subm ...
- BZOJ2038: [2009国家集训队]小Z的袜子(hose)
Time Limit: 20 Sec Memory Limit: 259 MB Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天, ...
- Bzoj 2038---[2009国家集训队]小Z的袜子(hose) 莫队算法
题目链接 http://www.lydsy.com/JudgeOnline/problem.php?id=2038 Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色 ...
- 莫队算法 2038: [2009国家集训队]小Z的袜子(hose)
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2038 2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 ...
- BZOJ 2038 小z的袜子 & 莫队算法(不就是个暴力么..)
题意: 给一段序列,询问一个区间,求出区间中.....woc! 贴原题! 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过 ...
- 【BZOJ2038】【2009国家集训队】小Z的袜子(hose) 分块+莫队
Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜 ...
- BZOJ-2038 小Z的袜子(hose) 莫队算法
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MB Submit: 5573 Solved: 2568 [Subm ...
- 【BZOJ】2038: [2009国家集训队]小Z的袜子(hose)(组合计数+概率+莫队算法+分块)
http://www.lydsy.com/JudgeOnline/problem.php?id=2038 学了下莫队,挺神的orzzzz 首先推公式的话很简单吧... 看的题解是从http://for ...
随机推荐
- Node.js 第三方包的安装、升级、卸载,以及包依赖管理
本地安装: npm install package-name 全局全装: npm install -g package-name 举个栗子 全局安装 React项目的脚手架 npm install ...
- mysql5.7日志时间戳(log_timestmaps)与系统时间不一致问题以及日志报Got an error reading communication packets情况分析
一.mysql安装后error_log日志时间戳默认为UTC(如下图),因此会造成与系统时间不一致,与北京时间相差8个小时. 解决errro_logs时间戳与linux系统时间不一致问题 step1: ...
- redis之使用
redis之使用 redis ================================= 1.自动分配.你在什么时候用到了自动分配? 答:市场部或运营部招来的新的客户,单条(批量)录入数据的 ...
- Java EE学习笔记(八)
动态SQL 1.动态SQL中的元素 1).作用:无需手动拼装SQL,MyBatis已提供的对SQL语句动态组装的功能,使得数据库开发效率大大提高! 2).动态SQL是MyBatis的强大特性之一,My ...
- 练习三十:Python回文数判断编程练习。
说到回文数,大家可能会比较的陌生,但是在我们的日常生活中常会遇到这样的数字,只是你不知道它是回文数罢了. 例如:12321,这组数字就是回文数. 设n是一任意自然数.若将n的各位数字反向排列所得自然数 ...
- zabbix agent 配置
http://blog.csdn.net/z644041867/article/details/76618644 https://www.cnblogs.com/miclesvic/p/6144924 ...
- SPI接口的ETH芯片(ENC28J60/W5500)
一 ENC28J60:SPI接口.中断.复位.LED指示.可参看野火相应教程.简单的在单片机中实现网页服务器是参考AVRNET项目,复杂的是用LWIP协议栈.telnet用于用PC的TELNET可以远 ...
- abp(net core)+easyui+efcore仓储系统——ABP总体介绍(一)
在前面我已经介绍了ASP.NET MVC.ASP.NET Razor.WEBAPI等技术.我准备通过一个实践项目来整体应用一下之前介绍的技术.本系列是介绍基于ABP+EasyUI的Web开发框架的形成 ...
- 微信支付(java版本)_统一下单
最近工作接触到微信支付,刚开始解决微信支付很神秘,接触之后发现并没有那么神秘,就是有很多坑,在开发的时候需要注意,整理出来: 1.准备工作 首先需要登录微信支付公众平台阅读接口文档,地址:https: ...
- 在 WPF 中的线程
线程处理使程序能够执行并发处理,以便它可以做多个操作一次.节省开发人员从线程处理困难的方式,设计了 WPF (窗口演示文稿基金会).这篇文章可以帮助理解线程在 WPF 中的正确用法. WPF 内部线程 ...