肯德鸭思维题库13 一个萝卜一个坑//可达鸭学生勿看

文章介绍了一个涉及萝卜高度和坑位分配的优化问题,要求最小化不满值。关键在于根据萝卜高度进行排序和计算萝卜间的比较次数。

  

一个萝卜一个坑

时间限制:1秒        内存限制:128M

题目描述

小可给一些萝卜施展了魔法,使得这些萝卜能够自主行动,甚至能开口说话!

小可对于自己的杰作十分满意,并挖好了一些坑,命令萝卜们自己选择一个坑来当成新家。

当然,一个萝卜一个坑,不能有多个萝卜共用一个坑。这些坑排成一排,从11到n编号。萝卜也刚好有n个。坑的深度从11到n逐渐加深。不能让比较矮的萝卜住比较深的坑,也不能让比较高的萝卜住比较浅的坑的,所有萝卜选好坑之后,任意两个位置)i,j(i<j)(这里是坑的位置),位置的萝卜的高度不能高于j位置的萝卜的高度。

萝卜们也从11到n编号,从编号11的萝卜开始按顺序一个一个地从编号为11的坑开始走,去选坑入住。每个萝卜每经过一个被其他萝卜占领的坑都会产生11点不满值,请问不满值最少是多少。

输入描述

第一行一个正整数(1≤≤100)t(1≤t≤100),代表有t组输入。

对于每组输入,第一行一个正整数(1≤≤300)n(1≤n≤300),代表有n个萝卜和n个坑。
第二行n个正整数1,2,..,(1≤≤109)a​1​​,a​2​​,..,a​n​​(1≤a​i​​≤10​9​​)代表萝卜们的高度。

输出描述

对于每组输入,输出不满值最小是多少。

样例输入


  1. 4
  2. 3
  3. 1 2 3
  4. 5
  5. 2 1 5 3 3
  6. 2
  7. 2 1
  8. 6
  9. 2 3 2 1 1 1

样例输出


  1. 3
  2. 6
  3. 0
  4. 1

提示

对于第二组输入


  1. 5
  2. 2 1 5 3 3

大概过程如下:

_ 2 _ _ _,不满值为0 

1 2 _ _ _,不满值为0

1 2 _ _ 5,不满值为2

1 2 _ 3 5,不满值为4

1 2 3 3 5,不满值为6

通过题目描述,可以得知小可的不满值就是大萝卜去自己的坑时,前面小萝卜的数量。

所以,我们不难想到如下思路:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int t;
    cin>>t;
    while(t--){
        int n,cnt=0;
        cin>>n;
        int a[n+5];
        for(int x=1;x<=n;++x) scanf("%d",a+x);
        for(int i=1;i<=n;i++){ for(int k=i+1;k<=n;k++){ if(a[i]<a[k]) cnt++; } }
        cout<<cnt<<"\n";
    }
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值