CCF: 202012-2 期末預測之最佳閾值--C++

#include<iostream>
#include<bits/stdc++.h>using namespace std;int main()
{int n;//m位同學的數據int y[100001];//記錄m位同學的安全指數int result[100001];//記錄m位同學最后的掛科情況cin>>n;for(int i=1;i<=n;i++){cin>>y[i]>>result[i];}int p=0; int most=0;//記錄最高預測率 int res;//記錄最終的閾值 for(int i=1;i<=n;i++)//對每一個可能的閾值分析 {p=0;for(int j=1;j<=n;j++){if(y[j]<y[i]&&result[j]==0)//安全指數小于閾值 就掛科 p++;if(y[j]>=y[i]&&result[j]==1)//安全指數大于閾值 不掛科p++; } if(p>most) //準確率更高 { most=p;res=y[i]; }if(p==most&&y[i]>res)//準確率相同就用更大的作為閾值{most=p;res=y[i];} }cout<<res;return 0;
}

暴力求解:只有七十分

優化:思路差不多:根據安全指數從小到大排序之后,記錄第i個安全指數前面的0出現個數以及1出現個數,那么第i個安全指數的預測成功個數就等于前面0的個數d[i]加上后面1的個數,后面1的個數等于d[n]-d[i-1];注意是減去d[i-1],否則會漏了result[i]==1的情況

但是還是有些小細節思考不周全,還是會超時~~

可能是排序花費時間太多了?

#include<iostream>
#include<bits/stdc++.h>using namespace std;int sum[100001];//重復次數 int same1[100001];//代表某個安全指數對應結果為1的個數 int y[100001];//記錄m位同學的安全指數int result[100001];//記錄m位同學最后的掛科情況int d[100001];//d[i]表示閾值為i時i前面的 預測成功的個數(i前面result==0的個數) int d1[100001];//i前面為1的個數 int main()
{int n;//m位同學的數據memset(d,0,sizeof d); result[0]=-1;cin>>n;for(int i=1;i<=n;i++){cin>>y[i]>>result[i];}int tempi;//記錄當前位置的安全指數int tempr;//記錄當前位置的掛科結果 int min=1000;//記錄最小值 int flagi;//記錄選擇出來的最小值的位置 for(int i=1;i<=n;i++)//進行選擇排序 {tempi=y[i];tempr=result[i];min=100000001;for(int j=i+1;j<=n;j++){if(y[j]<min){min=y[j];flagi=j;//記錄目前最小值所在點 } }if(min<tempi) {y[i]=min;//最小的往前放 result[i]=result[flagi];//前面的往原本最小的地方放y[flagi]=tempi;result[flagi]=tempr; }if(result[i]==0){d[i]=d[i-1]+1;d1[i]=d1[i-1]; } else{d[i]=d[i-1];d1[i]=d1[i-1]+1;} }y[0]=-1;for(int i=1;i<=n;i++){if(y[i]==y[i-1]){int s=i;same1[i-1]+=result[i-1];sum[i-1]++;while(y[s]==y[s-1]){same1[i-1]+=result[s];//重復的那個安全指數有幾個結果為1sum[i-1]++;//有幾個重復s++;}s--;while(s>=i-1){d[s]=d[i-2]+sum[i-1]-same1[i-1];d1[s]=d1[i-2]+same1[i-1];s--;} i+=sum[i-1]-1; }}int p=0; //當前閾值下的預測率 int most=0;//記錄最高預測率 int res;//記錄最終的閾值 for(int i=1;i<=n;i++)//對每一個可能的閾值分析 {if(sum[i]!=0)//有重復 {p=d[i-1]+same1[i]+(n-(i+sum[i]-1))-(d[n]-d[i])  ;	//前面0的個數加上重復的數字1的個數+后面1的個數 i+=sum[i]-1;}else{//    	if(result[i]==0)
//    	{//d[i]多了一個本身的0,但是本身的0不能加入預測正確的p中 
//    		p=d[i]+((n-i)-(d[n]-d[i]))-1;//i前面預測正確的個數+后面(i+1到n-1)預測正確(1)的個數
//		}
//		else//本身是1,預測正確的個數加1 
//			p=d[i]+((n-i)-(d[n]-d[i]))+1;//i前面預測正確的個數+后面(i+1到n-1)預測正確(1)的個數p=d[i-1]+d1[n]-d1[i-1];}if(p>=most) {most=p;res=y[i];} }cout<<res;return 0;
}

