BZOJ2242 計算器(BSGS,快速冪)

2021-08-18 16:15:30 字數 1281 閱讀 6146

bzoj

洛谷1、給定y、z、p,計算y^z mod p 的值;

2、給定y、z、p,計算滿足xy ≡z(mod p)的最小非負整數x;

3、給定y、z、p,計算滿足y^x ≡z(mod p)的最小非負整數x。

第一問是裸的快速冪

第二問,因為

p 是質數,所以求一下乘法逆元再乘

z就行了,特判

y 是

p的倍數時無解

第三問,bs

gs模板ma

p:652ms

hash

:48ms

。。。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define ll long long

#define rg register

const

int hashmod=100007;

inline

int read()

int fpow(int a,int b,int mod)

return s;

}void noanswer()

namespace task1}

namespace task2

}namespace task3

e[1000000];

int h[hashmod],cnt;

void add(int u,int v,int w);h[u]=cnt;}

void clear()

void hash(int x,int k)

int query(int x)

}hash;

void solve(int y,int z,int p)

y%=p;z%=p;

if(z==1)

int m=sqrt(p)+1;hash.clear();

for(rg int i=0,t=z;i1ll*t*y%p)hash.hash(t,i);

for(rg int i=1,tt=fpow(y,m,p),t=tt;i<=m+1;++i,t=1ll*t*tt%p)

noanswer();

}}int main()

return

0;}

實現計算器

dim boldot as boolean dim dblacc1,dblacc2 as double dim dblacc3 as double 10 dim strop as string private sub add num byval intnumber as integer if bol...

計算器修改

在做計算器介面修改這個專案中遇見的問題。先把需求說清楚,黑莓風格的計算器裡面有觸控和非觸控兩個流程。介面,功能,和座標是不一樣的。我是要在非觸控下做出觸控螢幕的介面,除了不能觸控以外,所有的功能都要和觸控螢幕下一樣。之前先是找到資源,然後替換資源,載入,調座標,調功能,調bug。資源很快就找到了,然...

簡單計算器

unit unit1 inte ce uses windows,messages,sysutils,variants,classes,graphics,controls,forms,dialogs,stdctrls,buttons,math math是數 算單元 type tform1 class ...