Codeforces Round #381 (Div. 2) #V

本文解析了三道编程题目并提供了相应的代码实现。包括:如何通过不同套餐购买书籍以达到特定条件的最少花费;如何计算多个指定区间内的元素和以最大化“快乐值”;如何构造数组以使特定区间的mex值尽可能大。

A.

题意:给出n,a,b,c  只有一种书,书有无穷本,同一个套餐可以买多次,购买书有三种套餐: a套餐代表一次性买1本书的价格,b代表买2本书的价格,c代表买3本书的价格,

要求(n+k)%4==0,问买k本书花费的最小金钱 


思路:水题,

if n已经是4的倍数就不用买了,

else if 还差2本:购买方式可以是:2次a或者1次b或者2次c,哪种方法便宜就用哪种

else if 还差1本:购买方式可以是 :1次a 或者 1次b+1次c 或者 3次c;

else if 还差3本 同理:ans=min1(3*a,a+b,c);


哈哈,轻松A一题0.0


B.

题意:给出一个大小为N的数组,再给出M个区间,选取若干区间,使得happy值最大,happy值定义:区间的元素和(N,M<=100)


思路:NM很小,暴力各区间元素和sum,sum>=0说明对ans有贡献。


哈哈,又A一题,知道题意就秒解了。


C.

题意:定义mex(l,r):返回不等于 数组A在区间【l,r】的所有元素的第一个非0的数,比如A{0,0,1,3} mex(1,3)=2;

现在给出数组A的大小N,和M个区间,要求每个区间的mex尽量大,输出所有区间的最小mex,并构造符合的数组A,输出之


思路:要求每个区间mex尽量大,那么只能从0开始0123...这样,显然最小mex就是区间大小,

怎么构造?比如mex=4构造数组0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3...肯定能满足要求


目标是每次都3题害羞


第一篇博客,有点小激动0.0


A题代码:

ll min1(ll a,ll b,ll c)
{
	ll ans=0;
	ans=min(a,b);
	ans=min(ans,c);
	return ans;
}

int main()
{
	ll n,a,b,c;
	 cin>>n>>a>>b>>c;
	 if(n%4==0)
	 {
	 	printf("0\n");
	 }
	 else if(n%4==1)
	 {
	 	
	 	printf("%I64d",min1(3*a,a+b,c));
	 }
	 else if(n%4==2)
	 {
	 	printf("%I64d",min1(2*a,b,2*c));
	 }
	 else if(n%4==3)
	 {
	 	printf("%I64d",min1(a,b+c,3*c));
	 }
	return 0;
}


B题代码:

int a1[105];
ll count(int a,int b)
{
	ll t=0;
	for(int i=a;i<=b;i++)
	{
		t+=a1[i];
	}
	return t;
}
int main()
{
	ll n,m;
	cin>>n>>m;
	
	for(int i=1;i<=n;i++)
	{
		cin>>a1[i];
	}
	ll ans=0;
	for(int i=0;i<m;i++)
	{
		int a,b;
		cin>>a>>b;
		if(count(a,b)>0)
		{
			ans+=count(a,b);
		}
	}
	cout<<ans<<endl;
	return 0;
}


C题代码:

int a1[100005];
int main()
{
	int n,m;
	cin>>n>>m;
	int mex=1000000;
	for(int i=0;i<m;i++)
	{
		int a,b;
		cin>>a>>b;
		mex=min(b-a+1,mex);
	}
	int t=0;
	for(int i=1;i<=n;i++)
	{
		a1[i]=t;
		t++;
		if(t==mex)
		t=0;
	}
	cout<<mex<<endl;
	for(int i=1;i<=n;i++)
	{
		cout<<a1[i]<<" ";
	}
	cout<<endl;
	return 0;
}


内容概要:本文围绕“基于超局部模型与自抗扰ESO观测器的无模型预测电流控制改进策略”展开研究,提出一种结合超局部模型(ULM)与扩张状态观测器(ESO)的无模型预测电流控制(MFPCC)改进方法,旨在提升永磁同步电机(PMSM)电流环的动态响应性能与抗干扰能力。该策略利用超局部模型对系统行为进行局部逼近,避免依赖精确数学模型,同时引入自抗扰控制中的ESO实时观测并补偿系统内外部扰动,有效抑制参数摄动、负载变化及模型不确定性带来的影响。研究通过Simulink搭建完整的控制系统仿真模型,对传统MFPCC与所提改进策略进行对比分析,验证了新方法在电流跟踪精度、响应速度和鲁棒性方面的优越性。; 适合人群:具备电机控制、现代控制理论及Simulink仿真基础的电气工程、自动化及相关专业的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于高性能电机驱动系统中电流环控制器的设计与优化;②为无模型控制与自抗扰控制的融合应用提供技术参考;③支撑相关课题的仿真验证、论文复现与创新方法研究。; 阅读建议:建议读者结合Simulink仿真模型深入理解控制结构与参数整定过程,重点关注ESO的观测性能与扰动补偿机制,并可通过改变负载条件、参数偏差等工况进行鲁棒性测试,进一步掌握该改进策略的核心优势与适用边界。
内容概要:本文围绕Scratch图形化编程平台,详细阐述了《人体感应灯光系统》这一贴近生活的AI科创作品的设计与教学应用。通过模拟真实智能家居中人体感应灯的工作原理,利用Scratch的侦测、逻辑判断、亮度特效调节等功能,实现了人物靠近自动亮灯、延时熄灭及环境亮度自适应等仿真功能。文章系统拆解了从场景搭建、核心逻辑设计、分层编程实现到调试优化的完整开发流程,并提供了基础版与进阶版可直接导入的源码,支持零基础快速上手与高阶创新拓展。同时构建了“基础—进阶—高阶”三层阶梯式教学体系,适配常规课堂、创客社团与赛事培优等多元教学场景,推动中小学AI教育的生活化、实践化与创新化发展。 适合人群:小学高年级至初中阶段学生,信息技术教师,创客教育从业者,以及参与青少年科创赛事的师生。 使用场景及目标:①作为中小学人工智能通识课程的教学案例,帮助学生理解智能感应与控制逻辑;②用于校内创客社团开展项目式学习;③支撑学生参加AI科创类赛事,完成高质量作品创作与答辩准备;④布置为课后综合实践作业,提升动手能力与科技素养。 阅读建议:建议结合提供的Scratch源码进行实践操作,在复现基础上尝试参数调优与功能扩展,如增加音效提示、多区域感应等,深化对编程逻辑与智能系统设计的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值