CCF 202012-1 期末預測之最佳閾值 C++解決思路附代碼_期末預測之最佳閾值c++的不同解法及效率-CSDN博客

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/209490.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/209490.shtml
英文地址,請注明出處:http://en.pswp.cn/news/209490.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

unity 模型生成PNG圖片并導出(可以任意控制方向和大小,本文提供三種方案)

提示&#xff1a;文章有錯誤的地方&#xff0c;還望諸位大神不吝指教&#xff01; 文章目錄 前言一、插件RuntimePreviewGenerator&#xff08;方案一&#xff09;二、unity 官方提供的接口&#xff08;方案二&#xff09;三、方法三&#xff0c;可以處理單個模型&#xff0c;也…

華為OD機試真題-智能成績表-2023年OD統一考試(C卷)

題目描述: 小明來到某學校當老師,需要將學生按考試總分或單科分數進行排名,你能幫幫他嗎? 輸入描述: 第1行輸入兩個整數,學生人數n和科目數量m。0<n<100,0<m<10 第2行輸入m個科目名稱,彼此之間用空格隔開。科目名稱只由英文字母構成,單個長度不超過10個字符…

Linux下C++靜態鏈接庫的生成以及使用

目錄 一.前言二.生成靜態鏈接庫三.使用靜態鏈接庫 一.前言 這篇文章簡單討論一下Linux下如何使用gcc/g生成和使用C靜態鏈接庫&#xff08;.a文件&#xff09;。 二.生成靜態鏈接庫 先看下目錄結構 然后看下代碼 //demo.h#ifndef DEMO_H #define DEMO_H#include<string&g…

線程狀態:深入理解多任務并發編程中的精髓

目錄 引言 1. 線程狀態概述 1.1 定義 1.2 線程狀態圖 2. 線程狀態的轉換 2.1 新建到就緒 2.2 就緒到運行 2.3 運行到阻塞 2.4 運行到等待和超時等待 2.5 運行到終止 3. 實際編程中的線程狀態管理 3.1 合理使用wait()和notify() 3.2 謹慎處理阻塞狀態 3.3 使用線程…

面試題之Docker篇

1、Docker 是什么&#xff1f; Docker一個開源的應用容器引擎&#xff0c;是實現容器技術的一種工具&#xff0c;讓開發者可以打包他們的應用以及環境到一個鏡像中&#xff0c;可以快速的發布到任何流行的操作系統上。 2、Docker的三大核心是什么? 鏡像&#xff1a;Docker的鏡…

Elastic Support Hub 轉向語義搜索

作者&#xff1a;Chris Blaisure 我們很高興與大家分享 Elastic Support Hub 最近的增強功能&#xff1a;它現在由語義搜索提供支持&#xff01; 但在我們更詳細地了解對 Elastic Support Hub 所做的更改及其對客戶的影響之前&#xff0c;我們需要花點時間解釋語義搜索的概念&…

el-form表單校驗值為0提示校驗不通過

el-form表單校驗輸入框值為0時提示校驗不通過 配置validator自定義校驗方法 這里舉例在結構代碼里加入校驗規則 <el-form-item:prop"num":rules"[{required: true,message: 請輸入數量,trigger: change,},{validator,trigger: blur}]" ><el-inpu…

【安卓】安卓xTS之Media模塊 學習筆記(3) VTS測試

1. 背景 接下來進行正式的VTS測試。本章節還是以Media模塊相關進行介紹。 VTS主要測的是內核和HAL層&#xff0c;media的hal層是以openMax&#xff08;即將廢棄&#xff0c;今日2023.12&#xff09; 和 Codec2 (后續主流) 接口為主。 這里我們只看Codec2的要求&#xff0c;CDD…

統計字符

輸入一行字符&#xff0c;分別統計出包含英文字母、空格、數字和其它字符的個數。 數據范圍&#xff1a;輸入的字符串長度滿足1≤n≤1000 輸入描述&#xff1a;輸入一行字符串&#xff0c;可以有空格 輸出描述&#xff1a;統計其中英文字符&#xff0c;空格字符&#xff0c;數…

MongoDB的插入文檔、更新文檔語句

