描述 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.在這個問題...