matrix(二分)

时间限制: 1 Sec 内存限制: 256 MB
提交: 169 解决: 24
[提交][状态][讨论版][命题人:admin]
题目描述

在麦克雷的面前有N个数,以及一个R*C的矩阵。现在他的任务是从N个数中取出 R*C 个,并填入这个矩阵中。矩阵每一行的法值为本行最大值与最小值的差,而整个矩阵的法值为每一行的法值的最大值。现在,麦克雷想知道矩阵的最小法值是多少。
输入

输入共两行。

第一行是三个整数:n,r,c。(r, c <= 104, r * c <= n <= 106)

第二行是 n 个整数 Pi。(0 < pi <= 109)
输出

输出一个整数,即满足条件的最小的法值。
样例输入

7 2 3
170 205 225 190 260 225 160

样例输出

30
这次比赛经验:1.一个人力量太小2.榜单并不一定适合自己,有很多水题都没有看3.还是多刷题吧
话不多说,这道题直接二分答案,然后判断区间数是否满足即可

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10
int s[N],R,c,n;
bool ok(int x)
{
    int t=0;
    for(int i=0;i<=n-c;++i)
        if(s[i+c-1]-s[i]<=x)
        {
            i+=c-1;
            t++;
        }
    return t>=R;
}
int main(){
    cin>>n>>R>>c;
    for(int i=0;i<n;++i)
        cin>>s[i];
    sort(s,s+n);
    int l=0,r=s[n-1]-*s;
    for(int m;l<r;)
    {
        m=l+r>>1;
        if(ok(m))
            r=m;
        else
            l=m+1;
    }
    cout<<l<<endl;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
混淆矩阵(Confusion matrix)是机器学习和模式识别领域用于评估分类模型性能的一种常用工具。它是一个二维矩阵,描述了分类模型在样本预测的表现。 混淆矩阵由四个不同的项组成,分别是真正例(True Positive, TP)、真反例(True Negative, TN)、假正例(False Positive, FP)和假反例(False Negative, FN)。其,真正例表示模型将正例正确地分类为正例的数量,真反例表示模型将反例正确地分类为反例的数量,假正例表示模型将反例错误地分类为正例的数量,假反例表示模型将正例错误地分类为反例的数量。 通过混淆矩阵,我们可以计算出一些重要的分类模型评估指标,例如准确率(Accuracy)、精确率(Precision)、召回率(Recall)和F1值。准确率表示分类正确的样本占总样本数的比例,精确率表示在所有被分类为正例的样本,实际为正例的比例,召回率表示实际为正例的样本,被正确分类为正例的比例,F1值综合了精确率和召回率,可以平衡二者之间的关系。 混淆矩阵可以帮助我们直观地了解分类模型的性能如何,进而优化和改进模型。例如,如果模型的假正例较多,意味着模型在将反例正确分类上存在问题,我们可以尝试调整模型的阈值或改变特征选择方法;如果模型的召回率较低,意味着模型在将正例正确分类上存在问题,我们可以尝试增加样本量或改变模型算法。 总而言之,混淆矩阵一个重要的工具,可以帮助我们全面评估分类模型的性能,得出相关的指标并根据结果来改进模型的准确性和预测能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值