国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Bzoj 2242: [SDOI2011]計(jì)算器(BSGS)

2019-11-11 06:34:47
字體:
供稿:網(wǎng)友

2242: [SDOI2011]計(jì)算器 Time Limit: 10 Sec Memory Limit: 512 MB Description 你被要求設(shè)計(jì)一個計(jì)算器完成以下三項(xiàng)任務(wù): 1、給定y,z,p,計(jì)算Y^Z Mod P 的值; 2、給定y,z,p,計(jì)算滿足xy≡ Z ( mod P )的最小非負(fù)整數(shù); 3、給定y,z,p,計(jì)算滿足Y^x ≡ Z ( mod P)的最小非負(fù)整數(shù)。 Input 輸入包含多組數(shù)據(jù)。 第一行包含兩個正整數(shù)T,K分別表示數(shù)據(jù)組數(shù)和詢問類型(對于一個測試點(diǎn)內(nèi)的所有數(shù)據(jù),詢問類型相同)。 以下行每行包含三個正整數(shù)y,z,p,描述一個詢問。 Output 對于每個詢問,輸出一行答案。對于詢問類型2和3,如果不存在滿足條件的,則輸出“Orz, I cannot find x!”,注意逗號與“I”之間有一個空格。 Sample Input 【樣例輸入1】 3 1 2 1 3 2 2 3 2 3 3 【樣例輸入2】 3 2 2 1 3 2 2 3 2 3 3 【數(shù)據(jù)規(guī)模和約定】 對于100%的數(shù)據(jù),1<=y,z,p<=10^9,為質(zhì)數(shù),1<=T<=10。 Sample Output 【樣例輸出1】 2 1 2 【樣例輸出2】 2 1 0 HINT Source 第一輪day1

/*復(fù)合題hhh.前兩問裸的快速冪 exgcd.讀入int64 不要圖快用scanf linux好像不行? 然后這題case 3 是BSGS.由于本人比較弱所以我只能感性的認(rèn)識一下BSGS.y^x≡z(mod p).這題暴力的話復(fù)雜度是O(p)的.因?yàn)楦鶕?jù)費(fèi)馬小定理y^(p-1)≡1(mod p).剩余系元素的個數(shù)就是p-1,再往后就出現(xiàn)循環(huán)了.然后我們采用分塊的思想,令m=√p.然后就有y^(km+i)≡z(mod p).y^i≡ine(y^km)*z(mod p). (ine x為x的逆元).然后左邊hash存表,右邊枚舉k.然后因?yàn)橘M(fèi)馬小定理有y^m*y^(p-m-1)≡1(mod p).so ine(y^m)=y^(p-m-1).右邊就變成了ine(y^m(k-x))*[ine(y^m)]^x.枚舉k即可. 復(fù)雜度就變成了O(sqrt(p)). */#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>#include<map>#define LL long longusing namespace std;int k,t,n,p;LL a,b,x,y,c;map<int ,int >s;LL mi(){ LL tot=1; while(b) { if(b&1) tot=tot*a%p; a=a*a%p; b>>=1; } return tot%p;}void slove1(){ while(t--) { cin>>a>>b>>p;// 1 W. //scanf("%lld%lld%lld",&a,&b,&p);
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 衡山县| 璧山县| 龙游县| 开原市| 济源市| 榆中县| 堆龙德庆县| 莱阳市| 交城县| 延津县| 石门县| 北碚区| 陵水| 且末县| 和龙市| 临海市| 凉城县| 赤峰市| 株洲市| 五大连池市| 虞城县| 雷州市| 嘉祥县| 乌鲁木齐县| 清徐县| 西充县| 定边县| 军事| 永清县| 海兴县| 元江| 凉城县| 房山区| 那坡县| 沂南县| 台中市| 定兴县| 闸北区| 嘉禾县| 石狮市| 丰城市|