当前位置: 首页 > news >正文

2023年河南CCPC->F题

这是一道有关于滑动窗口的题目

题目链接:https://codeforces.com/gym/104354/attachments

 对于这道题可以用两种方法(实则是一种)

1-小根堆中存每两个元素的差值,然后用窗口去滑每一个子区间,遍历找出最小答案

#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define PII pair<int,int>
#define fi first
#define se second
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
const int N =5e5+10; 
int a[N];
priority_queue<PII,vector<PII>,greater<PII>> q;void solve()
{int n,k;cin>>n>>k;for(int i=1;i<=n;i++)cin>>a[i];sort(a+1,a+1+n);for(int i=2;i<=k;i++) q.push({a[i]-a[i-1],i});int ans=1e18;for(int i=k;i<=n;i++){q.push({a[i]-a[i-1],i});while(!q.empty()&&i-k+1>q.top().se)//如果i-k>q.top.se了说明当前的窗口已经不包含这两个元素了{q.pop();}ans = min(ans,q.top().fi*(a[i]-a[i-k+1]));}cout<<ans<<endl;
}
signed main()
{IOSint T=1;
//	cin>>T;while(T--) solve(); return 0;
} 

2-小根堆中用于存放当前包含a[i]和a[i-1]的窗口,然后遍历每一个差值,找出包含这两个元素的窗口的max的最小值

#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define PII pair<int,int>
#define fi first
#define se second
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
const int N =5e5+10; 
int a[N];
priority_queue<PII,vector<PII>,greater<PII>> q;void solve()
{int n,k;cin>>n>>k;for(int i=1;i<=n;i++){cin>>a[i];}sort(a+1,a+1+n);PII mx; mx.fi = a[k]-a[1];mx.se =1;int mi = a[2]-a[1];int ans = mi*mx.fi;q.push(mx);for(int i=2;i<=n;i++){int l = q.top().se;while(!q.empty()&&l+k-1<i){q.pop();l = q.top().se;}mx = q.top();mi = a[i]-a[i-1];ans = min(ans,mx.fi*mi);int x;if(i+k-1<=n) x = a[i+k-1]-a[i];else x = a[n]-a[n-k+1];q.push({x,i});}cout<<ans<<endl;
}
signed main()
{IOSint T=1;
//	cin>>T;while(T--) solve(); return 0;
} 

相关文章:

  • 《Python星球日记》 第81天:回看图像生成与风格迁移
  • 第一个优化
  • 2025年5月15日
  • 策略模式-枚举实现
  • 【蓝桥杯嵌入式】【模块】四、按键相关配置及代码模板
  • (6)python开发经验
  • CSRF攻击 + 观测iframe加载时间利用时间响应差异侧信道攻击 -- reelfreaks DefCamp 2024
  • MySQL数据类型之VARCHAR和CHAR使用详解
  • 湖北理元理律师事务所:债务优化如何实现“减负不降质”?
  • fscanf 读取问题指南
  • 【递归、搜索和回溯】穷举vs暴搜vs深搜vs回溯vs剪枝
  • (独家)SAP CO模块中 销售发票对应的Cost Document中的PSG对象是什么东东??
  • 网站漏洞存在哪些危害,该如何做好预防?
  • SQL练习——day01
  • 告别碎片化!MCP 带来 AI Agent 开发生态的革命性突破
  • Makefile 详解
  • 电商热销榜的5种实现方案
  • 平替BioLegend品牌-Elabscience PE/Cyanine5.5标记CD11b抗体,高性价比解决方案!
  • MySQL 8.0 OCP 1Z0-908 题目解析(4)
  • 2025 OceanBase 开发者大会全议程指南
  • 最高检公布一起离婚纠纷典型案例:推动离婚经济补偿制度落实
  • 韧性十足的中国外贸企业:“不倒翁”被摁下去,还会再弹起来
  • 董军在第六届联合国维和部长级会议上作大会发言
  • 中科飞测将投资超10亿元,在上海张江成立第二总部
  • “典孝急乐批麻蚌赢”:互联网“八字真言”与当代赛博赢学
  • 美政府以拨款为要挟胁迫各州服从移民政策,20个州联合起诉