202012-2 期末预测之最佳阈值

简介: 202012-2 期末预测之最佳阈值

24f4d7c21f3f464a986c25fe8586458d.jpg

a4f343cbb9c143aab0e8edfbdf256343.jpg

70分代码:

/*暴力70*/
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1005;
int m;
struct point
{
  int y;
  int result;
} a[maxn];
int theta[maxn];
int cmp(point a1, point a2)
{
  if (a1.y < a2.y)
  {
    return true;
  }
  return false;
}
int main()
{
  cin >> m;
  for (int i = 1; i <= m; i++) // 选预测准确率最高的
  {
    cin >> a[i].y >> a[i].result;
  }
  int ans = 0;
  int ansnum = 0;
  sort(a + 1, a + 1 + m, cmp);
  for (int i = 1; i <= m; i++)
  { // 选第i个的y作为theta
    int sum = 0;
    for (int j = 1; j <= m; j++)
    { // 算正确次数
      if ((a[j].y >= a[i].y && a[j].result == 1) || (a[j].y < a[i].y && a[j].result == 0))
      {
        sum++;
      }
    }
    if (sum >= ansnum)
    {
      ans = a[i].y;
      ansnum = sum;
    }
  }
  cout << ans;
}


100分代码:

/*前缀和100*/
#include <bits/stdc++.h>
using namespace std;
const int maxn = 100005;
int m;
struct point
{
  int y;
  int result;
} a[maxn];
int theta[maxn];
int cmp(point a1, point a2)
{
  if (a1.y < a2.y)
  {
    return true;
  }
  return false;
}
struct nn
{ // 每个theta 01个数前缀和
  int theta;
  int zero;
  int one;
} num[maxn];
int main()
{
  cin >> m;
  for (int i = 1; i <= m; i++) // 输入
  {
    cin >> a[i].y >> a[i].result;
  }
 
  sort(a + 1, a + 1 + m, cmp);//按从小到大对yi排序
  int uu = 1;//记录theta个数
  a[m + 1].y = a[m].y;
  a[m + 1].result = a[m].result;
  num[1].theta = a[1].y;
  for (int i = 1; i <= m; i++)
  {
    if (a[i].y != a[i + 1].y)
    {
      if (a[i].result == 1)
      {
        num[uu].one++;
      }
      else
      {
        num[uu].zero++;
      }
      uu++;
      num[uu].theta = a[i + 1].y;
      num[uu].zero += num[uu - 1].zero;
      num[uu].one += num[uu - 1].one; // 前缀和
    }
    else
    {
      if (a[i].result == 1)
      {
        num[uu].one++;
      }
      else
      {
        num[uu].zero++;
      }
    }
  }
  int ans = 0;
  int ansnum = 0;
  for (int i = 1; i <= uu; i++)
  { // 选第i个作为theta
    int sum = 0;
    if (i == 1)
    {
      sum = num[uu].one;
      if (sum >= ansnum)
      {
        ans = num[i].theta;
        ansnum=sum;
      }
    }
    else
    {
      //>=y:1
      sum +=num[uu].one-num[i-1].one;
      //<y:0
      sum+=num[i-1].zero;
      if (sum >= ansnum)
      {
        ans = num[i].theta;
        ansnum=sum;
      }
    }
  }
   cout << ans;
}


(PS:主要看样例输入输出和样例解释。这次的T2好简单,找规律即可)

相关文章
|
JavaScript
Vue3渐变文字(GradientText)
该文档介绍了一个基于 Vue 的渐变文字组件 `GradientText`,允许用户通过配置参数实现不同样式和尺寸的文字渐变效果。支持自定义起始和结束颜色、渐变角度及多种预设类型(如 `primary`、`info` 等)。
387 0
Vue3渐变文字(GradientText)
|
SQL 数据库 索引
SQL中如何实现事务?
【6月更文挑战第17天】SQL中如何实现事务?
147 2
|
机器学习/深度学习 人工智能 数据可视化
ACES 增强版不丹水稻作物地图(2016-2022 年)
ACES 增强版不丹水稻作物地图(2016-2022 年)
135 3
|
Windows
整人脚本-连点50下弹窗的windows脚本
整人脚本-连点50下弹窗的windows脚本
309 0
|
Rust Go C++
Rust vs Go:常用语法对比(3)(1)
Rust vs Go:常用语法对比(3)(1)
154 0
|
小程序
学员小游戏作品分享
嗨!大家好,我是小蚂蚁。 在这里分享一下我的学员的小游戏作品。小蚂蚁的学员的作品正在变得越来越多,这也是让我非常开心和有成就感的一件事。如果你也想学习做游戏,想要有一天做出自己的游戏,欢迎来加入小蚂蚁的游戏
676 0
|
消息中间件 网络协议 Linux
Linux环境下RabbitMQ安装教程
Linux环境下RabbitMQ安装教程
447 0
Linux环境下RabbitMQ安装教程
|
Web App开发 XML JavaScript
Console 3000字完整指南,让你不只会用console.log !
Console 3000字完整指南,让你不只会用console.log !
Console 3000字完整指南,让你不只会用console.log !
|
数据安全/隐私保护
|
机器学习/深度学习 新零售 自然语言处理
KDD 2020 <A Dual Heterogeneous Graph Attention Network to Improve Long-Tail Performance for Shop Search in E-Commerce> 论文解读
店铺搜索是淘宝搜索的一个组成部分,目前淘宝有近千万的店铺,7日活跃店铺也达到百万级别。店铺搜索场景拥有日均千万级别UV,引导上亿的GVM。
KDD 2020 <A Dual Heterogeneous Graph Attention Network to Improve Long-Tail Performance for Shop Search in E-Commerce> 论文解读