试题 算法训练 唯一的啥子ALGO-973
資源限制
時(shí)間限制:1.0s 內(nèi)存限制:256.0MB
問(wèn)題描述
腿錚找2255有點(diǎn)事,但2255太丑了,所以腿錚不知道他的長(zhǎng)相。正愁不知道到如何找他的時(shí)候,他突然看見計(jì)33班圍成了一個(gè)圈在領(lǐng)微積分試卷。計(jì)33班有n個(gè)人,其中班長(zhǎng)編號(hào)為0,其余同學(xué)依次按順時(shí)針方向編號(hào)。
只聽見計(jì)33小導(dǎo)說(shuō)“x號(hào)同學(xué)順時(shí)針方向往后數(shù)的第k個(gè)的神犇出列(不包括x號(hào)同學(xué)),領(lǐng)取滿分試卷!”。剩下的人繼續(xù)圍成一個(gè)小圈。這樣一個(gè)過(guò)程持續(xù)了n-1次,那么顯然,最后只剩下了一個(gè)人。眾所周知,2255是個(gè)大傻子,門門掛科,不符合滿分試卷這一前提條件。通過(guò)這樣一個(gè)過(guò)程,腿錚終于找到了2255并血虐了他。
求2255的編號(hào)是多少。
輸入格式
第一行一個(gè)n,表示計(jì)33班的人數(shù)。
接下來(lái)n-1行,表示小導(dǎo)說(shuō)話中的x和k。
輸出格式
一個(gè)數(shù)字,表示2255的編號(hào)。
樣例輸入
3
1 1
0 1
樣例輸出
0
數(shù)據(jù)規(guī)模和約定
前90%數(shù)據(jù)保證n<=10^4.
前100%數(shù)據(jù)保證n<=10^6,1<=k<min(當(dāng)時(shí)圈中人數(shù),1000)
有被內(nèi)涵到,我承認(rèn)我就是。
思路:由于1<=k<min(當(dāng)時(shí)圈中人數(shù),1000),所以輸入的第n-1行的x就是剩下的那個(gè)人。
(這題for循環(huán)不能用cin輸入,會(huì)超時(shí))輸入就花了這么長(zhǎng)時(shí)間!!!(關(guān)鍵字那里的鏈表就是唬人!!!!)
#include<iostream> using namespace std;int main(){int n;cin>>n;int x,k;for(int i=0;i<n-1;i++){scanf("%d%d", &x,&k);}cout<<x<<endl;return 0; }?還看到另一種解法
剛開始一直不明白for循環(huán)那里,直到……
但是這種解法循環(huán)了和沒循環(huán)一樣,調(diào)用了和沒調(diào)用一樣,總的來(lái)說(shuō)就是輸出最后一個(gè)輸入的x
#include <iostream>using namespace std;const int N = 1000010;int L, ne[N], t;void del(int x, int k) {t = x;for (int cnt = 0; cnt == k % L; t = ne[t], cnt ++ );ne[t] = ne[ne[t]];L -- ; }int main() {int n;scanf("%d", &n);L = n;for (int i = 0; i < n; i ++ ){ne[i] = (i + 1) % n;}for (int i = 1; i < n; i ++ ){int x, k;scanf("%d%d", &x, &k);del(x,k);}cout << t;return 0; }總結(jié)
以上是生活随笔為你收集整理的试题 算法训练 唯一的啥子ALGO-973的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 暑期实训第二周周一周二总结
- 下一篇: 简单删除隐藏文件夹System Volu