首页 > 其他分享 >暑假集训CSP提高模拟16

暑假集训CSP提高模拟16

时间:2024-08-08 19:27:27浏览次数:11  
标签:return 16 int len CSP num nine 集训 se

\(\color{skyblue}9-nine-\) 专场(

小阳历最水的一回。

日常RE挂分。

我这是不是风水不好?(逃)

9-nine-九次九日九重色

赛时以为是连续的...大样例模了半天没模懂...

按连续的思路打了个二分上去...还骗了30pts?(

官方题解

按照官方题解写的Code,但WA #1,不知道哪错了...

int n,a[N],b[N],posb[N],posa[N],num[N];
vector<pair<int,int> > vec;

#define fi first
#define se second

bool cmp(pair<int,int> x,pair<int,int> y){
	if(x.fi==y.fi){
		return x.se>y.se;
	}else{
		return x.fi<y.fi;
	}
}

signed main(){
	n=rd;
	for(int i=1;i<=n;i++) a[i]=rd,posa[a[i]]=i;
	for(int i=1;i<=n;i++) b[i]=rd,posb[b[i]]=i;
	int cnt=0;
	vec.psb(mkp(-1,-1));
	for(int i=1;i<=n;i++){
		for(int j=1;i*j<=n;j++){
			vec.psb(mkp(posa[i],posb[i*j]));
			++cnt;
		}
	}
	sort(vec.begin(),vec.end(),cmp);
	
	num[1]=vec[1].se;
	int len=1;
	for(int i=2;i<=cnt;i++){
		if(vec[i].se>num[len]){
			num[++len]=vec[i].se;
		}else{
			int j=lower_bound(num+1,num+1+len,vec[i].se)-num;
			num[j]=vec[i].se;
		}
	}

	printf("%lld",len);
	return Elaina;
}

9-nine-天色天歌天籁音

守磨一下就会发现实际上是让求区间众数。

赛时打分块爆内存了,不愧是我先天RE圣体。

后来发现分块复杂度超了,遂改为莫队。

int n,m,maxn,len,ans[N],cnt[N],a[N],bl[N],sum[N];
struct Q{
	int l,r,id;
}q[N];
vector<int> lsh;
bool cmp(Q x,Q y){
	if(bl[x.l]==bl[y.l]){
		if(bl[x.l]&1) return x.r<y.r;
		else return x.r>y.r;
	}else return x.l<y.l;
}

void add(int x){
	sum[++cnt[a[x]]]++;
	if(cnt[a[x]]>maxn) maxn=cnt[a[x]];
	return;
}

void del(int x){
	if(sum[cnt[a[x]]]==1&&maxn==cnt[a[x]]) maxn--;
	sum[cnt[a[x]]--]--;
	return;
}

signed main(){
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	
	n=rd,m=rd;
	len=sqrt(n);
	for(int i=1;i<=n;i++){
		a[i]=rd;
		lsh.psb(a[i]);
		bl[i]=(i-1)/len+1;
	}
	sort(lsh.begin(),lsh.end());
	lsh.erase(unique(lsh.begin(),lsh.end()),lsh.end());
	for(int i=1;i<=n;i++){
		a[i]=lower_bound(lsh.begin(),lsh.end(),a[i])-lsh.begin()-1;
	}
	
	for(int i=1;i<=m;i++){
		int l=rd,r=rd;
		q[i].l=l,q[i].r=r,q[i].id=i;
	}
	sort(q+1,q+1+m,cmp);
	
	int l=1,r=0;
	for(int i=1;i<=m;i++){
		while(l>q[i].l) add(--l);
		while(r<q[i].r) add(++r);
		while(r>q[i].r) del(r--);
		while(l<q[i].l) del(l++);
		ans[q[i].id]=-maxn;
	}
	for(int i=1;i<=m;i++) printf("%lld\n",ans[i]);
	return Elaina;
}

9-nine-春色春恋春熙风

别催了...在改了 T^T

9-nine-雪色雪花雪余痕

既然是9-nine专场,那挂张图吧

标签:return,16,int,len,CSP,num,nine,集训,se
From: https://www.cnblogs.com/Elaina-0/p/18349348

相关文章

  • 暑假集训CSP提高模拟16
    1.九次九日九重色一开始做的时候被题面给迷惑住了,没想到可以跳着匹配(样例太水)。那我们来考虑如何做,首先思路肯定是把能匹配的暴力求出来,根据不知道怎么搞的调和计数,这样的复杂度还不是很高,是\(O(NlogN)\),可以搞。观察一下预处理出来的序列,是不是很熟悉。没错剩下的就是求最......
  • Xcode 16 beta 5 (16A5221g) 发布 - Apple 平台 IDE
    Xcode16beta5(16A5221g)发布-Apple平台IDEIDEforiOS/iPadOS/macOS/watchOS/tvOS/visonOS请访问原文链接:https://sysin.org/blog/apple-xcode-16/,查看最新版。原创作品,转载请保留出处。Xcode16的新功能使用预测代码补全功能和更快的预览功能,将奇思妙想转化为代码......
  • CSP模拟 小 trick 总结 (持续施工中)
    虽然这篇博客来的有点晚,但还是写了,欢迎dalao补充(1、分块、莫队有关:(1):一个真正的回滚莫队(感谢Qyun的讲解)$\\\\\\\\$学习回滚莫队的时候,我们经常会在回滚时使用memcpy来恢复以前的版本,但众所周知--memset和memcpy常数巨大,破坏了莫队$O(n\sqrtn)$的时间复杂度,导......
  • 暑假集训csp提高模拟16
    赛时rank38,T120,T250,T30,T40T2挂分原因:莫队n,m写反了,但样例中这俩一样,遂寄T1九次九日九重色\[\color{Green}{\Huge{!!!!!!!!!九日\,!!!!!!!!!}}\]\[\color{Red}{\Huge{!!!!!!!!!九日\,!!!!!!!!!}}\]\[\color{Blue}{\Huge{!!!!!!!!!九日\,!!!!!!!!!}}\]\[\color{Yellow}{\......
  • 「模拟赛」暑期集训CSP提高模拟15(8.7)
    赛时记录:开场看T1,一眼\(manacher\)求子串回文串,听课是听了,但是不会啊。跳了。看T2,发现结论题,推了会结论打上走了。打完T2想了会T3、T4,无思路,回来打了T1暴力和特殊性质,\(30pts\),又去想T3,还是不会,这时还剩一个小时。不行,现在才\(130pts\),包打祭的啊,能不能翻盘看我T1......
  • 暑假集训CSP提高模拟16
    暑假集训CSP提高模拟16组题人:@Muel_imj\(T1\)P216.九次九日九重色\(100pts\)部分分\(30pts\):设\(f_{i,j}\)表示当前处理到\(P\)的第\(i\)位,\(Q\)的第\(j\)位时最大的\(k\),状态转移方程为\(f_{i,j}=\begin{cases}\max(f_{i,j-1},f_{i-1,j})&p_{i}\nmid......
  • SublimeText 4.4169 中文授权版
    SublimeText是编辑器中的一款神级IDE,非常有名,虽然比较轻量,但是呢软件拓展性非常强大,适用于多种编程语言,当然,当一个编辑器,也是非常不错的。SublimeText支持但不限于C,C++,C#,CSS,D,Erlang,HTML,Groovy,Haskell,HTML,Java,JavaScript,LaTeX,Lisp,Lua,Markdown,......
  • [CSP-J 2023] 小苹果
    [CSP-J2023]小苹果【官方数据】题目描述小Y的桌子上放着 nn 个苹果从左到右排成一列,编号为从 11 到 nn。小苞是小Y的好朋友,每天她都会从中拿走一些苹果。每天在拿的时候,小苞都是从左侧第 11 个苹果开始、每隔 22 个苹果拿走 11 个苹果。随后小苞会将剩下......
  • [CSP-S 2023] 密码锁
    题目描述小Y有一把五个拨圈的密码锁。如图所示,每个拨圈上是从 00 到 99 的数字。每个拨圈都是从 00 到 99 的循环,即 99 拨动一个位置后可以变成 00 或 88,因为校园里比较安全,小Y采用的锁车方式是:从正确密码开始,随机转动密码锁仅一次;每次都是以某个幅度仅转......
  • 169.254.x.x是什么地址
    ‌APIPA169.254.x.x地址是一个特殊的IP地址范围,被称为“APIPA”(AutomaticPrivateIPAddressing)地址,主要用于在网络通信设置不当时确保最基本的计算机网络连接性。这种地址是由操作系统自动分配给计算机的私有IP地址,当计算机无法通过‌DHCP(动态主机配置协议)服务......