智乃的数字积木(easy version)(暴力+排序)

Posted MangataTS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了智乃的数字积木(easy version)(暴力+排序)相关的知识,希望对你有一定的参考价值。

题目连接

https://ac.nowcoder.com/acm/contest/23478/E

题面

思路

看一眼数据,我们发现我们直接对相邻颜色的积木进行一个排序就能搞定,我们尽可能让相同颜色的积木,数字较大的放在前面即可,这里要注意一个问题就是排序越界的问题(吃了大亏)

代码

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e5+10,mod = 1e9+7;

int n,m,k,a[N],p,q;
vector<int> num;
char s[N];

int get(int ans)
	for(int i = 0;i < n; ++i) ans = (ans * 10 + num[i]) % mod;
	return ans;

void slove(int lef)
	for(int i = 1;i < n;)
		if(a[i] == a[i-1])
			lef = i - 1;
			while(i <= n && a[i] == a[i-1]) i++;
			sort(num.begin()+lef,num.begin()+i,greater<int>());
		
		else ++i;
	cout<<get(0)<<endl;


signed main()

	cin>>n>>m>>k>>s;
	for(int i = 0;i < n; ++i) num.push_back(s[i]-'0');
	for(int i = 0;i < n; ++i) cin>>a[i];a[n] = -1; 
	slove(0);
	while(k--) 
		cin>>p>>q;
		for(int i = 0;i < n; ++i) a[i]=a[i]==p?q:a[i];
		slove(0);
	
	return 0;

以上是关于智乃的数字积木(easy version)(暴力+排序)的主要内容,如果未能解决你的问题,请参考以下文章

2022牛客寒假算法基础集训营3全部题解

2022牛客寒假算法基础集训营3全部题解

2022牛客寒假算法基础集训营3题解 BCEFGHIJK

智乃的01串打乱(思维+暴力)

智乃的数据库(STL+小技巧)

智乃的密码(双指针)