周报1.0

embedded/2025/2/10 21:39:42/

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

牛客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/embedded/161173.html

相关文章

百度的冰桶算法

百度的冰桶算法&#xff08;Ice Bucket Algorithm&#xff09;是百度搜索引擎用于打击低质量内容的一种算法。该算法主要针对那些通过大量堆砌关键词、内容质量低下、用户体验差的网页进行惩罚&#xff0c;从而提升搜索结果的质量。 冰桶算法的核心目标&#xff1a; 打击低质…

使用PyCharm进行Django项目开发环境搭建

如果在PyCharm中创建Django项目 1. 打开PyCharm&#xff0c;选择新建项目 2.左侧选择Django&#xff0c;并设置项目名称 3.查看项目解释器初始配置 4.新建应用程序 执行以下操作之一&#xff1a; 转到工具| 运行manage.py任务或按CtrlAltR 在打开的manage.pystartapp控制台…

大模型Prompt 提示词攻击,大语言模型安全的潜在威胁

一、简介 Prompt 提示词作为人和大语言模型交互的媒介&#xff0c;被不断提起。提示词攻击是一种新型的攻击方式&#xff0c;包括提示词注入、提示词泄露和提示词越狱。这些攻击方式可能会导致模型生成不适当的内容&#xff0c;泄露敏感信息等。Prompt的构建使得预训练大模型能…

3步打造C# API安全密盾

引言&#xff1a;API 安全的重要性 在数字化浪潮中&#xff0c;应用程序编程接口&#xff08;API&#xff09;已成为不同软件系统之间通信和数据交互的关键桥梁。无论是企业内部的微服务架构&#xff0c;还是面向外部用户的在线服务&#xff0c;API 都承担着数据传输和业务逻辑…

【后端开发】系统设计101——Devops,Git与CICD,云服务与云原生,Linux,安全性,案例研究(30张图详解)

【后端开发】系统设计101——Devops&#xff0c;Git与CICD&#xff0c;云服务与云原生&#xff0c;Linux&#xff0c;安全性&#xff0c;案例研究&#xff08;30张图详解&#xff09; 文章目录 1、DevopsDevOps与SRE与平台工程的区别是什么&#xff1f;什么是k8s&#xff08;Ku…

graylog初体验

最近graylog比较火&#xff0c;部署了一个来测试下&#xff0c;看下后续能不能代替目前占用资源比较多的elk&#xff0c;目前未对graylog性能进行深入测试&#xff0c;只是简单体验了下&#xff0c;graylog的UI比较简陋&#xff0c;但是在报警以及权限方面优于ELK&#xff0c;整…

Springboot原理(面试高频)

目录 一、 配置优先级 ​编辑 二、Bean管理 ​​​​​​​2.1&#xff1a;获取Bean ​编辑 ​​​​​​​2.2&#xff1a;Bean作用域 ​​​​​​​​​​​​​​2.3&#xff1a;第三方Bean 三、Springboot底层原理 3.1&#xff1a;起步依赖 3.1.1&#xff1a;ma…

使用Jenkins实现鸿蒙HAR应用的自动化构建打包

使用Jenkins实现鸿蒙HAR应用的自动化构建打包 在软件开发领域&#xff0c;自动化构建是提高开发效率和确保代码质量的重要手段。特别是在鸿蒙&#xff08;OpenHarmony&#xff09;应用开发中&#xff0c;自动化构建更是不可或缺。本文将详细介绍如何使用Jenkins命令行工具实现…