Codeforces#642 (Div. 3) D. Constructing the Array

FPGA新手必看:XC7Z020最小系统搭建全攻略(附原理图解析) 本文为FPGA新手提供了XC7Z020最小系统搭建的完整实战指南。文章详细解析了电源架构、时钟复位、配置调试等关键硬件电路设计,并重点剖析了外围电路与端口引脚的连接要点及常见陷阱,帮助读者从零开始构建稳定可靠的开发平台。 阅读详情

题目链接

题意:

给一个长度为n的空序列,然后往里面填1-n的数字;

int cnt=1;
找序列中最长(如果多个最长则取最左边的序列)的连续全空区间:并且赋值cnt++;循环这个操作n次:

eg:
Consider the array a of length 5 (initially a=[0,0,0,0,0]). Then it changes as follows:

Firstly, we choose the segment [1;5] and assign a[3]:=1, so a becomes [0,0,1,0,0];
then we choose the segment [1;2] and assign a[1]:=2, so a becomes [2,0,1,0,0];
then we choose the segment [4;5] and assign a[4]:=3, so a becomes [2,0,1,3,0];
then we choose the segment [2;2] and assign a[2]:=4, so a becomes [2,4,1,3,0];
and at last we choose the segment [5;5] and assign a[5]:=5, so a becomes [2,4,1,3,5].

分析:

一开始做法是开两个queue,算是一个贪心做法,但是发现难以处理不同批次的同长度区间;于是想到了优先队列写法

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <climits>
#include <queue>
#include <stack>
#include <map>
//
using namespace std;
const int INF = 0x3f3f3f3f;//1.06e9大小
const int mod1 = 1e9 + 7;
const int mod2 = 998244353;
const int mod3 = 1e9;
const double PI = 3.14159265;
const double eps =1e-10;
typedef unsigned long long ULL;
typedef long long LL;
#define debug printf("**debug**\n")
#define ms(x, n) memset(x,n,sizeof(x))
/*
*/
struct node
{
	int l,r;
	int w;
	bool operator < (const node a) const
	{
		if(w==a.w)
			return l>a.l;
		return w<a.w;
	}
};
int a[200001];
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
		int n;
		cin>>n;
		priority_queue<node>q;
		q.push({1,n,n-1+1});
		int cnt=1;
		while(!q.empty())
		{
			auto t=q.top();
			q.pop();
			int l=t.l,r=t.r;
			if((r-l+1)%2)
			{
				a[(l+r)/2]=cnt++;
				if(l<(l+r)/2)q.push({l,(l+r)/2-1,((l+r)/2-l)});
				if(r>(l+r)/2)q.push({(l+r)/2+1,r,(r-(l+r)/2)});
			}
			else
			{
				a[(l+r-1)/2]=cnt++;
				if(l<(l+r-1)/2)q.push({l,(l+r-1)/2-1,((l+r-1)/2-l)});
				if(r>(l+r-1)/2)q.push({(l+r-1)/2+1,r,r-(l+r-1)/2});
			}
		}
		for(int i=1;i<=n;i++)
		{
			printf("%d ",a[i]);
		}
		printf("\n");
	}
	return 0;
}

对于优先队列维护结构体的数值的时候,我们写法也会像sort(from,to,cmp)的cmp重载一样:

struct node
{
	int l,r;
	int w;
	bool operator < (const node a) const
	{
		if(w==a.w)
			return l>a.l;
		return w<a.w;
	}
};

用{内容}重载运算符‘<‘;

这个写法因为右边是堆顶 (队列首), 又是大根堆,于是<,然后用{比较内容}重载这个运算符;

通俗傻瓜式理清光栅化渲染和光线追踪渲染的原理 用通俗语言傻瓜式的讲清楚光栅渲染和光线追踪渲染的原理,方便没有相关理论基础的朋友理解入门。 阅读详情

相关推荐

终端效率神器:Tmux 安装与使用全指南

终端效率神器:Tmux 安装与使用全指南

身在被窝_心在编程 1360

2020.11.27哈尔滨理工大学软件与微电子学院程序设计竞赛(同步赛)

A 抗疫必胜1 水题 不解释 #include<bits/stdc++.h> using namespace std; int main() { cout<<"V"<<" "<<"V"<<endl; cout<<" "<<"V"<<" "<<"V"<<endl; cout<<" "<<"V"<<" "<<"

