NOIP模擬(11 06)T1 數集

2021-08-10 10:50:11 字數 1153 閱讀 3651

數集

題目背景:

11.06 noip

模擬t1

分析:佇列

考慮暴力的想法當然是直接維護乙個堆,每一次取出最小的乙個,然後把

2 * x + 1, 3 * x + 1 push

進去,但是看看最大資料,

1000000

還有10

組資料,這怕不是要死人······於是乎,認真想正解,然後就發現了,顯然,因為每一次取出的數是一次遞增的,那麼

2 * x + 1

和3 * x + 1

也一定是遞增的,也就是說這兩個數值都是單調的,有沒有很熟悉,沒錯就是

noip2016

蚯蚓的想法,我們直接維護兩個佇列,乙個是

2 * x + 1

的佇列,乙個

3 * x + 1

的佇列,每次取隊首較小的乙個然後將新的兩個數加到隊尾即可。

注意:本題需要去重,具體怎麼去呢,你想想看如果同乙個數有兩個,那你第二次取出這個數的時候,一定是你第一次取出之後的那一次······所以直接判斷和上一次取出的數是否一樣即可。

source:

/*

created by scarlyw

*/#include #include #include #include #include #include #include #include #include #include const int maxn = 1000000 + 10;

int a, n, cur;

int q[2][maxn << 1 | 1];

inline void solve()

int tail1 = 0, tail2 = 0, head1 = 1, head2 = 1, last = a;

q[0][++tail1] = 2 * a + 1, q[1][++tail2] = 3 * a + 1;

for (int i = 2; i <= n; ++i) while (cur == last);

q[0][++tail1] = cur * 2 + 1, q[1][++tail2] = cur * 3 + 1, last = cur;

} std::cout << cur << '\n';

}int main()

NOIP模擬(10 30)T1 比賽

比賽 題目背景 10.30 noip 模擬t1 分析 暴力 將資料從小到大排序,從大到小找到第乙個滿足 a i k a i 1 的位置,那麼答案就是 n i 了,如果找不到那麼就是 n了 注意邊界 source created by scarlyw include include include i...

11 06 模擬賽T1 字串

倉鼠有乙個長度為 n 的字串,但他不小心把這個字串丟掉了。幸運的是,他曾經記下了這個字串的所有長度為 m 的子串。請你幫他還原出這個字串。第一行兩個整數 n,m。接下來 n m 1 行每行乙個長度為 m 的字串。字符集 為小寫字母。一行乙個長度為 n 的字串表示答案。保證有解,如果有多組解可以輸出任...

NOIP模擬 簡單 T1 舉辦比賽

border 0 width 330 height 86 src mstdream 舉辦了一場搶答比賽!這場搶答比賽有 n 支隊伍參賽,第 i 支隊伍將會被分配乙個隨機值 si,每乙個問題,si 值較小的隊伍會擁有優先發言權,於是 mstdream 想知道所有隊伍最小的 si 值,以便統計 但是,由...