2019年华南理工大学程序设计竞赛(春季赛)H Parco_Love_GCD

数控弯管机xyz转换ybc的算法_数控弯管机技术的更新和应用.pdf 您所在位置:网站首页 > 海量文档&nbsp>&nbsp汽车/机械/制造&nbsp>&nbsp机械/模具设计数控弯管机技术的更新和应用.pdf3页本文档一共被下载:次,您可全文免费在线阅读后下载本文档。 下载提示1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。2.该文档所... 阅读详情

传送门.

题解:

首先要想到显而易见的结论:
当右端点r固定时,gcd[l…r]不同的值只有 l o g 值 域 log值域 log值域个。

假设l一开始在r上,不断向左移,当gcd变化时,gcd至少/2,所以最多除以log次。

那么不难得到一个暴力的做法:
右端点向右扫
维护gcd发生变化的左端点

右端点右移时,变化点的gcd对a[r]取gcd,再加上r为变化点,unique一下即可。

复杂度: O ( n l o g 2 n ) O(nlog^2n) O(nlog2n),两个log都是跑不满的,所以飞快。

也可以优化一下,就是合并的右端点一定是一段后缀,但是极限复杂度不变。

Code:

#include<ctime>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define fo(i, x, y) for(int i = x, B = y; i <= B; i ++)
#define ff(i, x, y) for(int i = x, B = y; i <  B; i ++)
#define fd(i, x, y) for(int i = x, B = y; i >= B; i --)
#define ll long long
#define pp printf
using namespace std;

const int N = 5e5 + 5;

int n, a[N], v[N], d[N], d0;

int gcd(int x, int y) {
	return !y ? x : gcd(y, x % y);
}

int cmp(int x, int y) {
	return v[x] == v[y];
}

const int mo = 1e9 + 7;

ll ans;

int main() {
	scanf("%d", &n);
	fo(i, 1, n) scanf("%d", &a[i]);
	fo(i, 1, n) {
		fo(j, 1, d0) v[d[j]] = gcd(v[d[j]], a[i]);
		d[++ d0] = i; v[i] = a[i];
		d0 = unique(d + 1, d + d0 + 1, cmp) - (d + 1);
		fo(j, 1, d0 - 1) ans = (ans + (ll) v[d[j]] * (d[j + 1] - d[j])) % mo;
		ans = (ans + (ll) v[d[d0]] * (i - d[d0] + 1)) % mo;
	}
	pp("%lld", ans);
}
黑猫带你学UFS协议第8篇:UFS电气特性详解(Power、CLK、Reset等) UFS强制支持secure mode。UFS设备可能会存储个人或者公司的信息,UFS提供把数据永久从设备上移除的功能,并且保证对存储介质进行逆向恢复数据也恢复不回来原有数据。安全模式是以逻辑单元为单位进行应用的,不同的逻辑单元可以有不同的安全模式。由于UFS设备的存储介质不同,所以把数据安全从存储介质上移除方式会有不同,spec提供了三种通用的移除方法,UFS设备至少支持其中一种。● 对存储的位置进行一次擦除操作。● 对存储的位置使用单一字符(比如0xAA)覆盖写,然后进行擦除。......... 阅读详情

相关推荐

别再手动抄表了!用PaddleOCR超轻量模型5分钟搞定数字仪表识别(附完整Python代码)

本文介绍如何利用PaddleOCR超轻量模型快速实现工业仪表数字识别自动化。通过5行核心代码和关键预处理步骤,显著提升识别准确率至98.2%,解决传统OCR在工业场景中的体积大、抗干扰弱等问题,并提供完整Python代码和边缘部署优化方案。

weixin_31062533的博客 350

H Parco_Love_GCD

题目大意:给你一个长度为n的序列,求所有区间gcd的和,结果取余1e9+7. 题解:首先用st表处理好区间gcd,然后枚举左区间二分右区间,因为一个数字的因子最多有log(n)个,所以右区间最多右log(n)个。 代码: #include <bits/stdc++.h> using namespace std; const int mod=1e9+7; const int ma...

