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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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; ↔ 数…