Suryxin's blogs 753

Synares病毒实战:如何从U盘感染中恢复你的Excel和EXE文件(附专杀工具推荐)

本文详细介绍了Synares感染型病毒的典型特征与传播机制,特别是其通过U盘感染Excel和EXE文件的行为。文章提供了一套从应急隔离、诊断到使用专杀工具进行深度清除与文件恢复的完整实战流程,并推荐了有效的安全软件和修复方法,旨在帮助用户最大程度救回重要数据并构建长效安全防护习惯。

weixin_29230649的博客 1823

CodeForces #642 题解

CodeForces #642 D. Constructing the Array【优先队列】 题目 给出一个长为nnn的全0字符串,要进行nnn次操作,第iii次操作规则如下: 在当前字符串中找到一个最长且全为0的子串,如果存在多个,选择最左边的一个; 赋值:s[l+r2]=is[\frac{l+r}{2}]=is[2l+r​]=i 求出nnn次操作后得到的字符串 题解 本题中,用结点node表示一段全为0的子串,包括其左边界、有边界和长度 struct node { int l, r, len;

SHUlpt的博客 342

基于ESP32-WROOM的智能蓝牙电压电流监测与远程控制系统设计

本文介绍了基于ESP32-WROOM的智能蓝牙电压电流监测与远程控制系统设计。该系统集成了INA219传感器和OLED显示屏,通过蓝牙实现无线数据传输和远程控制,适用于智能家居能耗监控和工业设备管理,具有成本低、精度高、功耗优化等优点。

qsc901234的博客 203

全桥LLC谐振变换器变频控制工作原理与仿真

全桥LLC谐振变换器以其效率高、全范围软开关、器件电应力小等优点,越来越多地应用于大功率场合。电力电子技术的发展日益追求高频化,所带来的问题是半导体开关器件高频运行时的开关损耗急剧增加。各种软开关电路随之出现。可以有效减小开关损耗,使进一步提高开关频率成为可能。谐振式开关因其可在电流自然过零点开通半导体器件,实现零电压开关,特别适合采用MOSFET作开关的装置。最简单的谐振电路有串联谐振(SRC)和并联谐振(PRC)。SRC只能工作于降压状态,应用受限;

晞子的技术札记 3074

Codeforces Round #642 (Div. 3) 总结

CodeforcesCodeforcesCodeforces RoundRoundRound #642 (Div.3)\#642\:(Div. 3)#642(Div.3) 总结 这是我在CodeforcesCodeforcesCodeforces上第一次比赛,比的还可以,原因是这是Div.3Div.3Div.3。 我在600600600分里拿了300300300分。 排名分数如下: 第一题:MostMostMost UnstableUnstableUnstable ArrayArrayArray 题目大

linweitong2020的博客 251

PCB激光直接成像(LDI)设备技术解析与优化方案

激光直接成像(LDI)是PCB制造中的关键数字化工艺,通过激光束直接在基板上形成电路图案。其核心技术在于高精度光学系统与智能控制算法的结合,工作精度可达微米级。在HDI板、柔性电路等高端PCB制造中,LDI技术能显著提升线宽精度和层间对位准确性。当前行业面临材料适配性、热变形控制等挑战,动态能量补偿、多波长曝光等创新方案正在突破这些瓶颈。随着模块化设计、预测性维护等工程实践的普及,LDI设备综合效率持续提升,为5G、汽车电子等领域的精密电路生产提供关键技术支撑。

weixin_29168393的博客 393

Codeforces Round #642 (Div. 3)总结 (D. Constructing the Array)

好久没写过博客了,随便写一篇…… 鉴于这场ABC都是水题就不贴了,就讲一下D题吧 (我才不会说后面的我懒得看了) 因为我写完这篇blog还没结束比赛,所以我刚刚跑去看了最后两题,嗯,不会 原题 题目大意 1、选一段最长并且最左的全为零的连续子串; 2、把该字串中间设为iii。 例子的话看图吧…… ps:该答案存在并唯一 题目分析 这是个模拟题,第一眼看感觉很像快排那种分治思想,所以一开始拿了个队来做,结果发现这样做做不到最左边,之前发现不会STL库太坑了,学了一下优先队列,然后就拿了刚学的优先队列试试手。

juseice的博客 457

海思方案定制hi3531dv200/SS528 DVR方案解析:从硬件选型到编解码实战应用

