第五屆藍橋杯(國賽) Log大俠

2021-10-08 20:29:26 字數 1326 閱讀 9411

問題描述

atm 參加了速算訓練班,經過刻苦修煉,對以 2 為底的對數算得飛快,人稱 log 大俠。

一天,log 大俠的好友 drd 有一些整數序列需要變換,log 大俠正好施展法力…

變換的規則是: 對其某個子串行的每個整數變為: [log2 x + 1] 其中 表示向下取整

就是對每個數字求以 2 為底的對數,然後取下整。

例如對序列 3 4 2 操作一次後,這個序列會變成 2 3 2。

drd 需要知道,每次這樣操作後,序列的和是多少。

輸入格式

第一行兩個正整數 n,m 。

第二行 n 個數,表示整數序列,都是正數。

接下來 m 行,每行兩個數 l,r 表示 atm 這次操作的是區間 [l, r],數列序號從 1 開始。

輸出格式

輸出 m 行,依次表示 atm 每做完乙個操作後,整個序列的和。

樣例輸入

3 35 6 4

1 22 3

1 3樣例輸出86

資料範圍

對於 30% 的資料, n, m ≤ 103

對於 100% 的資料, n, m ≤ 105

題解

位運算:

1 << x:等價於 2x

#include

using

namespace std;

int a[

100010];

intmain()

int ans =0;

for(

int i =

1; i <= n; i ++

) ans +

= a[i];

cout << ans << endl;

}return0;

}

ps:按理說,極限情況下 n * m = 1010,居然還是過了

題解二

庫函式:

#include

#include

using

namespace std;

int a[

100010];

intmain()

while

(m --)

cout << ans << endl;

}return0;

}

第五屆藍橋杯(國賽) 排列序數

問題描述 如果用 a b c d 這 4 個字母組成乙個串,有 4 24 種,如果把它們排個序,每個串都對應乙個序號 abcd 0 abdc 1 acbd 2 acdb 3 adbc 4 adcb 5 bacd 6 badc 7 bcad 8 bcda 9 bdac 10 bdca 11 cabd ...

第五屆藍橋杯(國賽) 海盜分金幣

問題描述 有 5 個海盜,相約進行一次帆船比賽,比賽中天氣發生突變,他們被沖散了。恰巧,他們都先後經過途中的乙個無名的荒島,並且每個人都信心滿滿,覺得自己是第乙個經過該島的人。第乙個人在沙灘上發現了一堆金幣,他把金幣分成 5 等份,發現剛好少乙個金幣。他就從自己口袋拿出乙個金幣補充進去,然後把屬於自...

第五屆藍橋杯(國賽) 生物晶元

問題描述 x 博士正在研究一種生物晶元,其邏輯密集度 容量都遠遠高於普通的半導體晶元。博士在晶元中設計了 n 個微型光源,每個光源操作一次就會改變其狀態,即 點亮轉為關閉,或關閉轉為點亮。這些光源的編號從 1 到 n,開始的時候所有光源都是關閉的。博士計畫在晶元上執行如下動作 所有編號為 2 的倍數...