Window (Standard IO)
生活随笔
收集整理的這篇文章主要介紹了
Window (Standard IO)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意/Description:
?
? ? ? 給你一個長度為N的數組,一個長為K的滑動的窗體從最左移至最右端,你只能見到窗口的K個數,每次窗體向右移動一位,如下表:
?
? ? ?你的任務是找出窗口在各位置時的max value,min value.
?
讀入/Input:
?
? ? 第1行n,k,第2行為長度為n的數組
?
輸出/Output:
?
? ? 2行,第1行每個位置的min value,第2行每個位置的max value
?
題解/solution:
? ? 看著別人興致勃勃的打線段樹,我覺的很不爽。默默的打了一個暴力,十分沒信心啊。
? ? 結果AC了,暴力AC了。哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈......。
?
代碼/Code:
?
varn,k:longint;max,min,t_max,t_min:longint;a,maax,miin:array [0..1000001] of longint; procedure trymax(o,p:longint); vari:longint; beginmax:=-maxlongint;for i:=o to p doif max<a[i] thenbeginmax:=a[i];t_max:=i;end; end;procedure trymin(o,p:longint); vari:longint; beginmin:=maxlongint;for i:=o to p doif min>a[i] thenbeginmin:=a[i];t_min:=i;end; end;procedure init; vari:longint; beginreadln(n,k);for i:=1 to n doread(a[i]);trymax(1,k);trymin(1,k);maax[1]:=max; miin[1]:=min; end;procedure main; vari,t:longint; beginfor i:=k+1 to n dobegint:=i-k+1;if t_max>=t thenbeginif max<a[i] thenbeginmax:=a[i];t_max:=i;end;end else trymax(t,i);maax[t]:=max;if t_min>=t thenbeginif min>a[i] thenbeginmin:=a[i];t_min:=i;end;end else trymin(t,i);miin[t]:=min;end; end;procedure print; vari:longint; beginfor i:=1 to n-k+1 dowrite(miin[i],' ');writeln;for i:=1 to n-k+1 dowrite(maax[i],' '); end;begininit;main;print; end.轉載于:https://www.cnblogs.com/zyx-crying/p/9319670.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Window (Standard IO)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何选择家庭无线路由器?
- 下一篇: SEO方案是为了协调和改进网站优化整体情