liu_runda聚聚的饋贈(
problem a: 周
防自閉題?
這道題讓我整個考試都很愉悅(
搜就完事了
1 #include 2aproblem b: 任3intn;4
int a[20], b[20], c[20], d[20];5
long
long
ans;67
void dfs(int day, long
long oi, long
long
whk)
12long
long
x, y;
13 x = oi - b[day] < 0 ? 0 : oi - b[day], y = whk +a[day];
14 dfs(day + 1
, x, y);
15 x = oi + c[day], y = whk - d[day] < 0 ? 0 : whk -d[day];
16 dfs(day + 1
, x, y);17}
1819
signed main()
題目保證黑點之間只有一條簡單路徑,顯然相鄰黑點連邊就是一顆樹。
求森林有幾棵樹:總點數-邊數。
二維字首和ning幹:記點的字首和、行上邊的字首和、列上邊的字首和、邊的字首和。
加加減減亂搞一下就有了。
1 #include 2bproblem c: 飛3int
n, m, q;
4int color[2005][2005], sum[2005][2005], edge[2005][2005];5
int row[2005][2005], col[2005][2005];6
7signed main() 19}
20for (int i = 1; i <= n; i++)
21for (int j = 1; j <= m; j++)
22 row[i][j] += row[i][j-1
];23
for (int j = 1; j <= m; j++)
24for (int i = 1; i <= n; i++)
25 col[i][j] += col[i-1
][j];
26for (int i = 1; i <= q; i++)
35return0;
36 }
2h做一道題((
首先能看出來是求逆序對數。
惡意的出題人把size卡到32m orz
本題專屬奇妙性質:x在每一段是乙個等差數列,而且題目保證x互不相同。
首先他有乙個固定的形式:$x_ = x_i + a$。
我們就欽定它小於p,大於再說(
我們再欽定和x_i組成的逆序對數為m,之前已經組成了k個等差數列。
由於$x_$小於p,之前的每個等差數列都必定存在乙個數大於$x_i$小於$x_$,因此每個等差數列會少一對逆序對,與$x_$組成的逆序對數為m-k。
遞推總要有個起點8?根據等差數列的首項確定等差數列。因此樹狀陣列還是要開的,不過在a上開就行,這樣空間就夠用了。
對拍的時候發現乙個坑:可能第乙個等差數列起點就比$x_i$大了,特判掉就吼了(
1 #include 2c3const
int n = 1e5 + 3;4
intn, x_1, a, mod, now, chaos, sairai;
5long
long ans = 0;6
7struct
bit
13int ask(int
x) 19
} bit;
2021
signed main() else
34 now +=a;
35if (now >=mod) 39}
40 printf("
%lld\n
", ans);
41return0;
42 }
NOIP模擬測試20 周 任 飛
liu runda出的題再次 題目中為什麼反覆強調簡單路徑,沒有環 沒有環的圖中點數 邊數 聯通塊數 字首和維護邊的字首和,和點的字首和,在維護邊的字首和不好維護轉化為橫著邊字首和,豎著邊字首和 注意邊的邊界問題 看邊如何維護 就拿我的舉例 你在當前為邊且當前左面為邊時置為1 那麼當你統計答案時 l...
NOIP模擬20 題解
來自達哥的問候 究級難題,完全不可做qaq include include include using namespace std typedef long long ll int n ll a 25 b 25 c 25 d 25 ans void dfs int step,ll mdx,ll lh...
考試反思 0813NOIP模擬測試20
咕了兩天,補一下。4個ak的,210是第10,190的第15並列一大排,我個傻子160排第29。歷史新低,但是心態還好。真是沒想到會一天考兩場。中午沒回去睡覺晚上考試。困倒是其次,關鍵還是達哥出題,心裡一緊。6 20開始。匆匆忙忙吃飯趕上開題。t1是乙個水的不行的列舉狀態 二進位制表示 搜尋硬幹都可...