Consecutive Blocks
先離散一下,然後模擬,把一種顏色i所在的位置都放入G[i]中,然後枚舉一下終點位置,滑動窗口使得起點和終點間花費不超過K,求中間過程的最大值即可。
#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define N 100005 setmyset; mapmp; set::iterator p; int n ,k; int a[N]; vectors[N]; int go(int cur){ int now = k; int ans = 1, l = 0, siz = s[cur].size(); int len = 1; for(int i = 1; i < siz; i++){ if(s[cur][i-1] == s[cur][i]-1) { len++; ans = max(ans, len); continue; } now -= s[cur][i]-s[cur][i-1]-1; if(now>=0) { len++; ans = max(ans, len);} else { while(now<0) { l++; now += s[cur][l]-s[cur][l-1]-1; len--; } len++; } } return ans; } int main() { int T ,m,u,v,w, i ,j; while(~scanf("%d %d",&n,&k)){ myset.clear(); mp.clear(); for(i=1;i<=n;i++)scanf("%d",&a[i]),myset.insert(a[i]); for(p=myset.begin(), i = 1; p!=myset.end(); p++, i++) mp.insert(pair(*p,i)),s[i].clear(); int top = i; for(i=1;i<=n;i++) { a[i] = mp.find(a[i])->second; s[a[i]].push_back(i); } int ans = 0; for(i=1;i
解決A program file was not speci
申明:以下的小技巧,均為OpenCV2.4.2下驗證過
閱讀本文之前,讀者需要掌握 C+
替換空格,excel替換空格題目:請實現一個函數,把字符串中
UVA 10652 Board Wrapping 計算幾何
【vc】1_Windows程序內部運行機制,1_window