7.3 学校noip模拟赛解题报告

本文解析了洛谷平台上的三道竞赛题目,包括发射站的单调栈应用、特殊背包问题的混合背包解决策略,以及正则表达式的tarjan缩点与最短路径算法。通过实例分析,分享了算法设计思路与实现技巧。

微若萤火,可亮一方天地

题目

60 + 60 + 10 = 130(大佬们莫批qaq)


T1

比赛过程中看到题后想了15分钟没有想出正解,然后就开始打朴素算法 ,因为给的时间很充裕,2s的时间限制可以搞很多事情,所以我就直接n^2暴力,还专门写了一个函数来进行数字间的寻找(只是为了代码美观,没有卵用qaq)

后来比赛结束后我上洛谷搜了一下,没想到竟然搜到了原题,看了看题解后才知道,正解是维护了一个单调栈,正常输入输出, 然后进行判断, 若栈不空且栈顶元素的h小于h[i],则i点可将栈顶元素的v值接收,即ans[i] += v[s.top()], 若大于,则反之,即ans[s.top()] += v[i];,最后再将i点push入栈就可以了

核心代码:

for (int i = 1; i <= n; i++) {
		while (!s.empty() && h[s.top()] < h[i]) {
			ans[i] += v[s.top()];
			s.pop();
		}
		if (!s.empty()) ans[s.top()] += v[i];
		s.push(i);
	}

T2

一道混合背包问题,主要难在甲类物品的选取,除此之外甚至都没有用大数据卡多重背包,直接拆分就可以轻松AC本题,比赛过程中我没有管甲类,遇见甲类直接跳过,只计算乙类和丙类,结果拿了60分

然后依旧是在洛谷上找到了原题,翻了翻题解,发现题解给出了一条证明:

可以证明一定存在一种最优解,其中取的甲类物品总数<=1

证明过程:

如果取了两个或以上甲类物品,那么取其中任意两个(设属性分别为(a1,b1),(a2,b2),各取了x1,x2的体积),将它们替换为一个体积是它们之和,属性为它们之一的物品,一定不会更劣

a1(x1+x2)^2 -b1(x1+x2)>=a1*{x1}^2 -b1* x1+a2*{x2}^2-b2*x2**

有了这条证明就简单很多了,只需要在计算甲类时枚举取与不取两种情况即可

甲类代码:

for(i=0;i<dd.size();i++)
    {
        for(j=0;j<=m;j++)
        {
            an2=max(an2,ans[m-j]+dd[i].fi*j*j-dd[i].se*j);
        }
    }

T3

得分最低的一道题,也是得分率最低的一道题,也是本场测试中最难的一道qaq

看到这道题后我就直接崩溃了,啊啊啊啊,我图论是真的差啊,本来就没有怎么好好学,还隔了这么久(大约有两三个月了呜呜呜呜),现在连最短路都差点忘了,还好我还有点印象,用了好一会把板子打出来了,呼~,总算写完了,就笑着对旁边的wwx大佬说第三题好简单啊,不就是一个最短路的板子吗,然后大佬将视线从显示屏前转移到我身上,可这是第三题啊,我现在还没有想出来怎么搞定同一局域网内的电脑

。。。嗯?什么鬼???

于是我又回去读了一遍题

另外,如果存在A到B的连接的同时也存在B到A的连接的话,那么A和B实际上处于同一局域网内,可以通过本地传输,这样花费的传输时间为0。

瞬间崩溃,于是又开始了苦逼的改代码生活,可是我是真的真的真的不会强连通分量啊啊啊!!!

于是乎就打了暴力搜索,结果只拿了10分,在不甘心的情况下继续改代码,重新提交,结果0分。。。

就这样改改交交,大约交了四五次吧,我终于放弃了,代码越改越长,可永远是·0分

所以,,,本题的代码就不粘了,我不想丢脸qaq,回去学tarjan了(呜呜呜…

基于遗传算法的新的异构分布式系统任务调度算法研究(Matlab代码实现)内容概要:本文档围绕基于遗传算法的异构分布式系统任务调度算法展开研究,重点介绍了一种结合遗传算法的新颖优化方法,并通过Matlab代码实现验证其在复杂调度问题中的有效性。文中还涵盖了多种智能优化算法在生产调度、经济调度、车间调度、无人机路径规划、微电网优化等领域的应用案例,展示了从理论建模到仿真实现的完整流程。此外,文档系统梳理了智能优化、机器学习、路径规划、电力系统管理等多个科研方向的技术体系与实际应用场景,强调“借力”工具与创新思维在科研中的重要性。; 适合人群:具备一定Matlab编程基础,从事智能优化、自动化、电力系统、控制工程等相关领域研究的研究生及科研人员,尤其适合正在开展调度优化、路径规划或算法改进类课题的研究者; 使用场景及目标:①学习遗传算法及其他智能优化算法(如粒子群、蜣螂优化、NSGA等)在任务调度中的设计与实现;②掌握Matlab/Simulink在科研仿真中的综合应用;③获取多领域(如微电网、无人机、车间调度)的算法复现与创新思路; 阅读建议:建议按目录顺序系统浏览,重点关注算法原理与代码实现的对应关系,结合提供的网盘资源下载完整代码进行调试与复现,同时注重从已有案例中提炼可迁移的科研方法与创新路径。
【微电网】【创新点】基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度研究(Matlab代码实现)内容概要:本文提出了一种基于非支配排序的蜣螂优化算法(NSDBO),用于求解微电网多目标优化调度问题。该方法结合非支配排序机制,提升了传统蜣螂优化算法在处理多目标问题时的收敛性和分布性,有效解决了微电网调度中经济成本、碳排放、能源利用率等多个相互冲突目标的优化难题。研究构建了包含风、光、储能等多种分布式能源的微电网模型,并通过Matlab代码实现算法仿真,验证了NSDBO在寻找帕累托最优解集方面的优越性能,相较于其他多目标优化算法表现出更强的搜索能力和稳定性。; 适合人群:具备一定电力系统或优化算法基础,从事新能源、微电网、智能优化等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于微电网能量管理系统的多目标优化调度设计;②作为新型智能优化算法的研究与改进基础,用于解决复杂的多目标工程优化问题;③帮助理解非支配排序机制在进化算法中的集成方法及其在实际系统中的仿真实现。; 阅读建议:建议读者结合Matlab代码深入理解算法实现细节,重点关注非支配排序、拥挤度计算和蜣螂行为模拟的结合方式,并可通过替换目标函数或系统参数进行扩展实验,以掌握算法的适应性与调参技巧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值