貪心 數字串

2021-06-08 11:38:05 字數 741 閱讀 6803

描述 description

給你乙個長度為n的數字串,數字串裡會包含1-m這些數字。如果連續的一段數字子串包含了1-m這些數字,則稱這個數字字串為num串。你的任務是求出長度最短的num串是什麼,只需要輸出這個長度即可。

1<=n,m<=200000

輸入格式 input format

第一行給定n和m。

第二行n個數,表示數字串,數字間用空格隔開。

輸出格式 output format

如果存在num串則輸出最短num串長度,否則輸出「no」。

樣例輸入 sample input [複製資料]

樣例輸出 sample output [複製資料]

時間限制 time limitation

各個測試點1s

好像是高一的時候考過的題。

貪心策略一般不太好想,因為要保證沒有漏洞不太容易,另外很容易被引導向其他的錯誤的方法。

這道題很容易。遇到乙個數字就把它的最近位置標記為現在的位置,當所有的數字都出現了之後,就一直更新答案。

#include bool used[200010];

long near[200010];

int main()

} if (ans < 0x7f7f7f7f)

printf("%ld",ans);

else

printf("no");

return 0;

}

整數字串轉化

1.用程式設計的方法將整數轉化成字串 整數轉化成字串,可以採用加 0 再逆序的辦法,整數加 0 就會隱性轉換成char型別的數。include include using namespace std int main void temp i 0 i i 1 while i 0 str j 0 cou...

數字串 (樹狀陣列)

原題 wannafly挑戰賽15 d 題意 給乙個數字串,每次操作改變乙個位置的數字,求每次操作後,有多少個子串滿足以下要求 長度在區間 l,r 內 首數字 尾數字 解析 對於乙個位置p,求的是乙個sum p r 1到p l 1範圍內數字大於p位置的個數和p l 1到p r 1範圍內數字小於p位置的...

Number Sequence 數字序列

一 杭電原題摘錄 二.題目分析 很容易就能想到遞迴,但是超出記憶體 int fac int a,int b,int n 超出記憶體 因為f n 的值要對7取餘,所以不難想到f n 的值可能存在週期.那我們就去找週期,看是否存在?週期不就是一直重複t個數,那麼我們就說這組數存在週期,且為t.在這個問題...