欢迎来到天天文库
浏览记录
ID:57647094
大小:63.00 KB
页数:9页
时间:2020-08-30
《单调队列作业.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、设有n个人依次围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到所有的人全部出列为止。设n个人的编号分别为1,2,…,n,打印出出列的顺序。(1<=n,m<=500)(john.pas)输入n,m(john.in)输出:出列的顺序(每个数场宽定义为4)(john.out)样例输入:144样例输出:4812271351161143109单调队列作业1、Slidingwindow1给你一个长度为N的数组,一个长为K的滑动的窗体从最左移至最右端,你只能见到窗口的K个数,每次窗体向右移动一
2、位,如下表:WindowpositionMinvalueMaxvalue[13-1]-35367-131[3-1-3]5367-3313[-1-35]367-3513-1[-353]67-3513-1-3[536]73613-1-35[367]37你的任务是找出窗口在各位置时的maxvalue,minvalue.输入格式:第1行n,k,第2行为长度为n的数组输出格式:2行,第1行每个位置的minvalue,第2行每个位置的maxvalue样例:window.in8313-1-35367window.out-1-3-3-333335567数据范
3、围:20%:n<=500;50%:n<=100000;100%:n<=1000000;2、发射站(Station.pas/c/cpp)题目描述*某地有N个能量发射站排成一行,每个发射站i都有不相同的高度Hi,并能向两边(当然两端的只能向一边)同时发射能量值为Vi的能量,并且发出的能量只被两边最近的且比它高的发射站接收。显然,每个发射站发来的能量有可能被0或1或2个其它发射站所接收,特别是为了安全,每个发射站接收到的能量总和是我们很关心的问题。由于数据很多,现只需要你帮忙计算出接收最多能量的发射站接收的能量是多少。输入第一行,一个整数N。第二到
4、N+1行,第i+1行有两个整数Hi和Vi,表示第i个发射站的高度和发射的能量值。对于40%的数据,1<=N<=5000;1<=Hi<=100000;1<=Vi<=10000;对于70%的数据,1<=N<=100000;1<=Hi<=2000000000;1<=Vi<=10000;对于100%的数据,1<=N<=1000000;1<=Hi<=2000000000;1<=Vi<=10000。输出输出仅一行,表示接收最多能量的发射站接收到的能量值,答案不超过longint。样例输入34235610样例输出7提示样例数据说明:第3个发射站可接收第1和
5、第2个发射能量2+5=7。3、合并果子(fruit.pas/dpr/c/cpp)【问题描述】 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。 每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。 因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为1,并且已知果子的种类数和每种果子的数
6、目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。 例如有3种果子,数目依次为1,2,9。可以先将1、2堆合并,新堆数目为3,耗费体力为3。接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为12。所以多多总共耗费体力=3+12=15。可以证明15为最小的体力耗费值。【输入文件】 输入文件fruit.in包括两行,第一行是一个整数n(1<=n<=10000),表示果子的种类数。第二行包含n个整数,用空格分隔,第i个整数ai(1<=ai<=20000)是第i种果子的数目。【输出文件】
7、 输出文件fruit.out包括一行,这一行只包含一个整数,也就是最小的体力耗费值。输入数据保证这个值小于231。【样例输入】3129【样例输出】15【数据规模】对于30%的数据,保证有n<=1000:对于50%的数据,保证有n<=5000;对于全部的数据,保证有n<=10000。4、广告印刷(ad.pas/c/cpp)【问题描述】最近,afy决定给TOJ印刷广告,广告牌是刷在城市的建筑物上的,城市里有紧靠着的N个建筑。afy决定在上面找一块尽可能大的矩形放置广告牌。我们假设每个建筑物都有一个高度,从左到右给出每个建筑物的高度H1,H2…
8、HN,且0
此文档下载收益归作者所有