海思方案,Hi3518EV100,Hi3518CV100,Hi3515CV100,Hi3516CV100,Hi3516ECV100,Hi3516D,Hi3516A,Hi3519,Hi3520D,Hi3521A,Hi3535,Hi3531,Hi3536,Hi3536C,Hi3536D,Hi3518EV200,Hi3518EV201,Hi3520DV200,Hi3516CV200,Hi3516CV300,Hi3516AV200,Hi3520DV300,Hi3519V101,sd3403,hi3519av200

1585

SAPGUI 与 ADT 的时代分野:在多云架构下,谁还能代表现代 SAP 开发

摘要(149字) SAP开发工具正经历代际更迭:SAPGUI基于专有协议(NI/DIAG)的厚客户端架构难以适配多云环境,而ADT(ABAP Development Tools)通过HTTP(S)协议和Eclipse生态成为ABAP Cloud/RAP开发的唯一入口。关键差异体现在:ADT支持CDS、行为定义等云原生对象建模,天然对齐BTP的零信任网络;集成ATC、Git等DevOps工具链;而SAPGUI无法创建RAP核心对象,在跨平台、自动化方面存在硬限制。官方文档明确将ADT作为Clean Core战

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 391

Codeforces Round #642 (Div. 3)D. Constructing the Array(广度优先搜索)

原题链接 题意: 给你一个长度为n的数组a初始元素全为0,每次把含0最多的子序列的中间元素设为当前的操作次数,输出最后不含0的a数组内所有元素。 思路: 一开始看到就感觉和归并排序和快速排序的写法差不多,分区间去弄。就写了以下发现深搜没写出来,没法区分区间内0的个数。既然深搜不行,另一个搜索就是广搜了,普通的队列是不行的,因为这里是先对含0最多并且靠左边的区间操作。那么就用优先队列定义以下优先级就可以了。比赛的时候没写错了很可惜。。 代码: #include<bits/stdc++.h> us.

amazingee的博客 1655

地下管网巡检机器人:基于YOLOv8与UI界面的智能化系统设计与实现

通过YOLOv8模型的目标检测功能结合实时视频流,我们能够实现对地下管网巡检机器人的智能化控制。系统通过图像识别技术帮助巡检人员快速识别管道中的各种缺陷和障碍物,从而提高巡检效率和准确性。未来,我们可以继续优化模型,增加更多的目标类别,并通过强化学习等方法提高机器人的自主巡检能力。此外,随着硬件技术的发展,未来的巡检机器人可能会具备更强的感知能力和更高的智能水平。

YOLO 531

Codeforces #642 div3 B

Codeforces 642 div3 B 原题链接 思路:把a顺序排,b逆序排 ACcodes: #include <bits/stdc++.h> using namespace std; const int N = 2e5+10; long long inf = 0x3f3f3f3f3f3f3f3f; int test = 1; int n,k,a[50],b[50]; int main() { scanf("%d",&test); while(test--) { int

Jeremy写字的地方 348

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Codeforces Round #642 (Div. 3)(A-E题解)

这场虽然只写了4题但是打的还是比较舒服的,除了T2粗心WA一发,其他都是一次AC还是比较舒服,开局也不错,20分钟切了两题。 题目大意: 要你构造一个长度为nnn的数组,使得它们的和等于mmm,并且要你最大化∑i=0i=n−1∣a[i]−a[i+1]∣\sum_{i=0}^{i=n-1}|a[i]-a[i+1]|i=0∑i=n−1​∣a[i]−a[i+1]∣ 思路:很显然的一个题。分类讨论一下。 n=1n=1n=1:直接输出0即可。 n=2n=2n=2:输出mmm即可。 n>=3n>=3n&

weixin_43736492的博客 333

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Codeforces Round #642 (Div. 3) A-E详细题解

A. Most Unstable Array     题意:给出n,m。 n表示有n个数,m表示这n个数的总和。每个数都是正整数。 现在你可以随便把m拆成n个数,要保证拆完后的序列,相邻差的绝对值和要最大。 解:      首先特判 n=1 ,答案一定为0,只有一个数嘛。n=2 的时候,2个数,答案要最大,一定是[m,0].这样绝对值差是m,即最大值。 当n>=3时 ,我们可以发现, [0,m,0]这样去构造,答案是2

weixin_43913594的博客 273

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Codeforces Round #634 (Div. 3) F. Robots on a Grid(倍增+模拟)

