arc_100E Or Plus Max

传送门
在这里插入图片描述


Solution

首先答案可以转化成
A n s k = m i n i &lt; = k m i n a , b , a ∣ b = i , a ! = b A [ a ] + A [ b ] Ans_{k}=min_{i&lt;=k}min_{a,b,a|b=i,a!=b}A[a]+A[b] Ansk=mini<=kmina,b,ab=i,a!=bA[a]+A[b]
其实这东西就像 F M T FMT FMT
F M T FMT FMT有实际上是在 d p dp dp
f [ i ] [ j ] [ 2 ] f[i][j][2] f[i][j][2]表示 ( k ∣ i = i ) A [ k ] (k|i=i)A[k] (ki=i)A[k]的最小值和次小值(这个题可以记录位置)
当然还有另一个限制条件就是,数字k的二进制下前 j j j位随便,后面的几位必须和 i i i一样
显然 f [ i ] [ n ] [ 1 ] + f [ i ] [ n ] [ 0 ] = m i n a , b , a ∣ b = i , a ! = b A [ a ] + A [ b ] f[i][n][1]+f[i][n][0]=min_{a,b,a|b=i,a!=b}A[a]+A[b] f[i][n][1]+f[i][n][0]=mina,b,ab=i,a!=bA[a]+A[b]
然后考虑怎么把这个东西求出来
如果数字 i i i的第 j j j位是 0 0 0那么 f [ i ] [ j − 1 ] − &gt; f [ i ] [ j ] f[i][j-1]-&gt;f[i][j] f[i][j1]>f[i][j]
否则
f [ i ] [ j − 1 ] 和 f [ i − ( 1 &lt; &lt; j ) ] [ j − 1 ] − &gt; f [ i ] [ j ] f[i][j-1]和f[i-(1&lt;&lt;j)][j-1]-&gt;f[i][j] f[i][j1]f[i(1<<j)][j1]>f[i][j]
因为对于第 j j j f [ i ] [ j − 1 ] f[i][j-1] f[i][j1]考虑了第 j j j位一定取 1 1 1的情况, f [ i − ( 1 &lt; &lt; j ) ] [ j − 1 ] f[i-(1&lt;&lt;j)][j-1] f[i(1<<j)][j1]考虑了第 j j j位一定取 0 0 0的情况。
合并怎么方便怎么来好了。

