| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1200 人关注过本帖
标题:这题看了一圈,做了好几遍,老做错!!!
只看楼主 加入收藏
op123
Rank: 6Rank: 6
等 级:贵宾
威 望:21
帖 子:170
专家分:461
注 册:2022-6-4
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:5 
这题看了一圈,做了好几遍,老做错!!!
1899 - 【基础】最满意的方案
题目描述
高考结束了,同学们要开始了紧张的填写志愿的过程,大家希望找一个自己最满意的大学填报方案,请你编程帮忙实现。
现有m(m≤100000)所学校,每所学校预计分数线是ai(ai≤106)。有 n(n≤100000)位学生,估分分别为 bi(bi≤106)。
根据n位学生的估分情况,分别给每位学生推荐一所学校,要求学校的预计分数线和学生的估分相差最小(可高可低,毕竟是估分嘛),这个最小值为不满意度。求所有学生不满意度和的最小值。

输入
第一行读入两个整数m,n。m表示学校数,n表示学生数。第二行共有m个数,表示m个学校的预计录取分数。第三行有n个数,表示n个学生的估分成绩。

输出
一行,为最小的不满意度之和。(数据保证结果<=109)

样例
输入复制
4 3
513 598 567 689
500 600 550
输出复制
32
来源
数组问题 二分

标签
数组问题 二分
搜索更多相关主题的帖子: 表示 学校 分数 一行 学生 
2022-07-17 16:56
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:5 
估计题目拷贝粘贴后,你看都没看一眼。
如果你真是五年级,那应该好好学习,少做无意义的事

程序代码:
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
using namespace std;

int main( void )
{
    // ai​<=10^6,即最多需要20bits,unsigned足够了
    vector<unsigned> univs;

    // 第一行读入两个整数 m,n。m 表示学校数,n 表示学生数
    size_t m, n;
    cin >> m >> n;

    // 第二行共有 m 个数,表示 m 个学校的预计录取分数
    univs.resize( m );
    copy_n( istream_iterator<unsigned>(cin), m, begin(univs) );
    sort( begin(univs), end(univs) );

    // 第三行有 n 个数,表示 n 个学生的估分成绩
    unsigned delta = 0; // 数据保证结果<=10^9
    for( size_t i=0; i!=n; ++i )
    {
        unsigned score;
        cin >> score;

        auto itor = std::lower_bound( begin(univs), end(univs), score );
        if( itor == end(univs) )
        {
            if( !univs.empty() )
                delta += score-univs.back();
        }
        else
        {
            if( itor == begin(univs) )
                delta += *itor-score;
            else
                delta += min( *itor-score, score-*prev(itor) );
        }
    }
    cout << delta << endl;
}
2022-07-18 15:30
op123
Rank: 6Rank: 6
等 级:贵宾
威 望:21
帖 子:170
专家分:461
注 册:2022-6-4
收藏
得分:0 
谢谢

[此贴子已经被作者于2022-7-21 16:10编辑过]

2022-07-19 14:29
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
请 op123 不要再刷屏,BBS是公共场合
2022-07-19 16:05
op123
Rank: 6Rank: 6
等 级:贵宾
威 望:21
帖 子:170
专家分:461
注 册:2022-6-4
收藏
得分:0 
非常抱歉

[此贴子已经被作者于2022-7-22 17:24编辑过]

2022-07-21 15:43
op123
Rank: 6Rank: 6
等 级:贵宾
威 望:21
帖 子:170
专家分:461
注 册:2022-6-4
收藏
得分:0 
非常抱歉

[此贴子已经被作者于2022-7-23 15:15编辑过]

2022-07-21 16:05
快速回复:这题看了一圈,做了好几遍,老做错!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.055371 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved