2023河南CCPC省賽vp部分補題

A 模擬 暴力

對每個合法的前綴,判斷后綴是不是合法

int a[29];
void solve(){string s;cin>>s;int t=-1;if(s.size()==1){return cout<<"NaN"<<endl,void();}for(int i=0;i<=27;i++)    a[i]=0;for(int i=0;i<s.size();i++){a[s[i]-'a']++;if(a[s[i]-'a']>1){t=i;break;}else{string ss=s.substr(i,s.size()-i);string s1=ss;reverse(ss.begin(),ss.end());if(ss==s1){return cout<<"HE"<<endl,void();}else continue;}}if(t==-1)t=s.size()-1;if(t==s.size()-1){return cout<<"HE"<<endl,void();}string ss=s.substr(t,s.size()-t);string s1=ss;reverse(ss.begin(),ss.end());if(ss==s1)    cout<<"HE"<<endl;else    cout<<"NaN"<<endl;
}

B 思維 枚舉

題意:每k個數一組,每小組升序排序后能讓整個排序變成升序
思路:

  • 若要滿足題意,那么每個組的最大值要小于等于下一組的最小值,就是前綴最大值小于等于下一個數的后綴最小值,這就是組和組的邊界
  • 標記每一個邊界位置,枚舉k,找符合題意的k的個數
void solve()
{int n;cin>>n;vector<int>a(n+1),pmax(n+1,0),smin(n+2,1e9);forr(i,1,n){cin>>a[i];}reforr(i,1,n){smin[i]=min(smin[i+1],a[i]);}vector<int>rec(n+1,0);forr(i,1,n){pmax[i]=max(pmax[i-1],a[i]);if(pmax[i]<=smin[i+1])rec[i]=1;}//nlognint ans=0;forr(k,1,n){ans++;// cout<<k<<' ';for(int i=k;i<=n;i+=k){//這里的復雜度是lognif(rec[i]==0){ans--;// cout<<-1;break;}}// cout<<endl;}cout<<ans<<endl;// forr(i,1,n)cout<<pmax[i]<<' ';// cout<<endl;// forr(i,1,n)cout<<smin[i]<<' ';// cout<<endl;
}
/*
6
4 1 3 5 2 6  
2
*/

E 三維dp 滾動數組