Fighting 221

保姆级教程:用BMS的HVIL检测电路,手把手教你排查高压互锁故障(附PWM/直流源方案对比)

本文详细解析了BMS中的HVIL检测电路,通过对比直流源与PWM两种方案,提供了一套系统化的高压互锁故障诊断流程。从电路原理到实战技巧,帮助维修人员精准定位故障根源,提升电动汽车高压系统的安全性和可靠性。

weixin_29300241的博客 392

2019年华南理工大学程序设计竞赛(春季赛)

传送门 总结: 状态和节奏都异常稀烂的一场比赛。 全场梦游。开场看到隔壁黄色气球打得异常的多,因此上机直接打找到水题两分钟1y(这里有个小插曲,打完代码之后发现还没登陆,又花了一些时间登陆,再又花了一些时间找如何提交,痛失1血,可能这也是全场比赛的缩影)。 过了L题之后,我全场看题,发现了E是个裸的dancing links,准备掏出板子一端狂抄。此时发现I题已经有不少人A了,看题之后发现这是个多...

Chen.Jr的博客 455

大白话讲解Numpy中什么是一维、二维、三维数组,以及5种创建方式

NumPy中提供了多种创建数组的方式,其中最基本的方式就是通过array()函数创建数组在使用该函数时直接传入列表或元组即可。 通过array()函数分别创建一维数组、二维组和三维数组,那么什么是维度呢?一维、二维、三维有什么区别? 1、什么是维度? 维度可以理解为描述数据的一种 “方向” 或者 “层次”。在数组中,维度的数量决定了我们需要用多少个索引来访问一个元素 2、一维、二维、三维的区别? (1)一维:一维数组就像是一条直线上排列的一组数据,例如: a = np.array([1, 2

1365

【数据攻略】字节面试真题(含答案)+100道面试题库

数据攻略

qq_40002713的博客 4104

2019年华南理工大学程序设计竞赛

目录 C 六学家的困惑(模拟+思维) E 数独挑战(dfs) H Parco_Love_GCD(思维) I 炒股(思维) L 石头剪刀布(水题) C 六学家的困惑(模拟+思维) 【题意】 有两个字符串,每次可以从两个字符串的两端取一个数字,需要最终组成的字符串数字最大。 【解题思路】 如果给的是一个字符串会不会简单一点呢...?答案是肯定的,直接从两端找就可以啦,如...

よろしくお願いします 872

【Xilinx】如何在petalinux下编译vcu-gst-app以及独立编译vcu-gst-app

Xilinx从2018.1开始,提供了一套基于zcu106的vcu参考设计。里面提供了一套基于GStreamer的程序,即vcu-gst-app。如何脱离petalinux直接编译呢,这里以为例,其他版本也是类似的操作。

王师傅 3040

2019年华南理工大学程序设计竞赛(春季赛)H Parco_Love_GCD (思维 + 数论 + 前缀和)

链接:https://ac.nowcoder.com/acm/contest/625/H 来源:牛客网 Parco_Love_GCD 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 题目描述 众所周知,在算法竞赛中,出题人对他出的题的难度往往存在错误的估计。比如出题人本想出个中等题,没想...

Amo丶 370

解决Linux下Questasim中代码字体非常小

Questasim的source窗口里代码字体非常小 你是不是也遇到这样的问题,在使用Vmware时,Questasim的代码字体非常小,小到完全看不见,连断点都没办法标记。 下面我给出我摸索好久的解决办法,分享给大家。 1.首先,版本是Questasim 10.7c,在Vmware16中打开,情况如下: 不多逼逼,直接上图开搞: 给textFontV2设置值:monospace 12 normal roman 这里一定要注意啦,点完apply之后,不要点ok,直接关闭窗口。 ...

SummerXRT的博客 7815

提示词工程的几个参数

低 temperature + 低 top-p:输出最稳定、最可靠,适合需要准确性和一致性的场景。高 temperature + 高 top-p:输出最多样化、最富有创意,适合需要灵感和探索的场景。Max Length:您可以通过调整max length来控制大模型生成的 token 数。指定 Max Length 有助于防止大模型生成冗长或不相关的响应并控制成本。是一个字符串,可以阻止模型生成 token,指定是控制大模型响应长度和结构的另一种方法。例如,您可以通过添加 “11” 作为。

weixin_44212787的博客 1826

2019年华南理工大学程序设计竞赛(春季赛)H:Parco_Love_GCD(数论)

【题解】 自闭H题。 思路:一段区间的固定起始点的连续子区间的gcd只会在原来的基础上减小或者不变,考虑处理出以第i个元素为右端点的区间gcd的所有取值和取值的最左端点,然后依次求和即可。vr[i][j].first表示第j个gcd取值,vr[i][j].second表示gcd=vr[i][j].first的最左端点。 【代码】 #include<bits/stdc++.h>...

菜鸡成长史 425

YOLOv4目标检测算法——通俗易懂的解析

YOLOv4目标检测算法——通俗易懂的解析

chase 7135

2019年华南理工大学程序设计竞赛(春季赛) H Parco_Love_GCD(思维)

链接:https://ac.nowcoder.com/acm/contest/625/H 来源:牛客网 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 题目描述 众所周知,在算法竞赛中,出题人对他出的题的难度往往存在错误的估计。比如出题人本想出个中等题,没想到却出成了简单题;本想出个自闭题...

LSD20164388的博客 974

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

2019年华南理工大学程序设计竞赛(春季赛)-H-Parco_Love_GCD

题目链接:https://ac.nowcoder.com/acm/contest/625/H 题意:给定n个数(<=1e9)的序列,其中n<=5e5,求该序列所有子序列的对应的gcd对1e9+7取模后的值。 思路:比赛的看错题了,以为是要求n个数任意两个数的gcd的和,怪样例QAQ。。不过就算我没看错题我可能也做不出来。先把n个数的公共gcd求出来,记为com。然后对每个子序列的起...

weixin_34380296的博客 160

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

2019年华南理⼯⼤学程序设计竞赛 (春季赛)(全题目代码)

2019年华南理⼯⼤学程序设计竞赛 (春季赛) Problem A. NB群友 Problem B. 修仙时在做什么?有没有空?可以来炼丹吗? Problem C. 六学家的困惑 Problem D. 神经⽹络 Problem E. 数独挑战 Problem F. 翻牌游戏 Problem G. 铁树开花 Problem H. Parco_Love_GCD Problem I. 炒...

Slime 1312

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ICPC 2019国际大学生程序设计竞赛,中国高校未能夺冠

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」,购票请扫码咨询 ↑↑↑整理 | 琥珀出品 | AI科技大本营(ID:rgznai100)一年一度的国际大学...

AI科技大本营 5161

库默尔定理学习小记

A组又出现了逆天的数竞定理,随便口胡一下。定理:有两个正整数n,m,Cnn+mC_{n +m}^n含p的幂次等于m+n在p进制下的进位数。简略证明:Cnn+mC_{n +m}^n含p的幂次 =∑∞i=1⌊n+mpi⌋−∑∞i=1⌊npi⌋−∑∞i=1⌊mpi⌋= \sum_{i = 1}^{∞}{\lfloor {n +m\over p^i}\rfloor} - \sum_{i = 1}^{∞}

Cold_Chair的博客 3794

数列特征方程学习小记

参考资料:《组合数学》 特征方程这个东西是用来求非齐次常数递推式的通项公式的,简单地说,就是: 有一数列fff,f[0..(k−1)]f[0..(k-1)]f[0..(k−1)]为定值; 对于f[i](i&amp;amp;gt;=k)f[i](i&amp;amp;gt;=k)f[i](i&amp;gt;=k),有f[i]=∑j=1kf[i−j]∗b[j]f[i]=\sum_{j=1}^kf[i-j]*b[j]f[i]=...

Cold_Chair的博客 1852

自然数幂和(拉格朗日插值法)

今天A组的第一题是这个 Σ(☉▽☉”a 题目: ∑ni=1ik\sum_{i=1}^n i^k 对一个大于i的质数取模。 1 解法: 不懂拉格朗日插值法的戳这儿。

Cold_Chair的博客 1775

【清华2019冬令营模拟12.15】排列

Description: n&lt;=5000 题解: 考虑对一个值i它的区间的长度是多少。 区间可以只考虑右半部分的,左边的倒过来做一遍就行了。 若i是固定的,找到右边第一个固定的j&gt;i 那么区间肯定不能超过j所在的位置。 可以直接枚举区间的右端点,这个右端点选的大于i,它左边的小于i,剩余的乱排,用排列数算即可。 这一部分O(n2)O(n^2)O(n2) 若i不是固定的,找到整个序列固...

Cold_Chair的博客 1590

简单斯特林数学习小记

前言: 斯特林数这个东西,好像小学时就看过,当时水平很低,根本不会。 以前也遇到过一道第二类斯特林数的题,当时直接copy题解的,也不会运用。 最近遇到了自然数幂和,递推法很大的局限,只能学学第一类斯特林数。 定义: 斯特林数有第一类斯特林数和第二类斯特林数。 第一类斯特林数也分无符号和有符号,分别记为susus_u、sssss_s。 第二类斯特林数记为SSS. 第一类斯特林数...

Cold_Chair的博客 1535

Prüfer编码与Cayley公式学习小记

传送门:顾森大爷的博客. Prüfer编码: 一棵有编号的树如何用一个序列表示?Prüfer编码出奇迹。 如何构序列: 一共有n-2次操作: 找到当前叶子节点中编号最小的那个点x,输出与x相邻的点,删掉x。 根据序列求树: 由于没有出现在序列里的序号恰好是是叶子节点,所以每次找到每次找到序号最小的叶子节点,与序列的对应项形成一条边,把这个叶子删掉,继续考虑即可。 *一棵树对应唯...

Cold_Chair的博客 1217

康托展开模板(树状数组维护)O (n log n)

很早以前就接触过了康托展开,只是当时完全是死背公式的,用不了多久就忘了。直到最近又遇到了,才想到要彻底地弄懂——于是只花了一分钟就懂了。 那么最最最普通的做法就是每次用O(n)的时间找到i位置后的比i位置上这个数小的数的个数,乘上(n−i)!(n−i)!,不要忘记下标是从1开始的,所以求出的结果加上1。 这个算法时间复杂度是O(n2n2) 当n=10000时,就难以接受了。 我们对aiai...

Cold_Chair的博客 1161

原根相关

原根,定义为,对一给定模数p(p是奇质数),若有一g,满足g1−p−1g^{1-p-1}g1−p−1两两不同,则称g为p的原根。 不会证明的结论QAQ: 奇质数p一定存在原根,而且通过打表我们可以发现最小的原根都很小。 task1:如何判断一个数x是否为p的一个原根? 费马小定理:xp−1=1(p为质数)x^{p-1}=1(p为质数)xp−1=1(p为质数) 假设x1−p−1x^{1-p-1}x1...

Cold_Chair的博客 1085

自然数幂和(差分表法)

问题:求∑ni=1ik\sum_{i = 1}^n i^k (1<=k<=2000) 模数为大于n的质数。题解:这个东西可以证明k次的自然数幂和一定是个k+1次的多项式,对拉格朗日插值法有点帮助。二次项展开: (n+1)k−nk(n+1)^k-n^k =∑k−1i=0Cik∗ni=\sum_{i=0}^{k-1}C_k^i*n^i∑ni=1((i+1)k−ik)=(n+1)k−1\sum_{

Cold_Chair的博客 1069
上一篇: 【GDOI2019模拟2019.4.13】数据结构
下一篇: 浙江集训(4.17-4.18)
Cold_Chair
博客等级 码龄11年 158粉丝 410原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值