CF1106F题解
居然没人写常系数齐次线性递推/jy
题意明确。
首先我们注意到这个系数是在幂上面的,这道题的各种信息都是建立在乘法上的,十分不好处理,考虑求一个 \(\ln\) 将这些信息建立在加法上。
\]
可以发现这个问题变成了一般的常系数齐次线性递推。
然后发现 \(f_1 \sim f_{k-1}\) 在取了 \(\ln\) 之后全部都变成了 \(0\)。
考虑使用常系数齐次线性递推的老算法,因为老算法算的实际上是前 \(k\) 项对第 \(n\) 项的贡献。
所以跑一遍老算法就能够得到有 \(x \times \ln f[k] = \ln f[n]\),也就是 \(f[k]^x = f[n]\)。
于是只需要在模质数的意义下做 \(k\) 次剩余即可。
#include<unordered_map>
#include<cstdio>
typedef unsigned ui;
const ui M=205,MOD=119<<23,mod=MOD|1;
ui len,n,m,p[M];
inline ui pow(ui a,ui b=mod-2){
ui ans(1);for(;b;b>>=1,a=1ull*a*a%mod)if(b&1)ans=1ull*ans*a%mod;return ans;
}
inline ui Ln(const ui&x){
ui i,y;const ui X=3,Y=393213064,M=31596;std::unordered_map<ui,ui>hs;
if(hs.empty()){
for(y=1,i=1;i<=M&&(y=1ull*y*X%mod);++i)hs[y]=i;hs[1]=0;
}
for(y=1,i=1;i<=M&&(y=1ull*y*Y%mod);++i)if(hs.find(1ull*y*x%mod)!=hs.end())return(hs[1ull*y*x%mod]+i*M)%MOD;
return-1;
}
inline void times(ui*f,ui*g,ui*P,const ui&len){
ui i,j,t;static ui sav[M];
for(i=0;i^len;++i)if(f[i])for(j=0;j^len;++j)if(g[j])sav[i+j]=(sav[i+j]+1ull*f[i]*g[j])%MOD;
for(i=len*2-1;i>=len;--i)if(sav[i])for(t=sav[i],j=len;~j;--j)sav[i-j]=(sav[i-j]+1ull*t*P[j])%MOD;
for(i=0;i^len;++i)f[i]=sav[i],sav[i]=0;
}
inline ui Solve(ui*P,const ui&len,ui n){
static ui f[M],sav[M];if(len^1)f[1]=1;else f[0]=p[1];sav[0]=1;
for(;n;n>>=1,times(f,f,P,len))if(n&1)times(sav,f,P,len);return sav[len-1];
}
ui gcd(const ui&a,const ui&b){
return b?gcd(b,a%b):a;
}
void exgcd(int a,int b,int&x,int&y){
if(!b)return x=1,y=0,void();exgcd(b,a%b,y,x);y-=a/b*x;
}
signed main(){
ui i,ans(0);int a,b,x,y;scanf("%u",&len);p[0]=MOD-1;for(i=1;i<=len;++i)scanf("%u",p+i);scanf("%u%u",&n,&m);
if(n<len)return printf("-1"),0;
a=Solve(p,len,n-1);b=Ln(m);i=gcd(a,MOD);
if(b%i)return printf("-1"),0;a/=i;b/=i;exgcd(a,MOD/i,x,y);
printf("%u",pow(3,1ull*b*(x+MOD/i)%(MOD/i)));
}
CF1106F题解的更多相关文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
随机推荐
- Static块和类加载顺序
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11451040.html 版本:Java8 直接上代码: public class Stati ...
- 有手就行5——jenkins项目构建类型(pipeline流水线项目构建推荐)
有手就行5--jenkins项目构建类型(pipeline流水线项目构建推荐) Pipeline简介 1) 概念 Pipeline,简单来说,就是一套运行在 Jenkins 上的工作流框架,将原来独立 ...
- 如何快速为团队打造自己的组件库(下)—— 基于 element-ui 为团队打造自己的组件库
文章已收录到 github,欢迎 Watch 和 Star. 简介 在了解 Element 源码架构 的基础上,接下来我们基于 element-ui 为团队打造自己的组件库. 主题配置 基础组件库在 ...
- 统计学习:逻辑回归与交叉熵损失(Pytorch实现)
1. Logistic 分布和对率回归 监督学习的模型可以是概率模型或非概率模型,由条件概率分布\(P(Y|\bm{X})\)或决 策函数(decision function)\(Y=f(\bm{X} ...
- Java中eq、ne、ge、gt、le、lt的含义
Java中eq.ne.ge.gt.le.lt 关系运算符包括EQ.NE.GE.GT.LE.LT几个,关系运算符返回的是真"True"或假"False". eq( ...
- java中最简单的计算执行时长的方式
日常在做一些性能测试的时候会通过执行时间来判断执行时长,java中最简单的方式如下: //开始时间 long startL= new Date().getTime(); //这里需要导入 java.u ...
- ybt的坑
emmmm ybt 字符串处理 例2题解错了 AC自动机板子错了(据说) 另外字符串处理的题解写的我一脸懵逼 网站上eeeee 点击查看E. 1.排队接水 #include <iostream& ...
- Linux性能优化之磁盘I/O调优
I/O指标已介绍,那么如何查看系统的这些指标呢? 一.根据工具查性能 二.根据性能找工具 三.磁盘I/O观察实例 iostat 是最常用的磁盘 I/O 性能观测工具,它提供了每个磁盘的 使用率 . I ...
- 2020年的第一天-我的IDEA出现This license ... has been cancelled
IDEA激活在1月3日的早上,激活码被取消了.提示:This license ... has been cancelled. 经过查询.解决方法教程无非是. ¥%--&*(激活码... 210 ...
- 记一次慢查询优化sql
sql语句优化(慢查询日志) 最近,旧系统向新系统迁移工程刚刚结束.开发完成后,测试阶段也是好好休息了一把.接到一个需求,由于内部员工使用的网站部分功能加载时间很长,所以需要去优化系统的一些功能.大致 ...