首页 > 其他分享 >arc120D - Bracket Score 2

arc120D - Bracket Score 2

时间:2023-09-26 18:37:17浏览次数:34  
标签:node int arc120D Score Bracket ans include top

D - Bracket Score 2

看了题解之后发现自己是弱智
如果能够猜到答案就是前n大-前n小,那么这题就解决了,直接用一个栈模拟匹配即可。

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#define fo(i,a,b) for (int (i)=(a);(i)<=(b);(i)++)
#define fd(i,b,a) for (int (i)=(b);(i)>=(a);(i)--)
#define mk(x,y) make_pair((x),(y))
using namespace std;
typedef double db;
typedef long long ll;
const int N=4e5+5;
const ll mo=1e9+7;
struct node{
	int x,id;
};
node a[N];
int n,b[N];
int top,s[N];
bool ans[N];
bool cmp(node a,node b){
	return a.x<b.x;
}
int main()
{
//	freopen("data.in","r",stdin);
	
	scanf("%d",&n);
	fo(i,1,2*n) {
		scanf("%d",&a[i].x);
		a[i].id=i;
	}
	
	sort(a+1,a+2*n+1,cmp);
	
	fo(i,1,2*n) b[a[i].id]=i;
	
	fo(i,1,2*n) {
		if (!top) s[++top]=b[i],ans[i]=0;
		else {
			if (s[top]>n && b[i]<=n) ans[i]=1,top--;
			else if (s[top]<=n && b[i]>n) ans[i]=1,top--;
			else s[++top]=b[i];
		}
	}
	
	fo(i,1,2*n) if (ans[i]) printf(")"); else printf("(");
	
	return 0;
}

 

标签:node,int,arc120D,Score,Bracket,ans,include,top
From: https://www.cnblogs.com/ganking/p/17730887.html

相关文章

  • gym104531 I Bracket
    题意题面做法结论:对于字符串\(s\),其为合法括号序列的充要条件为(1)\(|s|\)为偶数,(2)构造序列\(a_i\),若\(s_i\)='('or'?',则\(a_i=+1\);若\(s_i\)=')',则\(a_i=-1\),\({a_i}\)的前缀和均\(\ge0\)(3)构造序列\(b_i\),若\(s_i=\)')'or'?'......
  • [论文阅读] Anomaly Detection with Score Distribution Discrimination
    AnomalyDetectionwithScoreDistributionDiscrimination1Introduction如图1所示。Fig1a~1c。这些方法基于学习到的输入数据的特征转换(如重构误差或embedding距离),生成异常分数。然而,在表示空间中的优化会导致数据效率低下的学习和次优异常评分。Fig1d~1e使用端到端的异常......
  • 软件测试|好用的pycharm插件推荐(三)——Rainbow Brackets
    简介我们平时写代码的时候,括号是让我们非常头疼的地方,特别是代码逻辑很多,层层嵌套的情况。一眼很难看出,代码是从哪个括号开始,到哪个反括号结束的。这个时候要是有一款工具能够让我们一眼就看出代码从哪个括号开始,到哪个反括号结束,无疑对我们会有很大帮助。PyCharmRainbowBracket......
  • CF670E Correct Bracket Sequence Editor
    思路发现此题除了模拟没有好的方法,所以考虑如何模拟。先考虑删除操作,如果在删除的时候再去找要删除那些的话,就会使时间复杂度变高,所以考虑先预处理出每个括号对应的位置。如果按照操作删除括号,那么时间复杂度也是非常吓人的。所以我们考虑标记被删除的括号。再考虑移动操作,如果......
  • 插件Rainbow Brackets插件使用
    插件RainbowBrackets1.自带花括号彩虹色2.高亮部分代码块command+右键代码块3.着重展示,其余都黑标alt+右键代码块4.取消代码高亮按esc......
  • Vanya and Brackets 题解
    题目传送门一道枚举题。枚举左括号和右括号的位置括号,为了答案最优,左括号只能在开头或者*的右边。右括号只能在末尾或者*的左边。每一次枚举都计算一下这个加了括号后表达式的值,最后取最大值即可。Code#include<bits/stdc++.h>#definelllonglong#defineINF1e9usi......
  • 特征选择 - Fisher Score
    特征选择的目的在理想情况下,特征选择想要达到以下效果:简化模型以提高可解释性:通过减少特征的数量,模型变得更简单,更容易理解。这对于那些需要理解模型如何做出预测的领域(如医疗或信贷评分)非常重要。改进模型性能:通过消除无关或冗余的特征,模型的预测性能可能会得到提高。这是......
  • redis set score
    RedisSetScore:AnIntroductionRedisisanopen-sourcein-memorydatastructurestorethatisusedasadatabase,cache,andmessagebroker.Itsupportsvariousdatastructures,includingstrings,lists,sets,sortedsets,andhashes.Inthisarticle,w......
  • CF1264D Beautiful Bracket Sequence
    这里是加强版,\(n\le10^6\)。考虑到最后删剩下括号序列形如(((...(()))...)),想到枚举分界点。设\(p\)为当前枚举的分界点,\(l\)为\([1,p]\)内(的个数,\(r\)为\([p+1,n]\)内)的个数,\(x\)为\([1,p]\)内?的个数,\(y\)为\([p+1,n]\)内?的个数。那么\(p\)这个......
  • MySQL把choose表中的report改名为score,数据类型改为float; 将choose表的score默
    MySQL把choose表中的report改名为score,数据类型改为float;将choose表的score默认值设为0流程步骤步骤操作1.连接至MySQL数据库2.切换至对应数据库3.修改表结构,将report改名为score并更改数据类型4.设定score字段的默认值为0具体步骤与代码示例步骤......