题目链接 题意:给出一个 n×m 的网格,每个格子有颜色,0 黑 1 白,每个格子还有一个方向,表示这个格子上的机器人会向那个方向走,并保证不会走出格子 摆放机器人,它们同时开始运动,在任意时刻不能有两个机器人在同一个格子里 先最大化机器人个数,如果多种方案机器人个数相等,再最大化摆在黑格子里的机器人数量 思路:如果两个机器人在相同步数内碰到一起,那么他们最终的路径也会相同,所以我们判断的条件...

qq_42479630的博客 259

codeforces Round #642 div.3 D. Constructing the Array

D. Constructing the Arraytime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given an array aa of length nn consisting of zeros. You perform nn actions with this array: during the ii-th action, the f

Think_kill的博客 528

Codeforces Round #642 (Div. 3)

上蓝场,纪念一下 A. Most Unstable Array 题意:构造一个长为n,和为m的数组,使得相邻差的绝对值之和sum最大 分析: 当n=1时,sum只能为0 当n=2时,放0和m,sum=m 否则,m放任意非首尾位置,sum等于2m Code: #include <bits/stdc++.h> using namespace std; #define ll long long #define pii pair<int, int> #define mem(a, b) mem

Crush_Z 203

Codeforces Round #642 (Div. 3) 题解

传送门 A. Most Unstable Array 代码: #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<queue> #include<vector> #include<string> using namespace std; const int INF = 0x3f3f3f3f; int.

forOnward的博客 468

Codeforces Round #642 (Div. 3) B. Two Arrays And Swaps

原题:https://codeforces.com/contest/1353/problem/B 题意:t组案例,n为数组a,b大小,k为可交换次数,求经过k次交换后,数组a的和值的最大值 思路:sort排序,a升序,b降序,从头开始比较k次,a比b大就交换,在求和。 #include <bits/stdc++.h> using namespace std; int t,n,k,a[40],b[40],sum; bool cmp(int a,int b) { return a>b

qq1476318201的博客 217

Codeforces #642(div3) [C. Board Moves]

原题链接:https://codeforces.com/contest/1353/problem/C 题意 给你一个大小为n*n的板,其中n为奇数。最初,板上的每个单元都有一个数据. 一次移动中,你可以将单元(i,j)中的数据转移到以下单元中: (i−1,j−1); (i−1,j); (i−1,j+1); (i,j−1); (i,j+1); (i+1,j−1); (i+1,j); (i+1,j+1); 同时,你的数据只能在n*n的板内移动,一个单元也可以储存多个数据. 现在需要你求出,最少经过多少.

CofDoria的博客 304

Codeforces-#642 A-E

codeforces #642 Div3A. Most Unstable ArrayB. Two Arrays And SwapsC. Board MovesD. Constructing the ArrayE. K-periodic Garland A. Most Unstable Array 题意:给你一个n和m,n是数组的大小,m是数组所有元素的和,然后让你自定义数组使得 ∑i=1n−1∣ai−ai+1∣\displaystyle\sum_{i=1}^{n-1} |ai−ai+1|i=1∑n−1​∣a

Evilsong7 的博客 361

Codeforces Round #642 (Div. 3) D

Codeforces Round #642 (Div. 3) D 优先队列的数据结构题 –>Link Constructing the Array 题意:给你一个全是0的数列长度,求以以下规则变换后的数列 优先取最长连续0子串,长度相等取左、 第n次操作时,把这个子串以给定方法取Mid,把数列的下标为Mid的值变成n。 思路:我本来想,有没有贪心的方法去解,然而越想越像bfs,然后就bfs了。yysy,优先队列写得少,学了一些建设性的写法,码一下 #include<cassert&gt

m0_46432258的博客 203

Codeforces Round #642 (Div. 3)------题目+题解+代码(A、B、C、D)

文章目录A. Most Unstable ArrayB. Two Arrays And SwapsC. Board MovesD. Constructing the Array A. Most Unstable Array 来源:http://codeforces.com/contest/1353/problem/A You are given two integers n and m. You have to construct the array a of length n consisting of

SDAU_LGX的博客 993
上一篇: 东北林业大NEFU 五一欢乐水题 F&H题解
下一篇: 板子库:单调队列实现的一维滑动窗口(模板题)
DevourPower
博客等级 码龄7年 52粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值