求分析时间复杂度
  • 板块灌水区
  • 楼主Rem_CandleFire
  • 当前回复7
  • 已保存回复7
  • 发布时间2024/11/26 19:11
  • 上次更新2024/11/26 20:47:24
查看原帖
求分析时间复杂度
421421
Rem_CandleFire楼主2024/11/26 19:11

以下是一个用 unordered_map 实现的 01 背包,数据范围 1n3001\le n\le 300。值域是 10910^9。求分析时间复杂度。

mp[a[1].num]=a[1].w;
for(int i=2;i<=n;i++)
{
	for(auto it: mp)
	{
		int g=__gcd(it.first,a[i].num);
		if(!mp.count(g)) mp[g]=a[i].w+it.second;
		else mp[g]=min(mp[g],a[i].w+it.second);
	}
	if(!mp.count(a[i].num)) mp[a[i].num]=a[i].w;
	else mp[a[i].num]=min(a[i].w,mp[a[i].num]);
}
printf("%d\n",mp[1]);
2024/11/26 19:11
加载中...