SSL 1491 天使的起誓 (高精度減法)

2021-10-09 06:57:13 字數 1318 閱讀 8403

tenshi非常幸運的被選為掌管智慧型之匙的天使。在正式任職之前,她必須和其他新當選的天使一樣,要宣誓。宣誓儀式是每位天使各自表述自己的使命,她們的發言稿被放在n個呈圓形排列的寶盒中。這些寶盒按順時針方向被編上號碼1、2、3……、n-1、n。一開始天使們站在編號為n的寶盒旁。她們各自手上都有乙個數字,代表她們自己的發言稿所在的盒子是從1號盒子開始按順時針方向的第幾個。例如:有7個盒子,那麼如果tenshi手上的數字為9,那麼她的發言稿所在盒子就是第2個。現在天使們開始按照自己手上的數字來找發言稿,先找到的就可以先發言。tenshi一下子就找到了,於是她最先上台宣誓:「我將帶領大家開啟noi之門……」tenshi宣誓結束以後,陸續有天使上台宣誓。可以有一位天使找了好久都找不到她的發言稿,原來她手上的數字m非常大,她轉了好久都找不到她想找的寶盒。請幫助這位天使找到她想找的寶盒的編號。

第一、二行分別讀入正整數n和m,其中n、m滿足2 ≤ n ≤ 10^8,2 ≤ m ≤ 10^1000

求寶盒的編號

樣例1

7

9

樣例2

11

108

樣例1

2
樣例2

9
這道題其實就是高精除求餘,也就是瘋狂高精減,但由於大小差距太大,n的大小是108,m的大小卻是101000,暴力減會愉快的time limit exceed,所以我們要用到移位的方法:

1234-12我們可以先用1234-1200=34

再用34-12=22

最後用22-12=10

結果就是10

華麗麗的**分割線

#include

#include

#include

#include

using

namespace std;

const

int maxn=

1005

;char str1[maxn]

,str2[maxn]

;int a[maxn]

,b[maxn]

,c[maxn]

;void

sub(

)else

}bool

comp

(int a,

int b)

void

output()

void

work()

}while

(j>0)

}}void

init()

intmain()

9106 天使的起誓

time limit 10 second memory limit 2 mb 問題描述 tenshi非常幸運的被選為掌管智慧型之匙的天使。在正式任職之前,她必須和其他新當選的天使一樣,要宣誓。宣誓儀式是每位天使各自表述自己的使命,她們的發言稿被放在n個呈圓形排列的寶盒中。這些寶盒按順時針方向被編上號...

數論 luoguP2818 天使的起誓

題目 前兩天考試的題 讀入m的時候 n就行了 好像是解方程那個題的思想 叫什麼同餘定理搞得乙個大整數取模 紫書p314 如下 include include include using namespace std define in1 read1 define in2 read2 typedef l...

洛谷P2818 天使的起誓

tenshi非常幸運地被選為掌管智慧型之匙的天使。在正式任職之前,她必須和其他新當選的天使一樣要宣誓。宣誓儀式是每位天使各自表述自己的使命,他們的發言稿放在n個呈圓形排列的寶盒中。這些寶盒按順時針方向被編上號碼1,2,n 1,n。一開始天使們站在編號為n的寶盒旁。她們各自手上都有乙個數字,代表她們自...