玉溪網(wǎng)站建設(shè)現(xiàn)狀最佳搜索引擎磁力
閃耀的燈光
📌 題目描述
藍橋公園是一個適合夜間散步的好地方,公園可以被視為由 n × m
個矩形區(qū)域構(gòu)成。每個區(qū)域都有一盞燈,初始亮度為 a[i][j]
。
小藍可以選擇一個大的矩形區(qū)域,并按下開關(guān)一次,這將使得該區(qū)域內(nèi)每盞燈的亮度減少 1
,但每個區(qū)域內(nèi)的燈的亮度最多只能減少至 a[i][j] - c
。如果此時亮度已達到 a[i][j] - c
,再次按下開關(guān)將使得燈的亮度恢復為 a[i][j]
。
現(xiàn)在,小藍將進行 t
次操作。每次操作他會選擇一個矩形區(qū)域,該區(qū)域的左上角端點為 (x?, y?)
,右下角端點為 (x?, y?)
,然后將該區(qū)域內(nèi)所有燈按下 k
次開關(guān)。
他想知道,在每次操作結(jié)束后,該區(qū)域內(nèi)所有燈的總亮度是多少?在下一次操作前,公園內(nèi)所有燈光會恢復到初始值。
數(shù)據(jù)保證每盞燈的亮度不會減少至負數(shù)。
📌 輸入格式
- 第一行 輸入三個正整數(shù)
n
、m
和c
,含義如上所述。 - 接下來
n
行,每行輸入m
個正整數(shù),代表燈的初始亮度a[i][j]
。 - 第
n+2
行 輸入一個正整數(shù)t
,表示小藍的操作次數(shù)。 - 接下來
t
行,每行輸入5
個整數(shù)x?, y?, x?, y?, k
:(x?, y?)
:矩形區(qū)域的左上角坐標。(x?, y?)
:矩形區(qū)域的右下角坐標。k
:該區(qū)域內(nèi)所有燈按下的開關(guān)次數(shù)。
📌 輸出格式
輸出 t
行,每行一個正整數(shù),表示每次操作結(jié)束后該區(qū)域內(nèi)所有燈的總亮度。
📌 樣例輸入
3 3 3 14 14 17 13 15 18 13 16 19 3 1 1 2 2 3 2 2 3 3 5 2 3 3 3 4
📌 樣例輸出
44 64 37
📌 樣例解釋
🔹 第一次操作 (1,1) → (2,2), k=3
初始狀態(tài)
14 14 17 13 15 18 13 16 19
按 3 次開關(guān)后
11 11 17 10 12 18 13 16 19
答案:
11 + 11 + 10 + 12 = 44
🔹 第二次操作 (2,2) → (3,3), k=5
初始狀態(tài)
14 14 17 13 15 18 13 16 19
按 5 次開關(guān)后
14 14 17 13 14 17 13 15 18
答案:
14 + 17 + 15 + 18 = 64
🔹 第三次操作 (2,3) → (3,3), k=4
初始狀態(tài)
14 14 17 13 15 18 13 16 19
按 4 次開關(guān)后
14 14 17 13 15 18 13 16 19
答案:
18 + 19 = 37
📌 評測數(shù)據(jù)規(guī)模
約束條件 | 范圍 |
---|---|
矩陣大小 | 1 ≤ n, m ≤ 300 |
最大減少值 | 1 ≤ c ≤ 10 |
操作次數(shù) | 1 ≤ t ≤ 10? |
燈的初始亮度 | 10 ≤ a[i][j] ≤ 10? |
開關(guān)次數(shù) | 1 ≤ k ≤ 10? |
查詢范圍 | 1 ≤ x? ≤ x? ≤ n, 1 ≤ y? ≤ y? ≤ m |
📌 運行限制
語言 | 最大運行時間 | 最大運行內(nèi)存 |
---|---|---|
C++ | 1s | 256M |
C | 1s | 256M |
Java | 2s | 256M |
Python3 | 3s | 256M |
子串簡寫
題目描述
程序猿圈子里正在流行一種很新的簡寫方法:對于一個字符串,只保留首尾字符,將首尾字符之間的所有字符用這部分的長度代替。例如 internationalization
簡寫成 i18n
,Kubernetes
(注意連字符不是字符串的一部分)簡寫成 K8s
,Lanqiao
簡寫成 L5o
等。
在本題中,我們規(guī)定長度 大于等于 K 的字符串都可以采用這種簡寫方法(長度小于 K 的字符串不配使用這種簡寫)。
給定一個字符串 S
和兩個字符 c1
和 c2
,請你計算 S
中 有多少個以 c1
開頭,c2
結(jié)尾的子串 可以采用這種簡寫?
輸入格式
- 第一行包含一個整數(shù)
K
。 - 第二行包含一個字符串
S
和兩個字符c1
和c2
。
輸出格式
- 一個整數(shù)代表答案。
樣例輸入
4
abababdb a b
樣例輸出
6
樣例說明
符合條件的子串如下所示,中括號內(nèi)是該子串:
評測用例規(guī)模與約定
- 對于 20% 的數(shù)據(jù),保證:2 ≤ K ≤ |S| ≤ 10,000?
- 對于 100% 的數(shù)據(jù),保證:2 ≤ K ≤ |S| ≤ 500,000
S
僅包含小寫字母。c1
和c2
均為小寫字母。|S|
代表字符串S
的長度。
運行限制
語言 | 最大運行時間 | 最大運行內(nèi)存 |
---|---|---|
C++ | 1s | 256M |
C | 1s | 256M |
Java | 2s | 256M |
Python3 | 3s | 256M |
題解:?
import os
import sys# 請在此輸入您的代碼if __name__=="__main__":K=int(input())S,c1,c2=input().split()n=len(S)myarray=[0]*nif S[0]==c2:myarray[0]=1for i in range(1,n):if S[i]==c2:myarray[i]=myarray[i-1]+1else:myarray[i]=myarray[i-1]total=0for i in range(n):if S[i]==c1:l=i+K-1if l<n:total+=myarray[n-1]-myarray[i+K-2]print(total)
重新排序
問題描述
給定一個數(shù)組 A 和一些查詢 [Li,Ri],求數(shù)組中第 Li 至第 Ri? 個元素之和。
小藍覺得這個問題很無聊,于是他想重新排列一下數(shù)組,使得最終每個查詢結(jié)果的和盡可能地大。小藍想知道相比原數(shù)組,所有查詢結(jié)果的總和最多可以增加多少?
輸入格式
- 第一行:包含一個整數(shù) n(表示數(shù)組 A 的大小)。
- 第二行:包含 n 個整數(shù) A1,A2,…,An?(相鄰兩個整數(shù)之間用空格分隔)。
- 第三行:包含一個整數(shù) m(表示查詢的數(shù)目)。
- 接下來的 m 行:
- 每行包含兩個整數(shù) Li,Ri?。
輸出格式
輸出一行,包含一個整數(shù),表示所有查詢結(jié)果的總和相比原數(shù)組最多可以增加的值。
樣例輸入
5 1 2 3 4 5 2 1 3 2 5
樣例輸出
4
樣例說明
原數(shù)組查詢總和:
- 查詢 [1,3]:1+2+3=6
- 查詢 [2,5]:2+3+4+5=14
- 原總和:6+14=20
重新排列后數(shù)組為 (1,4,5,2,3),查詢和變?yōu)?#xff1a;
- 查詢 [1,3]:1+4+5=10
- 查詢 [2,5]:4+5+2+3=14
- 新總和:10+14=24
最大增加值:24?20=4。
評測用例規(guī)模與約定
評測用例 | 限制范圍 |
---|---|
30% 的評測用例 | n,m≤50 |
50% 的評測用例 | n,m≤500 |
70% 的評測用例 | n,m≤5000 |
100% 的評測用例 | 1≤n,m≤10^5,1≤Ai≤10^6,1≤Li≤Ri≤10^6 |
運行限制
編程語言 | 最大運行時間 | 最大運行內(nèi)存 |
---|---|---|
C++ | 1s | 512M |
C | 1s | 512M |
Python3 | 1s | 512M |
Java | 1s | 512M |