2025陕西省赛补题

article/2025/7/17 2:59:22

A 贪心

在这里插入图片描述

题意:给一个长度为n的序列,每次操作可以花费 w [ c [ i ] ] + ( r − l + 1 ) w[c[i]]+(r-l+1) w[c[i]]+(rl+1)的代价,把区间 [ l , r ] [l,r] [l,r]染成染色 。
思路:对任意颜色,[l,r]中如果有cnt个连续的该颜色段,要么花费cnt,要么花w[c[i]]

void solve()
{int n;cin>>n;vector<int>c(n+1),w(n+1),ans(n+1);forr(i,1,n)cin>>c[i];forr(i,1,n){cin>>w[i];ans[i]=w[i]+n; //[1,n]全刷一遍}int l=1,r=n;//头尾的颜色不花钱forr(i,1,n){if(c[1]==c[i])ans[c[1]]--;else {l=i;break;}}reforr(i,1,n){if(c[n]==c[i])ans[c[n]]--;else {r=i;break;}}if(l==n)ans[c[1]]=0;if(r==1)ans[c[n]]=0;int cnt=1;forr(i,l,r){if(c[i]==c[i-1])cnt++;else cnt=1;// cout<<i<<' '<<cnt<<' '<<w[c[i]]<<endl;if(cnt>w[c[i]])ans[c[i]]--;//如果cnt>w[i] cnt换成w[c[i]] 每超过就--把cnt减到w[c[i]]//如果cnt<w[i] 用的还是cnt}forr(i,1,n)cout<<ans[i]<<' ';cout<<endl;
}

C 数学

在这里插入图片描述

题意:要求一个数x和a互质和b不互质
那么x是b有a没有的因数,要把b中a的因数全刨去

void solve()
{int a,b;cin>>a>>b;if(b==1)return cout<<-1<<endl,void();else if(a==1)return cout<<b<<endl,void();else{int bt=b;int d=__gcd(a,bt);while (d>1){bt/=d;d=__gcd(a,bt);   }if(bt!=1&&__gcd(bt,a)==1)return cout<<bt<<endl,void();else return cout<<-1<<endl,void();}
}

G 思维

在这里插入图片描述
题意:对于一个数字 a i a_i ai,如果左侧中有大于等于它的,右侧有小于等于它的,或者反过来成立,则可以删掉它。问最终序列最少还剩几个数字。

  • 最大值和最小值之间的都可以删去
  • a 1 , a n a_1,a_n a1,an一边没有数,怎么也删不掉
  • m a x n > a 1 , m a x n > a n , m i n n < a 1 , m i n n < a n maxn>a_1,maxn>a_n,minn<a_1,minn<a_n maxn>a1,maxn>an,minn<a1,minn<an可以联合起来删掉他们中间的数,最后只剩 m a x n , m i n n , a 1 , a n maxn,minn,a_1,a_n maxn,minn,a1,an
void solve()
{int n;cin>>n;vector<int>a(n+1);int maxp,minp,maxn=0,minn=1e9+10;forr(i,1,n){cin>>a[i];maxn=max(a[i],maxn);minn=min(a[i],minn);}if(n==1)return cout<<1<<endl,void();int ans=2;//如果最大值或最小值在首尾,就少一个if(a[n]!=maxn&&a[1]!=maxn)ans++;if(a[n]!=minn&&a[1]!=minn)ans++;cout<<ans<<endl;
}

K 贪心 思维

在这里插入图片描述
在这里插入图片描述
题意:有n个无私的人和m个自私的人。无私的人商量好一起决策,目标是让所有人拿到的钱总数最多。
自私的人会在无私的人决策完后决策,他们都会假设其他自私的人选选项B 。

  • 无私的人让全局最大化
  • 自私的人都选择一个选项

分析:
对n>0,m>0,x>=y的情况,设有d个无私的选A去分x
x / ( d + 1 ) > y x/(d+1)>y x/(d+1)>y,自私的都选A,sum=x+(n-d)*y
x / ( d + 1 ) ≤ y x/(d+1)\leq y x/(d+1)y,自私的都选B,sum=x+(n+m-d)*y
显然自私的都选B更大,最小化d能得到sum的最大值
二分找d最大值

void solve()
{int n,m,x,y;cin>>n>>m>>x>>y;int ans=0;if(n==0&&m==0)return cout<<0<<endl,void();if(n==0){//只有自私的//一个人把x分掉和y比较if(x>y)return cout<<x<<endl,void();//都选Aelse return cout<<m*y<<endl,void();//都选B}if(m==0){//只有无私的return cout<<max(n*y,x+(n-1)*y)<<endl,void();//要么都选y 要么一个人把x全拿了}else{//都有if(y){if(x<=y)return cout<<(n+m)*y<<endl,void();//y比x大,直接都选Belse{//x大 if(x>y*(n+1)){return cout<<n*y+x<<endl,void();}else{//部分无私的牛去分x, 让自私的都去选yint l=1,r=n;while (l<r){int mid=(l+r)>>1;if(mid*y>=x)r=mid;else l=mid+1;}if(l*y>=x)l--;return cout<<max(x+n*y,x+(n+m-l)*y)<<endl,void();}}}else{return cout<<x<<endl,void();//y是0 直接都选A}}
}

D dfs 优化

在这里插入图片描述
在这里插入图片描述
直接dfs会超时
因为求最大值,可以进行优化
最后求均价最大就是和最大,就是每个数尽量大,容易想到先把大的数乘/加进去,然后后面累加多次,让和最大

#include<bits/stdc++.h>
#define endl '\n'
#define forr(i,l,r) for(int i=l;i<=r;i++)
#define reforr(i,l,r) for(int i=r;i>=l;i--)
// #define int long long
using namespace std;
const int N=35;
// struct info{
//     char op;
//     double x;
// }a[N];
// int vis[N];
int n;
vector<double>a,p;
double ans;
//直接dfs
// void dfs(int sp,double vn,double sum){
//     if(sp>n){
//         ans=max(sum,ans);
//         // cout<<vn<<endl<<endl;
//         return;
//     }
//     forr(i,1,n){
//         if(vis[i]==0){
//             vis[i]=1;
//             double vnew=(a[i].op=='+'?vn+a[i].x:vn*a[i].x);
//             // cout<<a[i].op<<' '<<a[i].x<<endl;
//             dfs(sp+1,vnew,sum+vnew);
//             vis[i]=0;
//         }
//     }
// } TLE3
void dfs(int ai,int pi,double vn,double sum){if(ai==a.size()&&pi==p.size()){ans=max(sum,ans);return;}if(ai<a.size()){double vnew=vn+a[ai];dfs(ai+1,pi,vnew,sum+vnew);}if(pi<p.size()){double vnew=vn*p[pi];dfs(ai,pi+1,vnew,sum+vnew);}}
void solve()
{double v;cin>>n>>v;forr(i,1,n){string op;double x;cin>>op>>x;if(op=="+")a.push_back(x);else p.push_back(x);}//优化:最优情况一定是先加/乘大的再累乘后面小的sort(a.begin(),a.end(),greater<double>());sort(p.begin(),p.end(),greater<double>());// for(auto i:a)cout<<i<<' ';cout<<endl;// for(auto i:p)cout<<i<<' ';cout<<endl;ans=0;dfs(0,0,v,0);cout<<fixed<<setprecision(9)<<ans/(1.0*n)<<endl;
}signed main()
{ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);int t=1;// cin>>t;while(t--) solve();return 0;
}

E

在这里插入图片描述
在这里插入图片描述
没看懂dalao题解,学习中…


http://www.hkcw.cn/article/rxhqBJUFyN.shtml

相关文章

Linux详谈进程地址空间

目录 第一谈&#xff1a;简单了解 第二谈&#xff1a;与操作系统的联系 内核空间与用户空间 步骤1&#xff1a;用户态代码执行 步骤2&#xff1a;跳转到内核代码 步骤3&#xff1a;内核代码访问用户数据 步骤4&#xff1a;返回到用户态 对于操作系统的本质&#xff1a;…

RabbitMQ vs MQTT:深入比较与最新发展

RabbitMQ vs MQTT&#xff1a;深入比较与最新发展 引言 在消息队列和物联网&#xff08;IoT&#xff09;通信领域&#xff0c;RabbitMQ 和 MQTT 是两种备受瞩目的技术&#xff0c;各自针对不同的需求和场景提供了强大的解决方案。随着 2025 年的到来&#xff0c;这两项技术都…

【Dify学习笔记】:Dify离线安装插件教程

Dify离线安装插件教程 1.本地下载插件 插件点击详情页面&#xff0c;安装右边的下载按钮&#xff0c;下载到本地 2.dify插件打包工具 dify-plugin-repackaging 下载后&#xff0c;进入到工具所在目录dify-plugin-repackaging/ git clone https://github.com/junjiem/dif…

2025年全国青少年信息素养大赛 scratch图形化编程挑战赛 小高组初赛 内部模拟试卷解析

2025年信息素养大赛初赛scratch模拟题 博主推荐 所有考级比赛学习相关资料合集【推荐收藏】 scratch资料 Scratch3.0系列视频课程资料零基础学习scratch3.0【入门教学 免费】零基础学习scratch3.0【视频教程 114节 免费】 历届蓝桥杯scratch国赛真题解析历届蓝桥杯scratch…

eBest智能价格引擎系统 助力屈臣氏饮料落地「价格大脑」+「智慧通路」数字基建​

从价格策略到终端执行&#xff0c;数字化正在重构饮料行业竞争壁垒&#xff01; 近日&#xff0c;eBest为屈臣氏饮料提供的智能价格引擎系统已正式上线并投入运营。同时&#xff0c;基于eBest SFA方案且与屈臣氏饮料业务场景深度耦合的Smart Field Operation智慧通路项目正式启…

开发效率提升小技巧:快速提取图标资源的解决方案

在日常使用电脑的过程中&#xff0c;我们经常会遇到想要提取某个软件图标的情况&#xff0c;比如用于美化桌面、制作快捷方式&#xff0c;或者个人收藏等。这一款高效又实用的图标提取工具&#xff0c;帮助你轻松获取软件中的图标资源&#xff01; ResHacker 是一个绿色免安装…

keepalived定制日志bug

keepalived定制日志bug 源码安装apt安装endl 源码安装 在/etc/rsyslog.d/目录下创建 keepalived的日志配置文件keepalived.conf [rootubuntu24-13:~]# vim /etc/rsyslog.d/keepalived.conf [rootubuntu24-13:~]# cat /etc/rsyslog.d/keepalived.conf local6.* /var/log/keepa…

SpringCloud——Docker

1.命令解读 docker run -d 解释&#xff1a;创建并运行一个容器&#xff0c;-d则是让容器以后台进程运行 --name mysql 解释&#xff1a; 给容器起个名字叫mysql -p 3306:3306 解释&#xff1a;-p 宿主机端口:容器内端口&#xff0c;设置端口映射 注意&#xff1a; 1、…

2.测试项目启动和研读需求文档

软件质量需求 定义: 用于确定测试目标&#xff0c;反映用户对软件的要求分类依据: 分为功能和非功能两大类&#xff0c;其中非功能包含性能、界面等8个子类 软件质量需求的分类 功能需求: 软件能做什么的核心能力非功能需求: 性能&#xff1a;运行效率和资源占用界面&#xf…

在 Android 上备份短信:保护您的对话

尽管我们的Android手机有足够的存储空间来存储无数的短信&#xff0c;但由于设备故障、意外删除或其他意外原因&#xff0c;您可能会丢失重要的对话。幸运的是&#xff0c;我们找到了 5 种有效的 Android SMS 备份解决方案&#xff0c;确保您的数字聊天和信息保持安全且可访问。…

02业务流程的定义

1.要想用好业务流程&#xff0c;首先必须得了解流程与认识流程&#xff0c;什么是业务流程。在认识流程之前&#xff0c;首先要理清两个基本概念&#xff0c;业务和流程。 业务指的是&#xff1a;个人的或者摸个机构的专业工作。流程&#xff0c;原本指的是水的路程&#xff0…

PHP7+MySQL5.6 查立得源码授权系统DNS验证版

# PHP7MySQL5.6 查立得源码授权系统DNS验证版 ## 一、系统概述 本系统是一个基于PHP7和MySQL5.6的源码授权系统&#xff0c;使用DNS TXT记录验证域名所有权&#xff0c;实现对软件源码的授权保护。 系统支持多版本管理&#xff0c;可以灵活配置不同版本的价格和下载路径&#…

vue+threeJs 绘制3D圆形

嗨&#xff0c;我是小路。今天主要和大家分享的主题是“vuethreeJs 绘制圆形”。 今天找到一个用three.js绘制图形的项目&#xff0c;主要是用来绘制各种形状。 项目案例示意图 1.THREE.ShapeGeometry 定义&#xff1a;是 Three.js 中用于从 2D 路径形状&#xff08…

vue+threeJs 生成一个圆柱体

嗨&#xff0c;我是小路。今天主要和大家分享的主题是“vuethreeJs 生成一个圆柱体”。 案例示例图 1.CylinderGeometry 定义&#xff1a;创造一个圆柱体。 属性列表列表说明 radiusTop 顶部半径 radiusBottom 底部半径 height 高 radialSegments 横向分段&#xff…

VUE中created() 和 mounted()俩种生命周期钩子函数的区别

在 Vue.js 中&#xff0c;created() 和 mounted() 是两个关键的生命周期钩子函数&#xff0c;它们的主要区别在于​​调用时机​​和​​可访问的实例属性​​&#xff1a; 调用时机 ​​created()​​ 在 Vue 实例创建完成后立即调用&#xff08;​​数据初始化完成&#xff…

ASP.NET MVC添加模型示例

ASP.NET MVC高效构建Web应用ASP.NET MVC 我们总在谈“模型”&#xff0c;那到底什么是模型&#xff1f;简单说来&#xff0c;模型就是当我们使用软件去解决真实世界中各种实际问题的时候&#xff0c;对那些我们关心的实际事物的抽象和简化。比如&#xff0c;我们在软件系统中设…

【免费赠书8本】《扣子开发AI Agent智能体应用》

【图书介绍】《扣子开发AI Agent智能体应用》-CSDN博客 博主免费赠书《扣子开发AI Agent智能体应用》8本。 想要赠书的朋友&#xff0c;请在本文后面加评论&#xff0c;要求赠书。 收到赠书后&#xff0c;受赠书的朋友&#xff0c;两周内在CSDN博客上发一遍博文&#xff0c;…

stm32无刷电机控制_滑膜观测器更改电机如何调整?

这个教程是针对KY_Motor的无刷电机开发板&#xff0c;滑膜观测器反正切的补充教程&#xff0c;大家比较关注现有的程序如何适配到自己的电机上&#xff0c;因此我们团队推出了如下教程&#xff0c;让大家在学习的过程中有迹可循。 开发板链接&#xff1a;开发板 1. 电机电气参…

Vad-R1:通过从感知到认知的思维链进行视频异常推理

文章目录 速览摘要1 引言2 相关工作视频异常检测与数据集视频多模态大语言模型具备推理能力的多模态大语言模型 3 方法&#xff1a;Vad-R13.1 从感知到认知的思维链&#xff08;Perception-to-Cognition Chain-of-Thought&#xff09;3.2 数据集&#xff1a;Vad-Reasoning3.3 A…

【Doris基础】Doris中的Tablet详解:核心存储单元的设计与实现

目录 1 Tablet基础概念 1.1 什么是Tablet 1.2 Tablet的核心特性 1.3 Tablet与相关概念的关系 2 Tablet的架构设计 2.1 Tablet的整体架构 2.2 Tablet的存储结构 3 Tablet的生命周期管理 3.1 Tablet的创建流程 3.2 Tablet的数据写入流程 3.3 Tablet的压缩与合并 4 Ta…