soj1046. Plane Spotting
1046. Plane Spotting
Constraints
Time Limit: 1 secs, Memory Limit: 32 MB
Description
Craig is fond of planes. Making photographs of planes forms a major part of his daily life. Since he tries to stimulate his social life, and since it’s quite a drive from his home to the airport, Craig tries to be very efficient by investigating what the optimal times are for his plane spotting. Together with some friends he has collected statistics of the number of passing planes in consecutive periods of fifteen minutes (which for obvious reasons we shall call ‘quarters’). In order to plan his trips as efficiently as possible, he is interested in the average number of planes over a certain time period. This way he will get the best return for the time invested. Furthermore, in order to plan his trips with his other activities, he wants to have a list of possible time periods to choose from. These time periods must be ordered such that the most preferable time period is at the top, followed by the next preferable time period, etc. etc. The following rules define which is the order between time periods:
1. A period has to consist of at least a certain number of quarters, since Craig will not drive three hours to be there for just one measly quarter.
2. A period P1 is better than another period P2 if:
* the number of planes per quarter in P1 is higher than in P2;
* the numbers are equal but P1 is a longer period (more quarters);
* the numbers are equal and they are equally long, but period P1 ends earlier.
Now Craig is not a clever programmer, so he needs someone who will write the good stuff: that means you. So, given input consisting of the number of planes per quarter and the requested number of periods, you will calculate the requested list of optimal periods. If not enough time periods exist which meet requirement 1, you should give only the allowed time periods.
Input
The input starts with a line containing the number of runs N. Next follows two lines for each run. The first line contains three numbers: the number of quarters (1–300), the number of requested best periods (1–100) and the minimum number of quarters Craig wants to spend spotting planes (1–300). The sec-nod line contains one number per quarter, describing for each quarter the observed number of planes. The airport can handle a maximum of 200 planes per quarter.
Output
The output contains the following results for every run:
* A line containing the text “Result for run <N>:” where <N> is the index of the run.
* One line for every requested period: “<F>-<L>” where <F> is first quarter and <L> is the last quarter of the period. The numbering of quarters starts at 1. The output must be ordered such that the most preferable period is at the top.
Sample Input
3
10 5 5
1 5 0 2 1 4 2 5 0 2
10 3 5
10 3 1 4 2 6 3 0 8 0
5 5 5
1 2 3 4 5
Sample Output
Result for run 1:
4-8
2-8
6-10
1-8
2-6
Result for run 2:
1-6
1-7
1-9
Result for run 3:
1-5
没什么好说的,自己定义一个结构体,然后自定义排序就可以了。。。注意细节:最后输出不够M组怎么办。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> num;
struct sub
{
int a;
int b;
double s;
sub(int aa,int bb)
{
a = aa;
b = bb;
int i;
s = 0;
for(i = a;i <= b;i++)
s += num[i];
s = s/(b-a+1);
}
bool operator<(const sub &cc) const
{
if(s != cc.s)
return s > cc.s;
else if(b - a != cc.b - cc.a)
return b - a > cc.b - cc.a;
else
return b < cc.b;
}
}; int main()
{
int T;
cin >> T;
int count = 0;
while(T--)
{
count++;
int N,M,K;
cin >> N >> M >> K;
num.resize(N);
vector<sub> temp;
int i;
for(i = 0;i < N;i++)
cin >> num[i];
int j;
for(i = K;i <= N;i++)
{
for(j = 0;j + i - 1< N;j++)
{
sub tt = sub(j,i+j-1);
temp.push_back(tt);
}
}
sort(temp.begin(),temp.end());
cout << "Result for run " << count << ":" << endl;
for(i = 0;i < M && i < temp.size();i++)
{
cout << temp[i].a + 1<< "-" << temp[i].b + 1<< endl;
}
}
return 0;
}
soj1046. Plane Spotting的更多相关文章
- sicily 1046. Plane Spotting(排序求topN)
DescriptionCraig is fond of planes. Making photographs of planes forms a major part of his daily lif ...
- sicily 1046. Plane Spotting
1046. Plane Spotting Time Limit: 1sec Memory Limit:32MB Description Craig is fond of planes. Mak ...
- 数据的平面拟合 Plane Fitting
数据的平面拟合 Plane Fitting 看到了一些利用Matlab的平面拟合程序 http://www.ilovematlab.cn/thread-220252-1-1.html
- quad 和 plane 区别是什么?
Quad就是两个三角形组成四边形,Plane会有很多三角形,哦也 貌似Quad拖上去后看不见,很薄的感觉
- u3d单词学习plane
plane n.水平: 平面: 飞机: 木工刨
- 【转载】PMC/PEC Boundary Conditions and Plane Wave Simulation
原文链接 PMC/PEC Boundary Conditions and Plane Wave Simulation (FDTD) OptiFDTD now has options to use Pe ...
- codeforces 577E E. Points on Plane(构造+分块)
题目链接: E. Points on Plane time limit per test 2 seconds memory limit per test 256 megabytes input sta ...
- Data Plane Development Kit (DPDK): Getting Started
参考:dpdk getting started 系统: Ubuntu 14.04 内核信息: 执行 uname -a Linux chen-VirtualBox 3.13.0-32-generic # ...
- Codeforces Round #115 B. Plane of Tanks: Pro 水题
B. Plane of Tanks: Pro Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/17 ...
随机推荐
- es6箭头函数的注意要点
具有一个参数的简单函数 var single = a => a single('hello, world') // 'hello, world' 没有参数的需要用在箭头前加上小括号 var lo ...
- Angular与PHP之间的不同的请求方式(post/get)导致的传参问题
angularJS的$http发送POST请求,PHP无法接受数据的问题 使用jQuery进行ajax请求 $.ajax({ type: 'POST', url:'url.php', data: da ...
- 关于VS2005中C#代码用F12转到定义时,总是显示从元数据的问题
元数据是:NET 程序集中的标记信息. 是在代码中选择了转到定义时候给定位的吧.因为没有找到源代码,VS通过反射读取元数据中的信息生成了那个. 解决方法: 1. 要把项目先添加到解决方案中. 2. 再 ...
- loadrunner在win10破解提示:Cannot save the license information because acceses to the registry is denied的解决办法
方法1 下图1-1中提示就是说明了破解的时候权限不足导致,解决办法就是使用管理员权限打开loadrunner破解就好了,但是右键“以管理员身份运行”选项打开loadrunner又是会提示1-2中的问题 ...
- webservice(一) 概念
Web service:是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用于开发分 ...
- php 关于文件的一些封装好的函数
<?php //Bytes/Kb/MB/GB/TB/EB /** * 转换字节大小 * @param number $size * @return number */ function tran ...
- Oracle 修改dmp的表空间
1.百度下载 UltraEdit 并安装 2.打开程序,文件-->打开-->找到dmp 文件太大会提示,选择第一个默认,确定 3.按CTRL+H 转成十六进制编辑 4.例如:dmp里面 ...
- MT【158】只在此山中,云深不知处
求证:方程$3ax^2+2bx-(a+b)=0(b\ne0)$在$(0,1)$内至少有一个实数根. 提示:$f(0)=-(a+b),f(\dfrac{2}{3})=\dfrac{1}{3}(a+b)$ ...
- Pythonの坑
Python closures and late binding A closure occurs when a function has access to a local variable fro ...
- 【刷题】洛谷 P3872 [TJOI2010]电影迷
题目描述 小A是一个电影迷,他收集了上百部的电影,打算从中挑出若干部在假期看完.他根据自己的口味和网上的介绍,对每部电影X都打了一个分数vX,表示自己喜欢的程度.这个分数的范围在-1000至1000之 ...