本文主要介紹MongoDB的插入文檔、更新文檔語句。 目錄 MongoDB插入文檔MongoDB更新文檔 MongoDB插入文檔 在MongoDB中&#xff0c;可以通過使用insertOne或insertMany方法向集合中插入文檔。 insertOne方法可以插入一個文檔&#xff0c;例如&#xff1a; db.collection.inse…

Android 等待view 加載布局完成 (包括動態生成View)

前言 在實際開發中&#xff0c;有很多組件需要 根據數據&#xff0c;動態生成&#xff0c;或者 追加 / 減少 子view&#xff0c;由于View布局需要時間&#xff0c;此時想要獲取父View的最新寬高值&#xff0c;要么手動測量&#xff0c;要么等待布局完成后再獲取&#xff1b; …

“天作之合”softmax與CrossEntropy

本文從 max \text{max} max到 logsumexp ? \operatorname{logsumexp} logsumexp&#xff0c;再到 softmax \text{softmax} softmax進行了一個簡單推導&#xff0c;最后說明了 softmax \text{softmax} softmax與CrossEntropy的關系。希望幫助大家理解多分類損失函數CrossEntrop…

樹莓派學習:學習opencv+用opencv獲取樹莓派mjpg攝像頭視頻流

目錄 前提步驟 打開樹莓派攝像頭 查看是否有圖像&#xff0c;登錄游覽器打開樹莓派IP地址的8080端口 獲取mjpg的視頻流url 代碼 先設定好mjpg的視頻流的url 利用opencv庫中的v2.VideoCapture類讀取mjpg視頻流 cv2.VideoCapture() 檢查攝像頭是否成功打開&#xff0c;…

scikit-learn實現線性回歸

要學習scikit-learn,我們必須要到scikit-clearn的官網中去查看公式和原理 scikit-learn 官網 scikit-learn 中文社區 進入官網一以后我們找到回歸&#xff0c;然后再有監督學習中找到線性模型 scikit-learn實現簡單的線性回歸 公式&#xff1a; L2范數是指向量中每個元素的平…

Java+Swing: 主界面的窗體 整理8

主界面的寫法跟之前登錄界面的窗體寫法大致相同&#xff0c;在主界面中主要是窗體的大小的設置 package com.student_view;import com.utils.DimensionUtil; import sun.applet.Main;import javax.swing.*; import java.awt.*; import java.net.URL;/*** Author&#xff1a;xie…

C# --線程的進化史

1.C# 線程的進化史可以追溯到 .NET Framework 的早期版本和 C# 語言的發展過程 Thread 類&#xff08;.NET Framework 1.0&#xff09;&#xff1a;最初&#xff0c;C# 中使用 Thread 類來創建和管理線程。通過實例化 Thread 類并調用其 Start 方法&#xff0c;可以在應用程序…

全面覆蓋,無所不包:C++ 編程必備指南 | 開源日報 No.99

fffaraz/awesome-cpp Stars: 51.0k License: MIT 這個項目是一個精心策劃的 C(或者 C) 框架、庫、資源和其他有趣東西的列表。它收集了各種標準庫&#xff0c;如 STL 容器和算法&#xff1b;不同領域的框架&#xff0c;比如人工智能、異步事件循環等&#xff1b;以及一系列功…

【人工智能Ⅰ】實驗7:K-means聚類實驗

實驗7 K-means聚類實驗 一、實驗目的 學習K-means算法基本原理&#xff0c;實現Iris數據聚類。 二、實驗內容 應用K-means算法對iris數據集進行聚類。 三、實驗結果及分析 0&#xff1a;輸出數據集的基本信息 參考代碼在main函數中首先打印了數據、特征名字、目標值、目標…

【上海大學數字邏輯實驗報告】四、組合電路(三)

一、 實驗目的 掌握多路選擇器74LS151的原理。掌握譯碼器74LS138的原理。學會在Quartus II上使用多路選擇74LS151設計電路。學會在Quartus II上使用譯碼器74LS138設計電路。 二、 實驗原理 多路選擇器又稱數據選擇器或多路開關&#xff0c;它是一種多路輸入單路輸出的組合邏…

HHDESK右鍵管理簡介

在HHDESK管理文件&#xff0c;除了基本的打開、刪除、復制、粘貼、重命名外&#xff0c;還有多種便捷編輯方式。 可以分別以下列模式打開文檔&#xff1a; 文本模式即是以文本編輯器打開文檔。 1 二進制模式 可進行二進制編輯。 2 JSON模式 可對JSON文件進行直觀的解析…