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

Unity Tilemap瓦片动态缩放:保持网格尺寸不变的三种实现方案 本文详细探讨了在Unity中实现Tilemap瓦片动态缩放同时保持网格尺寸不变的三种核心方案。针对编辑器静态调整、整体风格化处理及运行时动态控制等不同场景,分别解析了直接修改瓦片属性、调整Tilemap Renderer材质参数以及使用SetTransformMatrix与Matrix4x4矩阵变换的实践方法、优缺点及选型指南,为2D游戏开发提供灵活高效的视觉与交互解决方案。 阅读详情

题目链接

题意:

给一个长度为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;
	}
};

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

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

深度解析:C# Modbus TCP协议解析与异常处理(工控上位机必备) 协议解析要精准:掌握MBAP头和PDU的结构,尤其是常用功能码的请求/响应格式,避免因字节处理错误导致通信失败;异常处理要全面:覆盖通信层、协议层、数据层的所有异常类型,针对工业场景制定重试、重连、滤波等策略;资源管理要规范:使用释放资源,采用连接池复用连接,避免端口泄露;工业场景要适配:结合工控现场的特点(网络波动、电磁干扰、设备忙),优化通信效率和数据处理逻辑。通过以上解析和策略,可确保C#上位机与工业设备的Modbus TCP通信具备高稳定性、高可靠性、高容错性,满足工控领域的严苛要求。 阅读详情

相关推荐

解决Calibre中license的错误

本次解决了Calibre在Cadence 617 virtuoso版本中运行不了的错误,在遇到问题的时候,我也跟你们一样,首先是上网查询为什么运行不了呢?明明我安装了之后里面有Calibre的,我当时也是这样的疑惑,一点Calibre运行LVS的时候,一片空白,然后就出现了license的错误,后来点点点,看看看,搜搜搜,最终解决了这个问题。虚拟机是VMware16版本,cadence617,Calibre是2015版本。旨在记录遇到的实际问题。

yytu231的博客 1万+

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

Vue3 + EventSource 实战:手把手教你打造实时AI聊天悬浮窗(附完整代码)

本文详细介绍了如何使用Vue3和EventSource技术构建一个实时AI聊天悬浮窗。文章从产品化视角出发,重点讲解了流式数据接收与渲染、悬浮窗UI交互的工程化实现、性能优化及高级功能,并提供了完整的代码示例,帮助开发者快速集成功能完整的AI问答系统。

assembly8low的博客 846

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

处理SAP资产折旧AFAB 过账报错:“科目 8019010100 要求一个成本会计分配”

本文介绍如何处理资产折旧报错 ““科目XXXXXXX 要求一个成本会计分配””

IT小职员 2776

使用3dmax Morpher制作Unity表情动画

关于游戏人物的面部表情动画 方案一:如果面部骨骼数丰富的话,可以直接做骨骼动画 方案二:采用变形器(3dmax是Morpher,maya是blendshape)修改相应通道的权重值来做表情动画 本文简述方案二的做法。 说明:本文截图中3dsMax版本为2017。笔者第一次使用3dsMax,欢迎指正。 3dmax中导入人物模型,选择需要变形的对象,即head。当前对象附带skin信息。 ...

写作帮助思考 2万+

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

Mplus—验证性因素分析(Confirmatory Factor Analysis, CFA)

介绍一阶和二阶验证性因素分析概况及在Mplus中的操作方法。

m0_54401011的博客 1万+

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

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

juseice的博客 457

【异常】Cursor导入Karpathy指南失败解决方案Failed to import GitHub/GitLab rules: Error executing git: Cloning into

摘要:本文解决了Git克隆单个文件报错的问题,指出git clone只能克隆整个仓库而非单个文件。提供了两种解决方案:1) 推荐手动创建规则文件,在Cursor项目中新建.mdc文件并粘贴Karpathy行为指南完整内容;2) 备选克隆整个仓库获取文件。指南包含编码行为规范,强调简单性、精准修改和明确目标。还说明了如何设置全局规则和即时生效的方法。

奶爸的编程之路,也就一周冷个三天 174

《QEMU/KVM源码分析与应用》读书笔记4 —— 第2章 QEMU基本组件(1)

《QEMU/KVM源码分析与应用》读书笔记4 —— 第2章 QEMU基本组件(1)

phmatthaus的专栏 1475

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

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

amazingee的博客 1655

Python 爬虫实战:模拟登录网易云音乐(加密接口逆向与自动化登录实现)

网易云音乐作为国内主流的音乐流媒体平台,其丰富的音乐资源和个性化推荐算法吸引了大量用户。对于开发者而言,模拟登录网易云音乐并实现自动化操作,可以用于数据分析、歌单同步、歌词抓取等场景。然而,网易云音乐采用了多重加密机制和反爬策略,直接模拟登录存在较大挑战。

yansideyucsdn的博客 2590

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

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

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

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

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

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

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

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

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、付费专栏及课程。

余额充值