2018第九屆藍橋杯C C B組國賽題目與題解

2021-10-10 12:08:25 字數 1326 閱讀 7218

小明買了塊高階大氣上檔次的電子手錶,他正準備調時間呢。

在 m78 星雲,時間的計量單位和地球上不同,m78 星雲的乙個小時有 n 分鐘。

大家都知道,手錶只有乙個按鈕可以把當前的數加一。在調分鐘的時候,如果當前顯示的數是 0 ,那麼按一下按鈕就會變成 1,再按一次變成 2 。如果當前的數是 n - 1,按一次後會變成 0 。

作為強迫症患者,小明一定要把手錶的時間調對。如果手錶上的時間比當前時間多1,則要按 n - 1 次加一按鈕才能調回正確時間。

小明想,如果手錶可以再新增乙個按鈕,表示把當前的數加 k 該多好啊……

他想知道,如果有了這個 +k 按鈕,按照最優策略按鍵,從任意乙個分鐘數調到另外任意乙個分鐘數最多要按多少次。

注意,按 +k 按鈕時,如果加k後數字超過n-1,則會對n取模。

比如,n=10, k=6 的時候,假設當前時間是0,連按2次 +k 按鈕,則調為2。

「輸入格式」

一行兩個整數 n, k ,意義如題。

「輸出格式」

一行乙個整數

表示:按照最優策略按鍵,從乙個時間調到另乙個時間最多要按多少次。

「樣例輸入」

5 3

「樣例輸出」

2

「樣例解釋」

如果時間正確則按0次。否則要按的次數和操作系列之間的關係如下:

1:+1

2:+1, +1

3:+3

4:+3, +1

「資料範圍」

對於 30% 的資料 0 < k < n <= 5

對於 60% 的資料 0 < k < n <= 100

對於 100% 的資料 0 < k < n <= 100000

#include

#include

using

namespace std;

typedef pair<

int,

int> pii;

queue q;

int n,k;

int a[

1000005];

intmain()

if(x + k != n &&

!a[(x + k)

% n])}

cout << mmax << endl;

return0;

}

參加第九屆藍橋杯C C B組

寫這篇部落格的目的不是要把所有題目的題意給詳細分析 點出思路 給出答案。只是為了要寫點感受。實在不行,你可以用計算機的時鐘日曆,如果自己做錯了,有沒有很驚喜 意外。2 明碼,話說是9的9次方的值 這個把結果算成是81的同志,你應該清楚明白,不管你當時是緊張,還是粗心大意,或是當推出是 9的9次方 時...

2018第九屆藍橋杯C C B組 遞增三元組

時 空限制 1s 64mb 給定三個整數陣列 a a1,a2,an a a1,a2,an b b1,b2,bn b b1,b2,bn c c1,c2,cn c c1,c2,cn 請你統計有多少個三元組 i,j,k i,j,k 滿足 1 i,j,k n1 i,j,k n ai輸入格式 第一行包含乙個整...

第九屆藍橋杯決賽大學A組

已知三角形三個頂點在直角座標系下的座標分別為 2.3,2.5 6.4,3.1 5.1,7.2 求該三角形的面積。注意,要提交的是乙個小數形式表示的浮點數。要求精確到小數後3位,如不足3位,需要補零。答案 include include using namespace std struct dian ...