首页 > 其他分享 >2023.6.17 每日一题

2023.6.17 每日一题

时间:2023-06-17 11:45:49浏览次数:51  
标签:dots gcd 17 -- 每日 cin 2023.6 include LL

原题链接

B: Codeforces Round 691 (Div. 1) - A

B. Row GCD - 1600

题目大意

给定两列大正数 \(a_1,\dots, a_n\) 和 \(b_1,\dots,b_m\),现在要求 \(a_1 + b_j, \dots, a_n + b_j\) 的最大公约数。

解题思路

暴力一个个找不TLE才怪了,我们需要找到每次运算的公共特征。

我们知道对于gcd有如下性质:

\[\gcd(a,\ b) = \gcd(a,\ b - a) \]

这是我们欧几里得算法成立的重要条件。

那么对我们求的式子处理,就得到:

\[\begin{aligned} &\gcd(a_1 + b_j,\ a_2 + b_j,\dots,\ a_n + b_j)\\ =&\gcd(a_1 + b_j,\ a_2 - a_1,\dots,\ a_n - a_1)\\ =&\gcd(a_1 + b_j, gcd\_) \end{aligned} \]

这里的 \(gcd\_\) 是恒定值,可以在读入 \(a\) 数列时得到,那么只需要保留一个 \(a_1\) 的值,其他值在读入时优化掉即可。

AC Code

#include <iostream>
#include <algorithm>
#include <cstring>
#include <numeric>
#define endl '\n'
#define ios ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
using namespace std;
typedef long long LL;

const int N = 3e5 + 10;
const int MOD = 1e9 + 7;

void solve() {
    int n, m;
    cin >> n >> m;
    n--;
    LL a;
    cin >> a;
    LL gcd_ = 0;
    while (n--) {
        LL x;
        cin >> x;
        gcd_ = gcd(gcd_, x - a);
    }
    gcd_ = abs(gcd_);
    while (m--) {
        LL x;
        cin >> x;
        cout << gcd(gcd_, a + x) << ' ';
    }
    cout << endl;
}

signed main() {
    ios;
    int T = 1;
//    cin >> T;
    while (T--) {
        solve();
    }
}

标签:dots,gcd,17,--,每日,cin,2023.6,include,LL
From: https://www.cnblogs.com/SanCai-Newbie/p/17487271.html

相关文章

  • HIMA F7131 981713102 电源单元
    HIMAF7131981713102电源单元HIMAF7131981713102电源单元 引言在一个桥接的局域网里,为了增强可靠性,必然要建立一个冗余的路径,网段会用冗余的网桥连接。但是,在一个透明桥桥接的网络里,存在冗余的路径就能建立一个桥回路,桥回路对于一个局域网是致命的。它会带来如下问......
  • POJ2117 Electricity 题解 tarjan点双连通分量 割点
    题目链接:http://poj.org/problem?id=2117题目大意:给定一个由\(n\)个点\(m\)解题思路:tarjan,判断\(u\)的子节点有几个\(v\)满足\(low[v]\gedfn[u]\)就是答案,但是同时如果\(u\)不是这个dfs树的根节点,个数还要加\(1\)。示例程序1(C++11,POJ不支持):#include<bits/stdc++.h>......
  • 2023.6.16 10.数据库备份恢复
    10.数据库备份恢复1.MySQL逻辑备份与恢复1.1数据库完整备份与恢复1.2数据库增量备份与恢复2.MySQL物理备份与恢复2.1数据库完整备份与恢复2.2数据库增量备份与恢复2.3数据库差异备份与恢复3.简单命令进⾏物理备份4.⽣产备份思路与实战 通常数据库备份database数据......
  • 2023.6.16 09.数据库⽇志管理
    09.数据库⽇志管理1.错误⽇志2.查询⽇志3.慢查询⽇志4.⼆进制⽇志0.⽇志作⽤ 1.排查故障2.性能优化3.安全审计4.统计分析5.数据备份与恢复 1.mysql⽇志管理  2.错误⽇志MySQL的错误⽇志errorlog记录mysqld服务进程启动/关闭或运⾏过遇到......
  • CF1817E Half-sum 另解与 Trygub Number
    一题水两篇怎么说。上一篇中我们采用智慧方法减少了比较次数,避免了使用复杂的高精度数。现在我们有高论!可以做到\(\mathrmO(\log_BV\log_2n)\)在某一位加或者减一个大小\(\mathrmO(V)\)的数,支持判断正负和取特定位的值。怎么做呢。很简单,我们每一位的数值域原本是\([0,......
  • CF1817E Half-sum
    题意有一个大小为\(N\)的非负整数集合\(A\),每次你可以从集合中取任意两个数,并将它们的平均数放回序列。不停操作,知道集合最后剩下两个数。请求出这两个数的差的绝对值的最大值对\(10^9+7\)取模的结果。数据范围:\(1\leN\le10^6,0\leA_i\le10^9\)。做法首先给\(A\)......
  • ARC117F Gateau
    题意有一个\(2N\)个位置的圆,每个位置可以放任意多个物品(可以不放)。有\(2N\)条要求,形如第\(i\simi+N-1\)范围内的位置上总共至少有\(A_i\)个物品(\(0\lei<2N\),其中第\(j(j\ge2N)\)号位置其实是\(j-2N\)号)。问放置的物品总数至少为多少。\(1\leN\le1.5\times10^......
  • 2023.6.16 构建回文串检测
    注意关键性质,可以重排。所以我们可以只考虑一种情况,其他情况都可以重排到这种情况。考虑在区间内:所有字符都有偶数个,此时不需要改变任何字符,我们可以把字符重排成回文的。只有一种字符有奇数个,其他字符都是偶数个。此时可以拿出这种字符的一个放在最中间。然后又回归到情况1,......
  • Python设计模式-17-外观模式
    外观模式是一种结构型设计模式,它为复杂的子系统提供了一个简单的接口,从而隐藏了子系统的复杂性。外观模式通常包括以下几个角色:外观(Facade):提供了一个简单的接口,用于访问子系统中的一组接口。子系统(Subsystem):实现了子系统的功能,并处理外观对象指派的任务。下面是一个简单......
  • 2023.6.16 每日一题
    原题链接B-Technocup2020-EliminationRound1-DB.SequenceSorting-2000题目大意给定一个数组,定义一个操作:选定一个数,将所有值等于这个数的数移动到数组的一端(数组头或者数组尾)。问将数组变成非递减序列最少需要多少操作次数。解题思路对于每一种数,我们记录他们......