sdut 2605 A^X mod P
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2605
这个题卡的是优化,直观解法是在求x^y时 用快速羃,但会TLE
快速羃其实就是把 y 变成了二进制 这样每求一次花费为 y 的二进制长度
我又把 y 变成了十进制进行求解 虽然优化了 但还是超时 优化的不够好,看了一下题解
我把 y 变成100000 进制 这样 y 的100000进制长度就变成了 2 只要事先打表,就可以快很多了 。
代码:
#include<iostream>
#include<cstdio>
#include<vector>
#include<stack>
#include<cstring>
#include<queue>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<string>
#include<set>
#include<map> using namespace std;
const int INF=0x3f3f3f3f;
const long long MOD=1000000009;
const int M=100000;
const int N=1000005;
long long f[N];
long long c[N],d[N];
int main()
{
//freopen("data.in","r",stdin);
int T;
scanf("%d",&T);
for(int w=1;w<=T;++w)
{
printf("Case #%d: ",w);
int n;
long long A,K,a,b,m,P;
//cin>>n>>A>>K>>a>>b>>m>>P;
scanf("%d %lld %lld %lld %lld %lld %lld",&n,&A,&K,&a,&b,&m,&P);
f[1]=K;
for(int i=2;i<=n;++i)
f[i]=(a*f[i-1]+b)%m;
c[0]=1;
for(int i=1;i<=M;++i)
c[i]=c[i-1]*A%P;
d[0]=1;
for(int i=1;i<=M;++i)
d[i]=d[i-1]*c[M]%P;
long long ans=0;
for(int i=1;i<=n;++i)
{
long long x=f[i]/M;
long long y=f[i]%M;
ans+=(d[x]*c[y])%P;
}
//cout<<(ans%P)<<endl;
printf("%lld\n",ans%P);
}
return 0;
}
sdut 2605 A^X mod P的更多相关文章
- sdutoj 2605 A^X mod P
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2605 A^X mod P Time Limit ...
- Sdut 2164 Binomial Coeffcients (组合数学) (山东省ACM第二届省赛 D 题)
Binomial Coeffcients TimeLimit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 输入 输出 示例输入 1 1 10 2 9 ...
- 函数mod(a,m)
Matlab中的函数mod(a,m)的作用: 取余数 例如: mod(25,5)=0; mod(25,10)=5; 仅此.
- ORACLE 数据库 MOD 函数用法
1.求2和1的余数. Select mod(2,1) from dual: 2能被1整除所以余数为0. 2.MOD(x,y)返回X除以Y的余数.如果Y是0,则返回X的值. Select mod(2,0 ...
- 黑科技项目:英雄无敌III Mod <<Fallen Angel>>介绍
英雄无敌三简介(Heroes of Might and Magic III) 英3是1999年由New World Computing在Windows平台上开发的回合制策略魔幻游戏,其出版商是3DO. ...
- [日常训练]mod
Description 给定$p_1,p_2,-,p_n,b_1,b_2,...,b_m$, 求满足$x\;mod\;p_1\;\equiv\;a_1,x\;mod\;p_2\;\equiv\;a_2 ...
- Apache Mod/Filter Development
catalog . 引言 . windows下开发apache模块 . mod进阶: 接收客户端数据的 echo 模块 . mod进阶: 可配置的 echo 模块 . mod进阶: 过滤器 0. 引言 ...
- FZU 1752 A^B mod C(快速加、快速幂)
题目链接: 传送门 A^B mod C Time Limit: 1000MS Memory Limit: 65536K 思路 快速加和快速幂同时运用,在快速加的时候由于取模耗费不少时间TLE了 ...
- HDOJ 4389 X mod f(x)
数位DP........ X mod f(x) Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/ ...
随机推荐
- Docker-网络基础配置
从外部访问容器 指定容器端口随机映射主机端口 [root@wls12c /]$ docker run -p -d --name web tomcat /bin/bash -c /root/apache ...
- windows volume related concepts
Volume --- 一个volume就是一个分区. 在该“物理硬盘”上创建一个或多个分区,再创建文件系统,才可以得到一个VOLUME.此时VOLUME相对于主机是一个逻辑设备. https://m ...
- Object Pascal 面向对象的特性
2 面向对象的特性 在软件系统开发过程中,结构分析技术和结构设计技术具有很多优点,但同时也存在着许多难以克服的缺点.因为结构分析技术和结构设计技术是围绕着实现处理功能来构造系统的,而在系统维护和软件升 ...
- Android提高篇之自定义dialog实现processDialog“正在加载”效果、使用Animation实现图片旋转
知识点: 1.使用imageview.textview自定义dialog 2.使用Animation实现图片旋转动画效果 3.通过自定义theme去掉dialog的title 没有使用progres ...
- JavaMail 发送邮件案例
#----------------这两个是构建session必须的字段---------- #smtp服务器 mail.smtp.host=smtp.exmail.qq.com #身份验证 mail. ...
- hdu5785(极角排序求所有锐角钝角个数)
做法很显然,求出所有的锐角和钝角就能求出有多少个锐角三角形了. 我用了愚钝的方法,写了两三个小时... 看了下别人简单的代码.学习了下做法. sort(temp+,temp+cnt+);//排序 Fo ...
- Gitweb 安装与配置
gitweb 可以通过搭建git服务器将代码保存在git服务器上,多个开发者可以从服务器上clone代码,也可以各自维护一份本地代码,在本地更新之后可以提交到git服务器上,提高开发效率. g ...
- 安卓App热补丁动态修复技术介绍
版权声明:本文由johncz原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/169 来源:腾云阁 https://www.q ...
- maven 添加支持编译jdk1.7
1.在<profiles>元素内增加如下内容 <profile> <id>jdk17</id> <activation> ...
- clip API实现遮罩
(function () { var img; var canvas = document.getElementById("canvas"); var con = canvas.g ...