【分治算法】化妆晚会

本文介绍了如何使用分治算法解决一个万圣节奶牛化装晚会的问题。Farmer John需要确定有多少对不同的奶牛可以穿上一套长度不超过S的服装。输入包含N头奶牛的长度,需要计算满足条件的奶牛组合数量。通过排序和二分查找,可以高效地得出答案。样例输入和输出展示了算法的应用,数据规模最高可达50,000头奶牛。" 127850771,10070910,大坝安全监测系统与5G应用,"['物联网', '5G技术', '安全监测', '水利自动化', '环境监控']
摘要由CSDN通过智能技术生成

题目描述

万圣节又到了!Farmer John打算带他的奶牛去参加一个化装晚会,但是,FJ只做了一套能容下两头总长不超过S(1 < = S < = 1,000,000)的牛的恐怖服装。FJ养了N(2 < = N < = 50,000)头按1…N顺序编号的奶牛,编号为i的奶牛的长度为L_i(1 < = L_i < = 1,000,000)。如果两头奶牛的总长度不超过S,那么她们就能穿下这套服装。
FJ想知道,如果他想选择两头不同的奶牛来穿这套衣服,一共有多少种满足条件的方案。

输入

输入文件的第1行是 2个用空格隔开的整数:N 和 S, 第2…N+1行每行一个整数:L_i

输出

1行: 输出1个整数,表示FJ可选择的所有方案数。注意奶牛顺序不同的两种方案是被视为相同的

输入样例

4 6
3
5
2
1

输出样例

4

说明

输出说明: 4种选择分别为:奶牛1和奶牛3;奶牛1和奶牛4;奶牛2和奶牛4;奶牛3和 奶牛4。 【数据规模】 对于30%的数据,N<=10000; 对于100%的数据,N<=50000

分析

不因为顺序而影响结果,因此排完序后就找到容不下的就break;但是要二分查找

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值