51nod 1421 最大MOD值 codeforce 484B. Maximum Value【调和级数复杂度T_T】

文章目录

题目链接:

51nod 1421
cf484B

参考博客:https://blog.csdn.net/linkfqy/article/details/78300976
对哈,里面那层循环的复杂度是调和级数,数越大枚举这个数的倍数就越小

然后就是找一段范围内最大的数,最开始竟然没有反应过来,就是找这段范围的最右边看在哪里,他的左边一个不就是这段范围里最大的嘛~

#include"bits/stdc++.h"
using namespace std;
typedef long long LL;
const int maxn=2e5+5;
int a[maxn];
int main()
{
	int N;
	while(cin>>N)
	{
		int ans=0;
		for(int i=1;i<=N;i++)scanf("%d",a+i);
		sort(a+1,a+1+N);
		for(int i=1;i<=N;i++)
		{
			if(a[i]==a[i-1])continue;//只要第一个来判断 
			for(int k=2;k*a[i]<=a[N];k++)
			{
				int pos=lower_bound(a+1,a+1+N,k*a[i])-a;
				ans=max(ans,a[pos-1]%a[i]);//找到a[pos]这个数,再往前面一个数a[pos-1]肯定在[k*ai,(k+1)*ai]范围内 
			}
			ans=max(ans,a[N]%a[i]);//剩下不够倍数的一段,最后的是最大的 
		}
		cout<<ans<<endl;
	}
}

然后就是因为 a i a_i ai的数据范围是1e6,所以阔以用个数组b[i]来保存小于 i 的最大的a[]数组中的数是多少,这样中间那层二分就变成 O ( 1 ) O(1) O(1)的了。用这种方法只跑了109ms,而上面二分那个跑路608ms,优化很明显呀~

#include"bits/stdc++.h"
using namespace std;
typedef long long LL;
const int maxn=2e5+5;
int a[maxn],b[maxn*5];//b[i]表示a[]数组中比i小的最大的数 
int main()
{
	int N;
	while(cin>>N)
	{
		int ans=0;
		for(int i=1;i<=N;i++)scanf("%d",a+i);
		sort(a+1,a+1+N);
		N=unique(a+1,a+1+N)-(a+1);
		for(int i=1,j=0;i<=1000000;)
		{
			if(i>a[j]&&i<=a[j+1])b[i++]=a[j];
			else if(j==N)b[i++]=a[N];
			else j++;
		}
		for(int i=1;i<=N;i++)
		{
			for(int k=2;k*a[i]<=a[N];k++)
			{
				ans=max(ans,b[k*a[i]]%a[i]);
			}
			ans=max(ans,a[N]%a[i]);//剩下不够倍数的一段,最后的是最大的 
		}
		cout<<ans<<endl;
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当群晖安装套件时,如果出现某个套件丢失的情况,例如nod.js_v12套件丢失,我们可以采取以下步骤来解决问题。 首先,我们需要确认群晖套件中是否存在nod.js_v12。我们可以通过登录到群晖管理界面,进入“套件中心”或“应用中心”来查看已安装的套件列表。如果我们无法找到nod.js_v12套件,那么我们可以尝试重新安装该套件。 其次,我们可以尝试下载并手动安装nod.js_v12套件。我们可以在Synology官方网站或群晖社区中搜索nod.js_v12套件的最新版本,并下载对应的安装文件。接着,我们再次登录到群晖管理界面,在“套件中心”或“应用中心”中找到“手动安装”选项,然后选择下载的安装文件进行手动安装。 如果以上方法仍然无法解决问题,我们可以尝试更新群晖操作系统和套件中心。在群晖管理界面的“控制面板”中,找到“更新和还原”选项,然后按照指示进行系统更新。完成更新后,我们再次登录到群晖管理界面,进入“套件中心”或“应用中心”,查看是否可以找到并安装nod.js_v12套件。 如果问题仍没有解决,我们可以尝试与群晖技术支持团队联系,向他们报告套件丢失的情况,并获得进一步的协助和指导。 总之,当群晖安装套件出现nod.js_v12套件丢失的情况时,我们可以通过重新安装套件,手动安装套件,更新操作系统和套件中心等方法来解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值