hrbust 1356Leyni,罗莉和队列
2017-06-23 14:12
239 查看
Leyni,罗莉和队列 | ||||||
| ||||||
Description | ||||||
Leyni喜欢跟罗莉们一起玩,他已经将罗莉按照身高(她们的身高都不相同)排成一行列,高的在前,矮的在后。可是对于每个罗莉来说,如果她的前面(即身高比她高的)有比她年龄小的,她就会不高兴,这个不高兴程度可以用一个数值来衡量,这个数值等于在她前面而且年龄比她小的人中最靠前的那个人与她之间相隔的人数。 | ||||||
Input | ||||||
本题有多组测试数据,输入的第一行是一个整数T代表着测试数据的数量,接下来是T组测试数据。 对于每组测试数据: 第1行 包含一个整数n (2 ≤ n ≤ 105)代表着罗莉的数量。 第2行 按照身高从低到高的顺序给出以空格分隔的n个整数ai (1 ≤ ai ≤ 109),代表着每个罗莉的年龄。 | ||||||
Output | ||||||
对于每组测试数据: 第1行 按照身高从低到高的顺序输出以空格分隔的n个整数,代表着每个罗莉的不高兴程度,对于没有不高兴的罗莉,输出-1。 | ||||||
Sample Input | ||||||
2 6 10 8 5 3 50 45 5 10 3 1 10 11 | ||||||
Sample Output | ||||||
2 1 0 -1 0 -1 10 -1 -1-1 | ||||||
Author | ||||||
齐达拉图@HRBUST |
例如 :10(1) 3(2) 8(3) 1(4) 2(5)
排序后为10(1) 8(3) 3(2) 2(5) 1(4)
从1开始往前扫,因为维护的id是比当前年龄小的最大id,所以可以保证每次都能找到在原序列中比当前数小且距离最远的数的id
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
struct data
{
int x;
int id;
int ans;
}a[100005];
int cmp1(data a,data b)
{
return a.x==b.x?a.id>b.id:a.x>b.x;
}
int cmp2(data a,data b)
{
return a.id<b.id;
}
int main()
{
int t;
while(~scanf("%d",&t))
while(t--)
{
int n;
scanf("%d",&n);
for (int i=1;i<=n;++i)
{
scanf("%d",&a[i].x);
a[i].id=i;
}
sort(a+1,a+1+n,cmp1);
a
.ans=-1;
int mi=a
.id;
for (int i=n-1;i>=1;--i)
{
if (a[i].id<mi)
a[i].ans=mi-a[i].id-1;
else
a[i].ans=-1;
mi=max(mi,a[i].id);
}
sort(a+1,a+1+n,cmp2);
for (int i=1;i<=n;++i)
printf("%d%c",a[i].ans,i!=n?' ':'\n');
}
}
相关文章推荐
- hrbust 1356 Leyni,罗莉和队列【思维+逆向思维】好题~
- Hrbust 1355 Leyni,罗莉和XianGe (最短路 思维建图,dij优化)
- Hrbust 1329 Leyni, 罗莉 与 游乐场【树型Dp+思维】好题!
- hrbust 1355 Leyni,罗莉和XianGe【最短路SPFA+思维】好题
- HRBUST 1161——Leyni——————【线段树单点更新,区间查询】
- HRBUST 1356 变形后二分.
- HRBUST 1180 队列模拟
- hrbust 1375 The Active Leyni【暴力打表+递推+矩阵快速幂】
- Hrbust 1427 Leyni的情人节【思维+最长递减子序列】好题!
- Hrbust 1390 Leyni, LOLI and Numbers【思维+树状数组+二分+双向链表模拟】好题!好题!好题!
- hrbust 1407 Leyni的游戏【KM】
- hrbust 1404 Leyni的汽车比赛【dp+思维优化】好题!
- Hrbust 2319 Number Game【思维+优先队列】
- Hrbust 1361 Leyni的机器人【dp】好题
- HLG 1355 Leyni,罗莉和XianGe【dijkstra】
- hrbust 1434 Quick out of the Harbour【Bfs+优先队列】
- hrbust 1326 哈理工oj 1326 Leyni的国家【DFS+邻接表建图】
- HLG 1329 Leyni, 罗莉 与 游乐场【树形DP】
- Leyni, LOLI and Line hrbust 给出四个点求这四个点确定的两条直线的交点
- hrbust 哈理工oj 1246 Windows Message Queue【优先队列】