智乃的数字积木(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)(暴力+排序)的主要内容,如果未能解决你的问题,请参考以下文章