ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

多校11

2022-08-10 15:03:54  阅读:174  来源: 互联网

标签:11 val ai sum 多校 int zhi 100


220(70+100+20+30) rank 53

T2:大模拟,而且相当简单....

T1:数论,质因子

T3:思维题+高水平暴力水高分

T4:

T3:给你n个数对(a,b),如果确定一种排列顺序,那么第i位的val值=max(val(i-1),sum_a[i])+b(i).求一种排列顺序,使得最大的val值最小

容易知道最大的val就是在最后一位,考虑构造一种方案,对于N=2,如果(a,b)(c,d)的顺序使得最大值更小,当而且仅仅当min(a,c)<min(b,c) [分类讨论一下就好,很容易证明]。那么进行推广,对于任意的n,只要按照这种顺序排队,那最后一定是一种最优解

思路纠正:我之前是只片面考虑了每两对数字之间,从前向后扫,有使得一个局部解更小的就换,但是首先因为序列在改变,所以前面换掉的更优可能被覆盖,其次局部更小对全局不一定,如果只从一个随机的顺序开始,很难弄出最优解,但是对于确定的序列,ans=sigma(sum_a[i]+sum_b[i])是对的(a前缀,b后缀)

部分分(1)当a=b,让第一个ai是最小的就行,因为上面的式子,自己画一个答案选集矩阵(2)当b=a+1,按照a升序是答案,考虑任意一对,如果交换,只可能答案不变或者答案增加,所以一定会更不优

c[i+4]=
ai+ bi +b[i+1]+b[i+2]+b[i+3]+b[i+4]
ai+a[i+1]+b[i+1]+b[i+2]+b[i+3]+b[i+4]
ai+a[i+1]+a[i+2]+b[i+2]+b[i+3]+b[i+4]
ai+a[i+1]+a[i+2]+a[i+3]+b[i+3]+b[i+4]
ai+a[i+1]+a[i+2]+a[i+3]+a[i+4]+b[i+4]

(3)DP也可以

int prime[1000000+100];ll l,r;
int zhi[1000000+100],cnt;
int bj=0;
inline void Prime()
{
	for(rint i=2;i<=bj;++i)
	{
		if(!prime[i])zhi[++cnt]=i,mi[i]=i;
		_f(j,1,cnt)
		{
			ll my=zhi[j]*i;
			if(my>(ll)r)break;
			prime[my]=1;
			mi[my]=zhi[j];
			if(!(i%zhi[j]))break;
		}
	}
}
int main()
{
	scanf("%lld%lld",&l,&r);
	bj=sqrt(r);
	Prime();
	for(ll i=l;i<=r;++i)
	{
		if(mi[i])
		{
			chu("%d\n",mi[i]);
		}
		else chu("%lld\n",i);
	}


	return 0;
}

标签:11,val,ai,sum,多校,int,zhi,100
来源: https://www.cnblogs.com/403caorong/p/16572438.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有