博客
关于我
魔法序列-upc
阅读量:282 次
发布时间:2019-03-01

本文共 1533 字,大约阅读时间需要 5 分钟。

题目描述

小E为了完成公主的任务,需排布魔法阵,从中获得法力。
简单起见,魔法阵可以看成一个长度为n的序列。序列从左到右都摆放了一张符卡,符卡有一个强度ai。法术的释放要每个元素相互配合,取得共鸣效果。一个由一些符卡组成的咒语的魔力值为这个咒语中所有符卡的强度的最大公因数乘以符卡的个数。
小E会从魔法阵中选择一段连续符卡区间[l,r](包括l,r端点),作为吟唱的咒语。她想知道,咒语最大的魔力值是多少。
输入
第一行一个整数n,表示符卡个数。
第二行n个正整数,第i个数表示符卡的强度ai。
输出
输出一个整数,表示最大的魔力值。
样例输入 Copy

530 60 20 20 20

样例输出 Copy

80
提示
样例解释
选择区间[2,5],其中gcd(60,20,20,20)=20,故魔力值为(5-2+1)*20=80。
二话不说,先放上友链

大佬的想法

在这里插入图片描述
在这里插入图片描述
代码和某巨巨差不多,只是注释多了点

#include 
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define wuyt maintypedef long long ll;#define HEAP(...) priority_queue<__VA_ARGS__ >#define heap(...) priority_queue<__VA_ARGS__,vector<__VA_ARGS__ >,greater<__VA_ARGS__ > >template
inline T min(T &x,const T &y){ return x>y?y:x;}template
inline T max(T &x,const T &y){ return x
>=1; x=(x*x); } return res;}ll maxx=-1;ll minn=inf;ll num2[maxn];ll num[maxn];ll res,ans;int sum=0;map
mp;map
mpt;vector
vet;priority_queue
,greater
> xiaogen;queue
duilie;priority_queue
,less
> que;///https://www.pasteme.cn/35934int main(){ int n=read; for(int i=1;i<=n;i++) num[i]=read; ans=-1; for(int i=1;i<=n;i++)///right { mp=mpt,mpt.clear(); ans=max(ans,num[i]);///本身的最大 if(mpt.count(num[i])==0) mpt[num[i]]=i; for(auto it=mp.begin();it!=mp.end();it++){ res=gcd(num[i],it->first);///it->first里面是存储的数,it->second里面是下标对于mpt来说 ///对于前面区间的更新已经通过mp=mpt更新,所以对于mp亦是如此 ans=max(ans,res*(i-(it->second)+1)); ///test: ///cout<
<
second; else if(mpt.count(res)!=0) mpt[res]=min(mpt[res],it->second); } } cout<
<

转载地址:http://kloo.baihongyu.com/

你可能感兴趣的文章
Navicat下载和破解以及使用
查看>>
Navicat中怎样将SQLServer的表复制到MySql中
查看>>
navicat创建连接 2002-can‘t connect to server on localhost(10061)且mysql服务已启动问题
查看>>
Navicat可视化界面导入SQL文件生成数据库表
查看>>
Navicat向sqlserver中插入数据时提示:当 IDENTITY_INSERT 设置为 OFF 时,不能向表中的标识列插入显式值
查看>>
Navicat因导入的sql文件中时间数据类型有参数而报错的原因(例:datetime(3))
查看>>
Navicat如何连接MySQL
查看>>
navicat导入.sql文件出错2006- MySQLserver has gone away
查看>>
Navicat导入海量Excel数据到数据库(简易介绍)
查看>>
Navicat工具Oracle数据库复制 or 备用、恢复功能(评论都在谈论需要教)
查看>>
Navicat工具中建立数据库索引
查看>>
navicat工具查看MySQL数据库_表占用容量_占用空间是多少MB---Linux工作笔记048
查看>>
navicat怎么导出和导入数据表
查看>>
Navicat怎样同步两个数据库中的表
查看>>
Navicat怎样筛选数据
查看>>
Navicat报错connection is being used
查看>>
Navicat报错:1045-Access denied for user root@localhost(using passwordYES)
查看>>
Navicat控制mysql用户权限
查看>>
navicat操作mysql中某一张表后, 读表时一直显示正在载入,卡死不动,无法操作
查看>>
Navicat连接mysql 2003 - Can't connect to MySQL server on ' '(10038)
查看>>