周报1.0

news/2025/2/10 23:27:20/

补题补题(/// ̄皿 ̄)○~

牛客1(4):ABDG

E:双生双宿之错:
小红定义一个数组是“双生数组”,当且仅当该数组大小为偶数,数组的元素种类恰好为 2种,且这两种元素的出现次数相同。例如{1,1,4,4,1,4} 是双生数组。
现在小红拿到了一个长度为偶数的数组,她可以进行若干次操作,每次操作将选择一个元素,使其加 1 或者减 1。小红希望你计算将该数组变成双生数组的最小操作次数。

找一个合理的平均值就行,注意左右两边的平均值相同就加1或减1

#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[100005];
map<int,int>mp;
void solve(){mp.clear();int n;cin>>n;if(n==2){int x,y;cin>>x>>y;if(x==y)cout<<1<<endl;else cout<<0<<endl;return ;}for(int i=1;i<=n;i++){cin>>a[i];mp[a[i]]=1;}sort(a+1,a+1+n);int lmid=(n+3)/4;//找左半边的平均值int rmid=(n+1)/2+(n+3)/4;//找右半变的平均值的下标int ans=0;for(int i=1;i<=n/2;i++){ans+=abs(a[lmid]-a[i]);}int h=0;for(int i=(n/2)+1;i<=n;i++){ans+=abs(a[rmid]-a[i]);}//cout<<a[lmid]<<" "<<a[rmid]<<endl;//   cout<<h<<" "<<a[lmid]<<" "<<a[rmid]<<" "<<a[rmid+1]<<endl;if(a[rmid]==a[lmid]){//如果左边平均值下标对应的值等于右边平均值下标对应的值//就说明他们会变成一样的数,那么需要将两外一边全部加1就行int x=0,y=0;ans+=n/2;int num=0;for(int i=1;i<=n;i++){if(a[rmid]+1<=a[i])num++;//原先比他大的数经过减法变成平均数现在需要比平均数大说明减多了,加回来就行}x=num*2;num=0;for(int i=1;i<=n;i++){if(a[rmid]-1>=a[i])num++;}y=num*2;ans-=max(x,y);}cout<<ans<<endl;return ;
}
signed main(){int t;cin>>t;while(t--){solve();}return 0;
}

 H:井然有序之窗
小红希望你构造一个长度为 n 的排列,需要满足第 iii 个元素的范围在 [li,ri]范围内。你能帮帮她吗?长度为 n排列是由 1∼n这 n个整数、按任意顺序组成的数组,其中每个整数恰好出现一次。例如,{2,3,1,5,4} 是一个长度为 5的排列,而{1,2,2} 和 {1,3,4}\{1,3,4} 都不是排列,因为前者存在重复元素,后者包含了超出范围的数。

从左端点开始依次放入,右端点越近的先输出

#include<bits/stdc++.h>
using namespace std;
#define int long long
vector<pair<int,int>>a[100005];
int res[100005];
signed main(){int n;cin>>n;priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>>q;for(int i=1;i<=n;i++){int l,r;cin>>l>>r;a[l].push_back({r,i});}for(int i=1;i<=n;i++){while(!a[i].empty()){q.push({a[i].back()});a[i].pop_back();}if(q.empty()||(!q.empty()&&q.top().first<i)){cout<<"-1"<<endl;return 0;}else{res[q.top().second]=i;q.pop();}}for(int i=1;i<=n;i++){cout<<res[i]<<" ";}return 0;
}

 M:数值膨胀之美

定义一个数组的极差为:数组的元素最大值减去最小值。小红拿到了一个数组,她准备进行恰好一次操作:选择一个非空区间,将其中所有元素都乘以 2.小红希望最小化数组的极差,你能帮帮她吗?

写这题思想好乱,写不清楚😵

#include<bits/stdc++.h>
using namespace std;
#define int long long
pair<int,int>a[202020];
int b[202020];
signed main(){int n,i;cin>>n;for(i=0;i<n;i++){cin>>a[i].first,a[i].second=i;b[i]=a[i].first;}a[n].first=2e9;sort(a,a+n);int l=a[0].second,r=a[0].second;//排序后的数组//假设 1 1 2 2 3 4 5int ma=max(a[0].first*2,a[n-1].first);//一开始的最大值有两种可能//第一种是最小值的两倍或者是最大值本身int res=ma-min(a[0].first*2,a[1].first);//最小值可能是最小值的两倍或则次小值for(i=1;i<n;i++){//将第i个数字最为最小值左右两边扩展看看最大值是谁while(a[i].second<l){l--;ma=max(ma,b[l]*2);}while(a[i].second>r){r++;ma=max(ma,b[r]*2);}res=min(res,ma-min(a[0].first*2,a[i+1].first));}cout<<res;
}


http://www.ppmy.cn/news/1570992.html

相关文章

【JavaEE】Spring Web MVC

目录 一、Spring Web MVC简介 1.1 MVC简介1.2 Spring MVC1.3 RequestMapping注解1.3.1 使用1.3.2 RequestMapping的请求设置 1.3.2.1 方法11.3.2.2 方法2 二、Postman介绍 2.1 创建请求2.2 界面如下&#xff1a;2.3 传参介绍 一、Spring Web MVC简介 官方文档介绍&#xff…

从 SQL 语句到数据库操作

1. SQL 语句分类 数据定义语言 DDL &#xff1a; 用于定义或修改数据库中的结构&#xff0c;如&#xff1a;创建、修改、删除数据库对象。create、drop alter 数据操作语言 DML &#xff1a; 用于添加、删除、更新数据库中的数据。select、insert alter、drop 数据控制语言 D…

MySQL 8.0.41 终端修改root密码

1.在 MySQL 命令行中&#xff0c;运行以下命令修改密码 ALTER USER rootlocalhost IDENTIFIED BY new_password; 其中&#xff0c;new_password替换为你想要设置的新密码 2.退出 MySQL终端&#xff0c;重新打开&#xff0c;使用新密码进入&#xff0c;修改成功

论文浅尝 | CogMG:大语言模型与知识图谱的协同增强(ACL2024)

笔记整理&#xff1a;杜超超&#xff0c;天津大学硕士&#xff0c;研究方向为自然语言处理、大语言模型 论文链接&#xff1a;https://aclanthology.org/2024.acl-demos.35.pdf 发表会议&#xff1a;ACL 2024 1. 动机 大语言模型&#xff08;LLMs&#xff09;在问答任务中已经被…

node.js使用mysql2对接数据库

一、引言 在现代Web开发中&#xff0c;Node.js作为一种高效、轻量级的JavaScript运行时环境&#xff0c;已经广泛应用于后端服务的开发中。而MySQL&#xff0c;作为一个广泛使用的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;提供了强大的数据存储和查询功能…

[免费]微信小程序智能商城系统(uniapp+Springboot后端+vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序智能商城系统(uniappSpringboot后端vue管理端)&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序智能商城系统(uniappSpringboot后端vue管理端) Java毕业设计_哔哩哔哩_bilibili 项目介绍…

Python基础语法精要

文章目录 一、Python的起源二、Python的用途三、Python的优缺点优点缺点 四、基础语法&#xff08;1&#xff09;常量和表达式&#xff08;2&#xff09;变量变量的语法&#xff08;i&#xff09;定义变量&#xff08;ii&#xff09;变量命名的规则 &#xff08;3&#xff09;变…

网络安全—DDoS攻防

背景简述&#xff1a;DDoS攻击分为很多类型&#xff0c;有消耗网络带宽的流量攻击&#xff0c;有消耗服务器资源的应用层攻击等。影响巨大&#xff0c;且让无论大公司还是小公司都肃然“起敬”的当属&#xff1a;流量攻击。在流量越来越廉价的今天&#xff0c;攻击流量小则几百…