const int N=510,K=1e3+10;
string mp[N];
//空間優化 滾動數組
//要從上面一行轉移過來,存兩行,奇數行1偶數行0
int dp[2][N][K];
void solve()
{int n,m,x;cin>>n>>m>>x;forr(i,0,m){forr(j,0,x){dp[0][i][j]=dp[1][i][j]=0;}}forr(i,1,n){cin>>mp[i];mp[i]='0'+mp[i];}forr(i,1,n){forr(j,1,m){forr(k,0,x){if(mp[i][j]=='1')dp[i&1][j][k]=max(dp[i&1][j-1][k],dp[(i-1)&1][j][k])+1;else if(mp[i][j]=='0') dp[i&1][j][k]=max(dp[i&1][j-1][k],dp[(i-1)&1][j][k]);else{//?if(k>=1)dp[i&1][j][k]=max(dp[i&1][j-1][k-1],dp[(i-1)&1][j][k-1])+1;//?盡量變成1else dp[i&1][j][0]=max(dp[i&1][j-1][0],dp[(i-1)&1][j][0]);//沒有k=-1的狀態 原地tp}}}}int ans=dp[n&1][m][0];forr(i,1,x){ans=max(ans,dp[n&1][m][i]);}cout<<ans<<endl;
}

F 排序

題意:讓min和max盡量小。排序后,min是相鄰數之間的值差,max是隔k-2個數的兩值之差
vp時對怎么找k-1個值差的最小值有點犯難,枚舉判斷必超時,一開始想寫純雙指針,但是維護最小值太麻煩,于是選擇了傻瓜式的multi_set

void solve()
{int n,k;cin>>n>>k;vector<int>a(n+1),mind(n),maxd(n);forr(i,1,n)cin>>a[i];sort(a.begin()+1,a.end());forr(i,1,n-1){mind[i]=a[i+1]-a[i];// cout<<mind[i]<<' ';}//cout<<endl;int l=1,r=k-1;multiset<int>s;forr(i,1,k-1)s.insert(mind[i]);int ans=1e18+100;forr(i,1,n-k+1){int minn=(*s.begin());maxd[i]=a[i+k-1]-a[i];ans=min(maxd[i]*minn,ans);r++;if(r>=n)break;auto tp=s.lower_bound(mind[l]);//有序數組二分找要扔掉的值s.erase(tp);s.insert(mind[r]);l++;}cout<<ans<<endl;
}
/*
13 7
1 1 4 5 1 4 1 9 1 9 8 1 04 2114 514 1919 8106 3121 117 114 105 107 111
*/

H 貪心

題意:取的數個數相等,為k,讓取的每個數四舍五入后盡量小/大

  • min:盡量四舍
    • 任何小數部分<0.5的數都可舍去,策略可以是每次分出 0.5 ? δ 0.5-\delta 0.5?δ,分k-1個
    • 剩下的數也要盡量小,取得 0.5 ? δ 0.5-\delta 0.5?δ盡量大,那么 δ → 0 , 1 e 9 ? δ → 0 \delta\rightarrow 0,1e9\cdot\delta \rightarrow 0 δ0,1e9?δ0,無窮小忽略,就是每次分出0.5,分k-1次剩下的取round
  • max:五入
    • 能五入的最小是0.5,讓剩下的一個數盡量大,其他k-1個數就得取0.5
void solve()
{int n,k;cin>>n>>k;double rst1=1.0*n-(k-1)*0.5;int minn=round(rst1);minn=max(minn,0ll);double rst=1.0*n-(k-1)/2;int maxn=round(rst)+k-1;maxn=min(2*n,maxn);cout<<minn<<' '<<maxn<<endl;
}

K 構造

題意:形成一個環,環之間的差值是質數

  • 質數:2,3,5,7,11,13…大部分是奇數
  • 枚舉得到n<=4,輸出-1
  • 相鄰奇/偶數之間的差是2,奇偶之間的差值是奇數,所以可以分奇偶進行構造
    belike(n為偶數) 1,3,5,7,…,n-3,n-1,n,n-2,6,4,2 但是2和n-1放錯了位置,重新放
    2在5和7之間必然合法
    n-1在n-4和n-6之間必然合法(差是3,5)
    但是應該n-4!=7,并且n應該>6
    而且n-1!=7,讓5和7位置固定
  • 枚舉5~10的答案,更大的n分奇偶進行構造
void solve()
{//分奇偶int n;cin>>n;if(n<=4)return cout<<-1<<endl,void();switch (n){case 5:cout<<"4 1 3 5 2"<<endl;break;case 6:cout<<"4 6 1 3 5 2"<<endl;break;case 7:cout<<"4 6 1 3 5 7 2"<<endl;break;case 8:cout<<"4 6 8 1 3 5 7 2"<<endl;break;case 9:cout<<"4 9 6 8 1 3 5 7 2"<<endl;break;case 10:cout<<"4 9 6 8 1 3 10 5 7 2"<<endl;break;case 11:cout<<"4 9 6 11 8 1 3 10 5 7 2"<<endl;break;default:{vector<int>ans;if(n&1){//奇數for(int i=1;i<=n-2;i+=2){ans.push_back(i);if(i==5)ans.push_back(2);if(i==n-6)ans.push_back(n-1);}ans.push_back(n);for(int i=n-3;i>=4;i-=2){ans.push_back(i);}}else{//偶數for(int i=4;i<=n-2;i+=2){ans.push_back(i);if(i==n-6)ans.push_back(n-1);}ans.push_back(n);for(int i=n-3;i>=1;i-=2){ans.push_back(i);if(i==7)ans.push_back(2);}}for(auto i:ans)cout<<i<<' ';cout<<endl;}}
}

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

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

相關文章

【2025保姆級】Open-WebUI五大功能區首曝!第一篇:管理員面板深度拆解,手把手講解配置AI管理中樞

【2025保姆級】Open-WebUI五大功能區首曝&#xff01;第一篇&#xff1a;管理員面板深度拆解&#xff0c;手把手講解&配置AI管理中樞 一、引言二、用戶2.1 概述2.2 權限組 三、競技場評估四、函數五、設置5.1 通用5.1.1 身份驗證5.1.2 功能 5.2 外部連接5.2.1 OpenAI API5.…

docker上傳鏡像

向Docker Hub上傳鏡像&#xff0c;需要按照一定的步驟進行操作。 Docker Hub是Docker的官方鏡像倉庫&#xff0c;用戶可以在其中存儲、管理和部署Docker鏡像。要向Docker Hub上傳鏡像&#xff0c;請遵循以下步驟&#xff1a; 創建Docker Hub賬戶&#xff1a; 訪問Docker Hub官…

(十三)深入了解AVFoundation-采集:視頻幀采集與實時濾鏡處理

引言 在移動應用中&#xff0c;實時視頻處理已成為視頻拍攝、短視頻、直播、美顏相機等功能的核心技術之一。從簡單的濾鏡疊加&#xff0c;到復雜的美顏、AR 特效&#xff0c;背后都離不開對每一幀圖像的高效采集與處理。在前幾篇文章中&#xff0c;我們已經實現了基本的視頻采…

數字政務安全實戰:等保2.0框架下OA系統防護全解析

近期在Python基礎教學領域深入鉆研函數機制、數據結構優化等內容時&#xff0c;深刻意識到信息安全作為技術基石的戰略價值。在政務數字化轉型浪潮中&#xff0c;Python憑借其高擴展性與豐富的安全生態庫&#xff0c;成為構建政務OA系統安全防護體系的核心工具。本文將以等保2.…

Pytorch項目實戰-2:花卉分類

一、前言 在深度學習項目中&#xff0c;數據集的處理和模型的訓練、測試、預測是關鍵環節。本文將為小白詳細介紹從數據集搜集、清洗、劃分到模型訓練、測試、預測以及模型結構查看的全流程&#xff0c;附帶代碼和操作說明&#xff0c;讓你輕松上手&#xff01; 二、數據集 …

React Flow 邊事件處理實戰:鼠標事件、鍵盤操作及連接規則設置(附完整代碼)

本文為《React Agent&#xff1a;從零開始構建 AI 智能體》專欄系列文章。 專欄地址&#xff1a;https://blog.csdn.net/suiyingy/category_12933485.html。項目地址&#xff1a;https://gitee.com/fgai/react-agent&#xff08;含完整代碼示?例與實戰源&#xff09;。完整介紹…

java小結(一)

java&#xff08;上&#xff09; 模塊一 1.JDK,JRE,JVM 知識點 核心內容 易混淆點 JDK定義 Java Development Kit&#xff08;Java開發工具包&#xff09;&#xff0c;包含開發所需全部工具 JDK包含JRE的關系容易混淆 JRE定義 Java Runtime Environment&#xff08;Jav…

ddns-go安裝介紹-強大的ipv6動態域名解析神器-家庭云計算專家

ddns-go 是一款輕量級開源動態域名解析工具&#xff0c;專注于解決動態IP環境下的域名綁定問題&#xff0c;尤其適配IPv6網絡環境。其核心功能包括&#xff1a; 1.IPv6動態解析&#xff1a;自動檢測本地IPv6地址變化&#xff08;支持網卡、接口或命令獲取&#xff09;&#xf…

Docker-mongodb

拉取 MongoDB 鏡像: docker pull mongo 創建容器并設置用戶&#xff1a; 要掛載本地數據目錄&#xff0c;請替換此路徑: /Users/Allen/Env/AllenDocker/mongodb/data/db docker run -d --name local-mongodb \-e MONGO_INITDB_ROOT_USERNAMEadmin \-e MONGO_INITDB_ROOT_PA…

WooCommerce緩存教程 – 如何防止緩存破壞你的WooCommerce網站?

我們在以前的文章中探討過如何加快你的WordPress網站的速度&#xff0c;并研究過各種形式的緩存。 然而&#xff0c;像那些使用WooCommerce的動態電子商務網站&#xff0c;在讓緩存正常工作方面往往會面臨重大挑戰。 在本指南中&#xff0c;我們將告訴你如何為WooCommerce設置…

貪心算法 Part04

總結下重疊區間問題 LC 452. 用最少數量的箭引爆氣球 和 LC 435. 無重疊區間 本質上是一樣的。 LC 452. 用最少數量的箭引爆氣球 是求n個區間當中 &#xff0c; 區間的種類數量 k。此處可以理解為&#xff0c;重疊在一起的區間屬于同一品種&#xff0c;沒有重疊的區間當然…

云原生CD工具-Argocd+ArgoRollout入門到精通

第一章 Argo CD簡介 課時1.1 Argo產品介紹 ARGO官網地址:https://argoproj.github.io/ 旗下產品有: Argo Workflows、ArgoCD 、Argo Rollouts 、Argo Events 課時1.2 什么是Argo CD Argo CD 是一個開源的持續交付工具, 是 Kubernetes 的聲明式 GitOps 持續交付工具。專…

數據分析與應用---數據可視化基礎

目錄 Matplotlib基礎繪圖 (一)、pyplot繪圖基礎語法與常用參數 1、pyplot基礎語法 (1) 創建畫布與創建子圖 (2) 添加畫布內容 (3) 保存與顯示圖形 案例代碼 2. 設置pyplot的動態rc參數 (二)、使用Matplotlib繪制進階圖形 1. 繪制散點圖----scatter 2. 繪制折線…

PP-YOLOE-SOD學習筆記1

項目&#xff1a;基于PP-YOLOE-SOD的無人機航拍圖像檢測案例全流程實操 - 飛槳AI Studio星河社區 一、安裝環境 先準備新環境py>3.9 1.先cd到源代碼的根目錄下 2.pip install -r requirements.txt 3.python setup.py install 這一步需要看自己的GPU情況&#xff0c;去飛漿…

力扣HOT100之二叉樹:114. 二叉樹展開為鏈表

這道題自己嘗試著做了一下&#xff0c;感覺還是得用遞歸來做比較簡單&#xff0c;但是一直想的是用前序遍歷來構造鏈表&#xff0c;導致怎么做都不對&#xff0c;去看了下靈神的題解&#xff0c;然后問了下GPT&#xff0c;現在終于弄明白了。雖然構造出來的鏈表的排列順序是按照…

Spring Boot 注解 @ConditionalOnMissingBean是什么

一句話總結&#xff1a; ConditionalOnMissingBean 是 Spring Boot 提供的一個 條件注解&#xff08;Conditional Annotation&#xff09;&#xff0c;意思是&#xff1a; 只有當 Spring 容器中 不存在 某個 Bean 時&#xff0c;當前的 Bean 或配置才會被加載。 這是一種典型的…

PyInstaller 如何在mac電腦上生成在window上可執行的exe文件

PyInstaller跨平臺打包限制 PyInstaller 無法直接從macOS生成Windows可執行文件&#xff0c;因為它需要訪問目標平臺的系統庫和Python環境來構建可執行文件。要在macOS上為Windows打包Python應用&#xff0c;需要通過以下方法之一&#xff1a; 方法一&#xff1a;使用虛擬機或…

零基礎設計模式——創建型模式 - 抽象工廠模式

第二部分&#xff1a;創建型模式 - 抽象工廠模式 (Abstract Factory Pattern) 我們已經學習了單例模式&#xff08;保證唯一實例&#xff09;和工廠方法模式&#xff08;延遲創建到子類&#xff09;。現在&#xff0c;我們來探討創建型模式中更為復雜和強大的一個——抽象工廠…

【通用智能體】Serper API 詳解:搜索引擎數據獲取的核心工具

Serper API 詳解&#xff1a;搜索引擎數據獲取的核心工具 一、Serper API 的定義與核心功能二、技術架構與核心優勢2.1 技術實現原理2.2 對比傳統方案的突破性優勢 三、典型應用場景與代碼示例3.1 SEO 監控系統3.2 競品廣告分析 四、使用成本與配額策略五、開發者注意事項六、替…

Flask-SQLAlchemy核心概念:模型類與數據庫表、類屬性與表字段、外鍵與關系映射

前置閱讀&#xff0c;關于Flask-SQLAlchemy支持哪些數據庫及基本配置&#xff0c;鏈接&#xff1a;Flask-SQLAlchemy_數據庫配置 摘要 本文以一段典型的 SQLAlchemy 代碼示例為引入&#xff0c;闡述以下核心概念&#xff1a; 模型類&#xff08;Model Class&#xff09; ? 數…