2018 9 27 校內模擬賽

2022-05-05 16:30:10 字數 762 閱讀 8144

a dna

題目大意:給定乙個長度為n,每項值為1或2的數列。有q次詢問,對於每次詢問回答乙個區間[l,r],使得區間內的和等於xi。

時間限制:1000ms    空間限制:256mb

編譯指令:開啟o2和c++11

solution: 容易發現,若存在乙個權值和為 x(x > 2)的串,必然存在乙個權值和 為 x−2 的串。

證明:考慮其左右端點情況,如果存在乙個是 t 直接將那個 t 抹掉即 可,否則兩個就都是 a 將兩個都抹掉即可。 分奇偶討論預處理所有權值和的答案即可。

詳細解答:

60分做法:

字首和處理一下每兩個端點之間的值,並對於每個可以組成的值預處理出答案o(1)回答

為了防止多次對同一可能數值處理,我們使用vis陣列剪枝

**如下

#includeusing

namespace

std;

const

int maxn = 1000010

;struct

stnn[

4 *maxn];

intn, q;

intpre [maxn];

bool vis[4*maxn];

intmain ()

for ( int i = 0; i < n; ++i )

for ( int j = i + 1;j <= n; ++j )

} while ( q--)

return0;

}

2018 10 12 校內模擬賽

分析 題一 一道模擬題 但模擬也是有很多坑的 寫出一道題後,一定要自己試很多很多很多組不同的資料 比如這道題,幾乎我試的每一組資料都找出了我程式的bug,好險 分析 題二 好題!應該是和松鼠聚會這道題本質一樣的 首先我們需要推導出任意兩個點 x,y a,b 之間能夠到達彼此所需要走的最短步數,由於可...

1105 校內模擬賽

題一 差分約束or帶權並查集?不啊,zz了,簡單模擬即可 我簡直服了我自己了,想複雜了 直接對每乙個聯通塊隨便找乙個點賦位置,然後dfs繼續找下去,給每乙個點賦值,如果在搜尋的過程中,發現了有衝突,就是impossible了 注意加邊的時候加雙向邊,因為你是從隨便乙個點開始搜尋的 然後這麼簡單的乙個...

校內模擬賽 試題

早有預感這次考試是要爆零 早有預感這次考試會有圖論題。題目大致是這樣的 t1 奶牛碑文 t2 小x學游泳 t3 計算係數 t4 最優乘車 考前打了半個多小時hl,一氣打得3d眩暈了 由於著急回家,今天考試打得十分倉促,還提前交了卷 題發下來後就是個打暴力。第一題一眼看不出正解,就一口氣打了個o n ...