題目
經濟危機席捲全球,l國也收到衝擊,大量人員失業。四十分:直接模擬,o(nk)然而,作為l國的風雲人物,x找到了自己的新工作。從下週開始,x將成為乙個酒店的助理鎖匠,當然,他得先向部門領導展示他的開鎖能力。
領導給了x一串鑰匙,這串鑰匙串在乙個大圓環上,每把鑰匙有乙個編號(1..n)。然後蒙上x的眼睛並把他帶到乙個圓形的大房間中。在這個房間中有n個上鎖的門,用1..n表示,這串n把鑰匙每一把正好開啟一扇門(鑰匙編號和門編號一致就可以開啟)。
x的工作就是開啟每扇門。他因為蒙著眼睛,不過可以沿著房間的牆壁移動,不能改變方向,直到他摸著一扇門,然後他會嘗試用第一把鑰匙(最左邊)來開啟門,如果鑰匙不能開啟門,他會將鑰匙移到另外一側(最右邊),重複這樣直到找到正確的鑰匙,當他把所有門開啟就結束任務。不過x不知道的是,領導並不是測試 他開鎖能力,而是測試他的耐心,所以領導故意把x帶到圓形房間,這樣x每開一扇門後,領導就會在後面悄悄把門再次鎖上,這樣以來,x開啟最後一扇門後又回到第一扇門然後一直重複下去。不過x是乙個勤奮和耐心的人,他一直毫無怨言的做著這件事,不說任何抱怨的話,只是在每開一扇門他會默默的統計自己已經錯誤了多少次,不過慢慢時間太久他的計算能力不足,需要你來幫助他計算錯誤的次數。
任務:給定數字k,回答當x開啟第k扇門時,一共錯誤了多少次?
輸入 第一行是2個整數n,k
接下來n行,每行包含乙個整數vi,表示鑰匙串從第一把(左側)到最後一把,第i把鑰匙的編號。
輸出 乙個整數,回答第k次開啟一扇門,已經錯誤的次數
樣例輸入
4 6
4 2
1 3
樣例輸出
13 提示
樣例解釋
開啟第1扇門的嘗試(1號門):4 2 1 3,錯誤2次,開啟後鑰匙排列:1 3 4 2
開啟第2扇門的嘗試(2號門):1 3 4 2,錯誤3次,開啟後鑰匙排列:2 1 3 4
開啟第3扇門的嘗試(3號門):2 1 3 4,錯誤2次,開啟後鑰匙排列:3 4 2 1
開啟第4扇門的嘗試(4號門):3 4 2 1,錯誤1次,開啟後鑰匙排列:4 2 1 3
開啟第5扇門的嘗試(1號門):4 2 1 3,錯誤2次,開啟後鑰匙排列:1 3 4 2
開啟第6扇門的嘗試(2號門):1 3 4 2,錯誤3次,開啟後鑰匙排列:2 1 3 4
總錯誤13次
資料規模
40%資料:1<=n,k<=1000
另外60%資料:1<=k<=50000
100%資料:1<=n<=100000,1<=vi<=n,1<=k<=10^9
六十分:可以發現除了最開始的第一次以外一直都是在以n迴圈的,可以預處理出開啟第n扇門的嘗試,再來模擬;
一百分:既然每次迴圈嘗試次數都是一樣的,那我們只用求每n扇門的嘗試和前k%n扇門的嘗試,複雜度o(n)
**
#include
using namespace std;
inline int
read()
int res=ch-'0';
while((ch=getchar())>='0'&&ch<='9')
res=res*10+ch-'0';
return res;
}int n,k,v[100005],place[100005],first,ans[100005];
long long tot[100005],qfe;
int main()
first=place[1]-1;
ans[1]=place[1]-place[n];
if(ans[1]<0) ans[1]+=n;
for(int i=2;i<=n;i++)
for(int i=1;i<=n;i++)
inty=k/n;
qfe=y
*tot[n]+tot[k-y
*n]-tot[1]+first;
cout0;}
NOIP模擬 修路
這題第一眼看上去有些懵逼,還以為是dp。第二眼,哦,這麼裸的最小生成樹,2分鐘打完,拍都沒對,自信100分。最終100分。每條邊的權值減去連個節點的權值,所有的邊做一次最小生成樹就好了。include include include include include define fo i,a,b f...
NOIP模擬 項鍊
經過一番周折,bob找到了alice,為了安慰alice驚魂未定的心,bob決定給alice買一條手鍊,這條手鍊由m個珍珠組成,每個珍珠上刻著不同的小寫字母。當alice看到一些字母按照一定的順序排列成的字串時,就會產生一定的愉悅值。bob現在可以在這m個珍珠上刻上字母,現在他想知道,如何刻字母可以...
NOIP模擬 幻象
phantom是一位愛思考的哲 學家。最近phantom得到了森 妖精的真傳。在他練功的時候,每秒他的思緒中都有一定的概率浮現出奇 異的幻象,持續x秒的幻象將產生 空格 的幻象值。phantom練功發自真心,他想知道,在n秒內他期望產生的幻象值是多少。等我比賽完之後,我們才知道 空格 是x2 所以比...