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好简单,找规律即可)

相关文章
|
6月前
|
安全
202012-1 期末预测之安全指数
202012-1 期末预测之安全指数
|
6月前
|
数据挖掘 数据建模
R语言指数加权模型EWMA预测股市多变量波动率
R语言指数加权模型EWMA预测股市多变量波动率
R语言指数加权模型EWMA预测股市多变量波动率
|
6月前
R语言中进行期权定价的Heston随机波动率模型
R语言中进行期权定价的Heston随机波动率模型
|
6月前
|
数据可视化 流计算
估计获胜概率:模拟分析学生多项选择考试通过概率可视化
估计获胜概率:模拟分析学生多项选择考试通过概率可视化
|
6月前
|
数据可视化 前端开发 SEO
R语言门限误差修正模型(TVECM)参数估计沪深300指数和股指期货指数可视化
R语言门限误差修正模型(TVECM)参数估计沪深300指数和股指期货指数可视化
|
6月前
数据分享|R语言回归模型诊断、离群值分析学生考试成绩、病人医护质量满意度、婴儿死亡率和人均收入、针叶树荫面积数据
数据分享|R语言回归模型诊断、离群值分析学生考试成绩、病人医护质量满意度、婴儿死亡率和人均收入、针叶树荫面积数据
|
6月前
R语言用GAM广义相加模型研究公交专用道对行程时间变异度数据的影响
R语言用GAM广义相加模型研究公交专用道对行程时间变异度数据的影响
|
6月前
|
存储 数据可视化 文件存储
数据分享|多变量多元多项式曲线回归线性模型分析母亲吸烟对新生婴儿体重影响可视化
数据分享|多变量多元多项式曲线回归线性模型分析母亲吸烟对新生婴儿体重影响可视化
|
6月前
R语言量化:合成波动率指数移动平均策略分析标准普尔500波动率指数(VIX)
R语言量化:合成波动率指数移动平均策略分析标准普尔500波动率指数(VIX)
|
6月前
|
数据挖掘
指数加权模型EWMA预测股市多变量波动率时间序列
指数加权模型EWMA预测股市多变量波动率时间序列