window

  1 type
  2   node=record
  3   data,time:longint;
  4 end;
  5 var
  6   a:array[1..100]of longint;
  7   b,c:array[1..100]of node;
  8   i,j,t,n,h,k:longint;
  9 procedure push_max(m:longint);
 10 var
 11   i,k:longint;
 12 begin
 13   k:=t+1;
 14   for i:=t downto h do
 15   if a[m]>c[i].data then
 16   begin
 17     c[i+1].data:=0;
 18     c[i+1].time:=0;
 19     c[i].data:=a[m];
 20     c[i].time:=m;
 21     dec(k);
 22   end
 23   else break;
 24   if k=t+1 then
 25   begin
 26     inc(t);
 27     c[t].data:=a[m];
 28     c[t].time:=m;
 29   end
 30   else t:=k;
 31 end;
 32 procedure push_min(m:longint);
 33 var
 34   i,k:longint;
 35 begin
 36   k:=t+1;
 37   for i:=t downto h do
 38   if a[m]<b[i].data then
 39   begin
 40     b[i+1].data:=0;
 41     b[i+1].time:=0;
 42     b[i].data:=a[m];
 43     b[i].time:=m;
 44     dec(k);
 45   end
 46   else break;
 47   if k=t+1 then
 48   begin
 49     inc(t);
 50     b[t].data:=a[m];
 51     b[t].time:=m;
 52   end
 53   else t:=k;
 54 end;
 55 procedure pop_min(m:longint);
 56 var
 57   i,k:longint;
 58 begin
 59   if b[h].time<m then
 60   begin
 61     b[h].data:=0;
 62     b[h].time:=0;
 63     inc(h);
 64   end;
 65 end;
 66 procedure pop_max(m:longint);
 67 var
 68   i,k:longint;
 69 begin
 70   if c[h].time<m then
 71   begin
 72     c[h].data:=0;
 73     c[h].time:=0;
 74     inc(h);
 75   end;
 76 end;
 77 begin
 78   readln(n,k);
 79   for i:=1 to n do
 80     read(a[i]);
 81   h:=1;
 82   t:=1;
 83   b[1].data:=a[1];
 84   b[1].time:=1;
 85   for i:=2 to k do
 86     push_min(i);
 87   write(b[h].data,‘ ‘);
 88   for i:=k+1 to n do
 89   begin
 90     push_min(i);
 91     pop_min(i-k+1);
 92     write(b[h].data,‘ ‘);
 93   end;
 94   writeln;
 95   h:=1;
 96   t:=1;
 97   c[1].data:=a[1];
 98   c[1].time:=1;
 99   for i:=2 to k do
100     push_max(i);
101   write(c[h].data,‘ ‘);
102   for i:=k+1 to n do
103   begin
104     push_max(i);
105     pop_max(i-k+1);
106     write(c[h].data,‘ ‘);
107   end;
108   writeln;
109 end.

↑这是垃圾方法,苛刻数据会死一个点

下面是二分的方法:{还没编完,敬请期待}

和合并果子差不多,关键是要退队(^(* ̄(oo) ̄)^当然不是那个少先队。。)

时间: 2024-10-12 06:12:20

window的相关文章

window.open被浏览器拦截的解决方案

现象 最近在做项目的时候碰到了使用window.open被浏览器拦截的情况,搞得人无比郁闷啊,虽然在自己的环境可以对页面进行放行,但是对用户来说,不能要求用户都来通过拦截.何况当出现拦截时,很多小白根本不知道发生了啥,不知道在哪里看被拦截的页面,简直悲催啊~~. 另外,可以发现,当window.open为用户触发事件内部或者加载时,不会被拦截,一旦将弹出代码移动到ajax或者一段异步代码内部,马上就出现被拦截的表现了. 原因分析&深入研究 当浏览器检测到非用户操作产生的新弹出窗口,则会对其进行阻

关于js中window.location.href,location.href,parent.location.href,top.location.href的用法

关于js中window.location.href,location.href,parent.location.href,top.location.href的用法 "window.location.href"."location.href"是本页面跳转. "parent.location.href" 是上一层页面跳转. "top.location.href" 是最外层的页面跳转. 举例说明: 如果A,B,C,D都是html,D

window对象的几个重要方法

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>JavaScript window对象常用方法及事件</title><script type="text/javascript"> window.onload=function(){//文档加载完成后执行此方法   alert("文档加载完毕了"); }

js 完全分离 window.onload=

js 完全分离  window.onload= <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>TAB菜单</title> <script type="text/javascript"

Js中的window.parent ,window.top,window.self详解

在应用有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe),self是当前窗口, opener是用open方法打开当前窗口的那个窗口. window.self 功能:是对当前窗口自身的引用.它和window属性是等价的. 语法:window.self 注:window.self.window.self是等价的. window.top 功能:返回顶层窗口,即浏览器窗口. 语法:window.top 注:如果窗

JS的window对象详解

一.说明 他是JS中最大的对象,它描述的是一个浏览器窗口,一般要引用他的属性和方法时,不需要用"Window.XXX"这种形式,而是直接使用"XXX".一个框架页面也是一个窗口. 二.Window窗口对象有如下属性 1.name 窗口的名称,由打开它的连接(<a target="...">)或框架页(<frame name="...">)或某一个窗口调用的 open() 方法(见下)决定.一般我们不会用

QT Demo 之 window(5) window.qml

在分析了main.cpp.Splash.Qt.quit()以及ScreenInfo之后,我们终于开始了正题:window.qml. window.qml的主体结构 window.qml主体是一个QtObject,其中包含了4个子元素:palette.controlWindow.testWindow和splashWindow: QtObject { property real defaultSpacing: 10 property SystemPalette palette: SystemPale

解决Window下文件名过长,导致无法删除,打开等问题

由于重装了Win8.1,在C盘会生成window.old的文件夹.本来想删除的,却出现文件名太长无法删除.那就改名呗,右键选择文件,我去,只有打开和发送选项,连属性选项都没有.当然打开和发送功能也不能正常使用. 那就用cmd来改名或删除呗,发现两个操作均由于文件名过长而失败. 由于当时没有截图,事后模拟一下,发现不能再现之前的情况: 后来google一个可行方案:可以使用文件短名来代替长长的文件名. cd C:\Windows\Vss\Writers\Application dir \x #就会

window.location.hash的简单了解

location是javascript里边管理地址栏的内置对象,比如location.href就管理页面的url,用location.href=url就可以直接将页面重定向url.而location.hash则可以用来获取或设置页面的标签值.比如http://domain/#admin的location.hash="#admin".利用这个属性值可以做一个非常有意义的事情. 很多人都喜欢收藏网页,以便于以后的浏览.不过对于Ajax页面来说的话,一般用一个页面来处理所有的事务,也就是说,

.window.showModalDialog 传值

1.window.showModalDialog("OA_JDB.html",StrZy, "dialogWidth=600px;dialogHeight=200px"); } 2,    document.getElementById("p1").innerHTML = window.dialogArguments; .window.showModalDialog 传值,布布扣,bubuko.com