jzoj 4243 五校聯考6day1 c

2022-05-16 22:34:43 字數 2006 閱讀 2976

定義s 為十進位制只由4 和7 組成的全體正整數的集合。

對於1 ≤ i ≤ n,給定ai。要求完成m 個操作:

add l r v 將i ∈ [l, r] 的所有ai 加上v

count l r 統計有多少i 滿足i ∈ [l, r] 且 ai ∈ s

第一行:兩個正整數n、m。

第二行:n 個正整數代表ai。

之後m 行:每行代表乙個操作。

對於每個count 操作輸出一行:乙個整數代表答案。

3 62 3 4

count 1 3

count 1 2

add 1 3 2

count 1 3

add 2 3 3

count 1 310

1150% 的資料滿足n,m ≤ 103

100% 的資料滿足1 ≤ n,m ≤ 105; 1 ≤ ai ≤ 104; 1 ≤ v ≤ 104

資料保證所有操作結束後ai ≤ 104。

這題就是分塊做法。

我們可以暴力列舉一下s集合,算一算也就30個數。

然後我們分塊然後對於每個塊維護乙個桶。

我們可以把問題轉化成區間內有多少個數屬於x(x屬於s)

每次統計答案的時候分30種情況討論即可。

上標:

#include

#include

#include

#include

#define n 100010

using namespace std;

int n,m,a[n]

,bl[n]

,st,le[

1010

],ri[

1010];

int sy[

1010

],t[

321]

[10010

],pl[

1010];

bool bz[

10010];

char ch;

inline

intread()

void

dfs(

int x)

void

update

(int x)

void

query

(int l,

int r)

update

(bl[l]);

for(

int i=l;i<=ri[bl[l]

];i++)if

(bz[a[i]

]) s++

;update

(bl[r]);

for(

int i=le[bl[r]

];i<=r;i++)if

(bz[a[i]

]) s++

;for

(int i=bl[l]+1

;i;i++

)for

(int j=

1;j<=sy[0]

;j++)if

(sy[j]

>pl[i]

) s+

=t[i]

[sy[j]

-pl[i]];

printf

("%d\n"

,s);

return;}

void

add(

int l,

int r,

int v)

return;}

for(

int i=l;i<=ri[bl[l]

];i++

)for

(int i=le[bl[r]

];i<=r;i++

)for

(int i=bl[l]+1

;i;i++

) pl[i]

+=v;

}int

main()

for(

int i=

1,l,r,v;i<=m;i++

)return0;

}

JZOJ4244 五校聯考6day2 yi

小明是 星際旅遊公司的員工,負責安排飛船,有n 艘飛船由他管理,每艘飛船能容納的人數都不同。今天小明被要求為乙個去銻星的旅遊團安排往返的飛船,旅遊團有m人,小明希望用最少的飛船完成任務。但不是所有的飛船都能用的,地球和銻星距離k镾 此單位由銻星人發明,後在星際旅遊業界廣泛使用 而每一艘飛船加滿燃料後...

JZOJ 4244 五校聯考6day2 yi

description 小明是 星際旅遊公司的員工,負責安排飛船,有n 艘飛船由他管理,每艘飛船能容納的人數都不同。今天小明被要求為乙個去銻星的旅遊團安排往返的飛船,旅遊團有m人,小明希望用最少的飛船完成任務。但不是所有的飛船都能用的,地球和銻星距離k镾 此單位由銻星人發明,後在星際旅遊業界廣泛使用...

JZOJ 4226 五校聯考3day2 A

傳送門 求按照規則使基地可以防禦敵人的入侵的至少要加的圍牆的條數 普通情況用s 2 s 2 s 2 s 2 s 2 s 2特殊地,我們需要對子環的情況進行判斷 include include include include include include include include includ...