bzoj2242 计算器
Description
Input
输入包含多组数据。
Output
- #include<cstdio>
- #include<cmath>
- typedef long long lint;
- int t,k,y,z,p;
- const int P=;
- int xs[P],ys[P],ts[P],now=;
- void insert(int x,int y){
- int w=x%P;
- while(ts[w]==now){
- if(xs[w]==x)return;
- w+=;
- if(w>=P)w-=P;
- }
- xs[w]=x;
- ys[w]=y;
- ts[w]=now;
- }
- int find(int x){
- int w=x%P;
- while(ts[w]==now){
- if(xs[w]==x)return ys[w];
- w+=;
- if(w>=P)w-=P;
- }
- return -;
- }
- lint power(lint x,int n){
- if(n==)return ;
- lint c=power(x,n>>);
- if(n&)return c*c%p*x%p;
- return c*c%p;
- }
- int main(){
- scanf("%d%d",&t,&k);
- if(k==){
- while(t--){
- scanf("%d%d%d",&y,&z,&p);
- printf("%lld\n",power(y,z));
- }
- }
- if(k==){
- while(t--){
- scanf("%d%d%d",&y,&z,&p);
- lint x=z%p*power(y,p-)%p;
- if(x*y%p==z%p)printf("%lld\n",x);
- else puts("Orz, I cannot find x!");
- }
- }
- if(k==){
- while(t--){
- scanf("%d%d%d",&y,&z,&p);
- lint m=ceil(sqrt(p));
- lint ym=power(y,m);
- lint v=power(ym,p-);
- int x=-;
- for(int i=;i<m;i++)insert(power(y,i),i);
- for(int i=;i<=m;i++){
- int a=find(z*power(v,i)%p);
- if(~a){
- x=i*m+a;
- break;
- }
- }
- if(x==-||power(y,x)%p!=z%p)puts("Orz, I cannot find x!");
- else printf("%d\n",x);
- now++;
- }
- }
- return ;
- }
bzoj2242 计算器的更多相关文章
- BZOJ-2242 计算器 快速幂+拓展欧几里得+BSGS(数论三合一)
污污污污 2242: [SDOI2011]计算器 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 2312 Solved: 917 [Submit][S ...
- 【BZOJ2242】计算器(BSGS,快速幂)
[BZOJ2242]计算器(BSGS,快速幂) 题面 BZOJ 洛谷 1.给定y.z.p,计算y^z mod p 的值: 2.给定y.z.p,计算满足xy ≡z(mod p)的最小非负整数x: 3.给 ...
- 【BZOJ2242】[SDOI2011]计算器 BSGS
[BZOJ2242][SDOI2011]计算器 Description 你被要求设计一个计算器完成以下三项任务: 1.给定y,z,p,计算Y^Z Mod P 的值: 2.给定y,z,p,计算满足xy≡ ...
- 【bzoj2242】: [SDOI2011]计算器 数论-快速幂-扩展欧几里得-BSGS
[bzoj2242]: [SDOI2011]计算器 1.快速幂 2.扩展欧几里得(费马小定理) 3.BSGS /* http://www.cnblogs.com/karl07/ */ #include ...
- [bzoj2242][Sdoi2011]计算器_exgcd_BSGS
计算器 bzoj-2242 Sdoi-2011 题目大意:裸题,支持快速幂.扩展gcd.拔山盖世 注释:所有数据保证int,10组数据. 想法:裸题,就是注意一下exgcd别敲错... ... 最后, ...
- BZOJ2242 [SDOI2011]计算器
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- 【bzoj2242】 SDOI2011—计算器
http://www.lydsy.com/JudgeOnline/problem.php?id=2242 (题目链接) 题意 给出y,z,p.求:1.yz mod p:2.xy=z(mod p):3. ...
- 【BZOJ2242】【SDoi2011】计算器 快速幂+EXGCD+BSGS
Description 你被要求设计一个计算器完成以下三项任务: 1.给定y,z,p,计算Y^Z Mod P 的值: 2.给定y,z,p,计算满足xy≡ Z ( mod P )的最小非负整数: 3.给 ...
- 【BZOJ2242】【SDOI2011】计算器
Description 你被要求设计一个计算器完成以下三项任务: 1.给定y.z.p,计算y^z mod p 的值: 2.给定y.z.p,计算满足xy ≡z(mod p)的最小非负整数x: 3.给定y ...
随机推荐
- DevExpress v17.2新版亮点—WinForms篇(一)
用户界面套包DevExpress v17.2终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.开篇介绍了DevExpress WinForms v17.2 Data Grid Control ...
- 一起来点React Native——常用组件之Image
一.前言 在开发中还有一个非常重要的组件Image,通过这个组件可以展示各种各样的图片,而且在React Native中该组件可以通过多种方式加载图片资源. 二.Image组件的基本用法 2.1 从当 ...
- IntelliJ IDEA 2017.01配置jdk和tomcat
之前开发Web项目都是用myeclipse或者eclipse,最近想用IDEA这个编辑器去配置一个Web项目,因为是新手,加上对界面的操作不熟练,所以在配置的过程中遇到了一些难题.最后配置成功,并且可 ...
- python opencv —— 背景提取(MOG、KNN)、识别与检测(Haar Cascade)
注意 opencv 的坐标轴,x 轴向右,和 width 对应,y 轴向下,和 height 对应: 1. MOG2 与 KNN MOG:Mixture of Gaussian import cv2 ...
- SW4STM32 全局宏定义
/************************************************************************************ * SW4STM32 全局宏 ...
- STM32 PWM输出(映射)
STM32 的定时器除了 TIM6 和 7.其他的定时器都可以用来产生 PWM 输出.其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出.而通用定时器也能同时产生多达 4 ...
- IO练习--按字节截取字符串
* 在Java中字符串“abcd”和字符串“ab你好”都是4个字符, * 但是字节数不同,因为GBK中一个汉字占两个字节 * 定义一个方法用来按字节数截取字符串. * 如:对于“ab你好”,取3个字节 ...
- The Suspects 并查集
Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recognized ...
- 网络流--最大流dinic模板
标准的大白书式模板,除了变量名并不一样……在主函数中只需要用到 init 函数.add 函数以及 mf 函数 #include<stdio.h> //差不多要加这么些头文件 #includ ...
- sleep和 wait