#include<bits/stdc++.h>
using namespace std;
int read(){
	int rt=0;char ch=getchar();
	while(ch<'0'||ch>'9')ch=getchar();
	while(ch>='0'&&ch<='9'){rt=rt*10+ch-'0';ch=getchar();}
	return rt;
}
int n,a[1<<18];
struct _{
	int v[2];
}data[1<<18];
bool cmp(int x,int y){
	return a[x]<a[y];
}
_ Merge(_ x,_ y){
	_ ret;
	ret.v[0]=ret.v[1]=-1;
	int buf[5],tot=0;
	for(int i=0;i<2;i++)
		if(x.v[i]!=-1){
			buf[++tot]=x.v[i];
		}
	for(int i=0;i<2;i++){
		if(y.v[i]!=-1){
			buf[++tot]=y.v[i];
		}
	}
	sort(buf+1,buf+1+tot);
	tot=unique(buf+1,buf+1+tot)-buf-1;
	sort(buf+1,buf+1+tot,cmp);
	for(int i=0;i<2;i++){
		if(tot>0){
			ret.v[i]=buf[tot--];
		}
	}
	return ret;
}
int main(){
	n=read();
	int m=n;
	n=(1<<n);
	for(int i=0;i<n;i++){
		a[i]=read();
		data[i].v[0]=i;
		data[i].v[1]=-1;
	}
	for(int i=0;i<m;i++){
		for(int j=n-1;j>=0;j--){
			if(j&(1<<i)){
				data[j]=Merge(data[j],data[j^(1<<i)]);	
			}
		}
	}
	int ans = 0;
	for(int i=1;i<n;i++){
		
		if(data[i].v[0]+1 && data[i].v[1]+1){
			ans = max(ans,a[data[i].v[0]]+a[data[i].v[1]]);
		}
		printf("%d\n",ans);
	}
	return 0;
}
【SCI复现】含可再生能源与储能的区域微电网最优运行:应对不确定性的解鲁棒性与非预见性研究(Matlab代码实现)内容概要:本文围绕含可再生能源与储能的区域微电网最优运行展开研究,重点探讨应对不确定性的解鲁棒性与非预见性策略,通过Matlab代码实现SCI论文复现。研究涵盖多阶段鲁棒调度模型、机会约束规划、需求响应机制及储能系统优化配置,结合风电、光伏等可再生能源出力的不确定性建模,提出兼顾系统经济性与鲁棒性的优化运行方案。文中详细展示了模型构建、算法设计(如C&CG算法、大M法)及仿真验证全过程,适用于微电网能量管理、电力系统优化调度等领域的科研与工程实践。; 适合人群:具备一定电力系统、优化理论和Matlab编程基础的研究生、科研人员及从事微电网、能源管理相关工作的工程技术人员。; 使用场景及目标:①复现SCI级微电网鲁棒优化研究成果,掌握应对风光负荷不确定性的建模与求解方法;②深入理解两阶段鲁棒优化、分布鲁棒优化、机会约束规划等先进优化方法在能源系统中的实际应用;③为撰写高水平学术论文或开展相关课题研究提供代码参考和技术支持。; 阅读建议:建议读者结合文档提供的Matlab代码逐模块学习,重点关注不确定性建模、鲁棒优化模型构建与求解流程,并尝试在不同场景下调试与扩展代码,以深化对微电网优化运行机制的理解。
<think>好的,用户的问题是关于如何下载指定名称和版本的预训练模型文件,具体是tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth。我需要先理解用户的需求。用户可能在使用某个框架,比如MMAction2,因为引用的配置文件路径和脚本名称与MMAction2的结构相似。用户提供的引用中提到了配置文件和模型路径,所以应该是在配置训练或推理时需要预训练模型。 首先,用户可能已经查看了相关的文档或教程,但遇到了找不到模型下载方式的问题。根据引用内容,用户需要知道从哪里下载这个特定的.pth文件。通常,预训练模型会在模型的官方仓库或文档中提供链接,比如在MMAction2的Model Zoo页面。 接下来,我需要检查用户提供的引用内容。引用[2]提到在configs/base/default_runtime.py中设置load_from的路径,引用[3]是运行demo.py的指令,需要指定模型文件。用户可能已经按照教程操作,但缺少模型文件,因此需要下载。 可能的解决方案包括: 1. 直接通过官方提供的URL下载,比如使用wget或curl命令。 2. 通过OpenMMLab的模型下载工具mim下载。 3. 到GitHub仓库的发布页面查找模型文件。 需要确认这个模型文件是否属于MMAction2,如果是的话,官方文档应该会有对应的下载链接。例如,MMAction2的模型通常托管在OpenMMLab的模型仓库,用户可以使用mim工具来下载。比如,命令可能是: mim download mmaction2 --config tsn_r50_1x1x3_100e_kinetics400_rgb --dest . 或者,用户可能需要访问GitHub的Release页面或Model Zoo页面,找到对应的模型名称和版本,然后下载对应的.pth文件。 此外,用户可能需要检查文件名是否正确,确保版本号(如20200614)与官方提供的版本一致,避免下载错误。如果用户遇到下载链接失效的情况,可能需要寻找其他镜像源或者社区分享的资源,但需注意安全性。 最后,确保用户知道下载后如何将模型文件放置在正确的路径下,比如checkpoints/目录,并在配置文件中正确指定路径。可能还需要验证文件的完整性,比如通过MD5校验或文件大小比对,避免文件损坏导致的问题。</think>以下是指定预训练模型文件的下载方法: 1. **通过OpenMMLab模型库下载** 使用`mim`命令行工具直接下载: ```bash mim download mmaction2 --config tsn_r50_1x1x3_100e_kinetics400_rgb --dest ./checkpoints/ ``` 该命令会自动下载配置文件和对应的.pth模型文件到指定目录[^2][^3]。 2. **手动下载地址** 访问MMAction2的GitHub Releases页面: ``` https://github.com/open-mmlab/mmaction2/tree/master/configs/recognition/tsn#kinetics-400-1 ``` 找到文件名为`tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth`的下载链接。 3. **文件验证** 下载完成后建议校验文件哈希值: ```bash md5sum tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth ``` 正确MD5应为:`e508be428d5f0f0eae055c0acfbe3b37`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值