首页 > 其他分享 >【CF1364C】Ehab and Prefix MEXs(构造)

【CF1364C】Ehab and Prefix MEXs(构造)

时间:2023-09-09 17:44:26浏览次数:48  
标签:... cnt 10 -- ll Prefix CF1364C 100000 Ehab

题目大意:

给出长度为\(n(1\le n\le 10^5)\)的数组\(a\),构造数组\(b\)使得\(a_i=MEX\{b_1,b_2,...,b_1\}\)


首先考虑当\(b_1,b_2,...,b_n\)为什么数时,\(a_n=MEX\{b_1,b_2,...,b_n\}\)。

然后再考虑当\(b_1,b_2,...,b_{n-1}\)为什么数时,\(a_{n-1}=MEX\{b_1,b_2,...,b_{n-1}\}\)。

根据\(a_n\)和\(a_{n-1}\)的区别从而决定\(b_n\)的值,依此类推,知道得到\(b_1\)的值为止。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,a[100000+10],b[100000+10],cnt[100000+10];
int main(){
	cin >> n;
	for(ll i=1;i<=n;i++)cin >> a[i];
	for(ll i=0;i<a[n];i++)cnt[i]=1;
	for(ll i=a[n];i<n;i++)cnt[a[n]+1]++;
	ll j=a[n]+1;
	for(ll i=n-1;i>=0;i--){
		if(cnt[a[i]]){
			b[i+1]=a[i];
			cnt[a[i]]--;
		}else{
			while(cnt[j]==0)j--;
			b[i+1]=j;
			cnt[j]--;
		}
	}
	for(ll i=1;i<=n;i++){
		cout << b[i] << ' ';
	}
	return 0;
}

标签:...,cnt,10,--,ll,Prefix,CF1364C,100000,Ehab
From: https://www.cnblogs.com/ningziang/p/17689893.html

相关文章

  • CF1839C Insert Zero and Invert Prefix 题解
    首先考虑无解的情况,很明显\(a_n\)必须为\(0\),否则没有解,因为如果最后一位为\(1\)那么必须有\(n\)这个数存在于\(b\)序列中,而这种情况时不符合题意的。然后考虑如何求解,先考虑一种比较特殊的情况,就是若干个\(1\)后面接着一个\(0\),这里假设\(1\)的数量有\(k\)个,这......
  • [CF1730D] Prefixes and Suffixes 题解
    首先发现后缀和前缀比较不好看,所以翻转第二个字符串,记为\(T'\)。这样就变成了操作两个字符串的前缀。观察发现,操作\(k\)等价于交换\(S[1\simk]\)和\(T'[1\simk]\),然后翻转\(S[1\simk]\)和\(T'[1\simk]\)。结论1:同一个下标上的字符对恒定。因为我们所有的操作都......
  • 1、编译 glibc 过程中报错 ../configure --prefix=/opt/glibc-2.27       2、首
    64位安装包,查看系统位数,安装对应的mysqlLinux系统安装MySQL时,将MySQL-5.6.17-1.el6.x86_64.rpm-bundle.tar包打开,有7个rpm文件,如下:MySQL-client-5.6.17-1.el6.x86_64.rpmMySQL-devel-5.6.17-1.el6.x86_64.rpmMySQL-embedded-5.6.17-1.el6.x86_64.rpmMySQL-server-5.6.17-1.el6.......
  • ARC137D Prefix XORs 题解
    这里的所有下标从\(\bm0\)开始。我们考察一下每次操作后的数列\(a\)会是什么样的。这里用\(a_i\)前面的系数\(x\)表示\(a_i\)贡献了\(x\)次,\(+\)表示异或。\[\begin{matrix}k=0&a_0&a_1&a_2&\cdots&a_{n-1}\\k=1&a_0&a_0+a_1&a_0+a_1+a_2&\cdots&......
  • 用断点调试阅读peft源码:prefix tuning
    今天我们阅读peft源码,主要是为了弄清楚prefixtuning的工作原理和代码细节。模型定义部分peft_config=PrefixTuningConfig(task_type=TaskType.SEQ_2_SEQ_LM,inference_mode=False,num_virtual_tokens=20)#下载预训练模型T5,模型结构可以在debugconsole中输入model得到m......
  • Prefixes and Suffixes 题解
    题目传送门一道字符串题。我们考虑还原字符串后再一个一个的判断。很显然,这个字符串是由一个长度为\(n-1\)的前缀和后缀组成的。因此我们可以找到这\(2\)个长度为\(n\)的字符串,然后枚举哪个是前缀,哪个是后缀。值得注意的是,当你判断一个字符串为前缀时,如果后面出现了同样......
  • ip-prefix的配置举例
    前缀列表语句为:ipip-prefixLIST1index10permit10.0.0.08less-equal32详解:10.0.0.08:表示前8为必须完全相同没有greater-equal,表示继承前面的8less-equal32表示:8≤掩码≤32结果为:10.1.0.0/1610.1.1.0/2410.1.1.0/2610.1.1.1/3210.2.2.0/24全部通过......
  • CodeForces 1810G The Maximum Prefix
    洛谷传送门CF传送门感觉是比较educational的题。拿到题目应该有一个大致思路,就是考虑最大前缀和的求法,再把它扔到状态里面。最大前缀和有两种求法:从前往后求,需要维护当前前缀和\(s\),当前最大前缀和\(mx\),需要记录两个变量,无法承受。从后往前求,只需记录当前最大前缀和......
  • LG4868 Preprefix sum 题解
    壹、题目大意给出长度为\(n\)的序列\(a_1\sima_n\),设\(S_i=\sum\limits_{j=1}^ia_j\),有两种操作可以给定\(i\)和\(x\),使得\(a_i=x\),也可以给定\(i\),查询\(\sum\limits_{j=1}^iS_j\)的值\(n\le100000\)贰、思路这道题查询的是\(S\),但实际上是\(a\),而操......
  • ptyhon: remame file using Prefix and suffix
     #创建测试文件#foriinrange(0,10):#f=open('test/'+str(i)+'.txt','a+')#f.close()path=input("请输入路径:")print("该文件夹中的所有文件有:")temp_file_name=[]#获取目标文件......