题目传送门

前置知识

最大公约数 | 裴蜀定理

简化题意

给定一个长度为 \(n\) 的序列 \(a\),求 \((\sum\limits_{i=1}^{n}d_ia_i) \bmod k\) 一共会有多少种不同的取值及取值的所有情况,其中对于每一个 \(i(1 \le i \le n)\) 均有 \(d_i\) 为非负整数。

解法

依据裴蜀定理,不难得到存在一个长度为 \(n\) 的序列 \(x\) 满足 \(a_1 x_1+a_2 x_2+a_3 x_3+ \dots = \gcd(a_1,a_2,a_3, \dots ,a_n)\),其中对于每一个 \(i(1 \le i \le n)\) 均有 \(x_i\) 为整数。所以一定有 \(\gcd(a_1,a_2,a_3, \dots ,a_n)|\sum\limits_{i=1}^{n}d_ia_i\)。

设 \(d'=\gcd(a_1,a_2,a_3, \dots ,a_n),r=(\sum\limits_{i=1}^{n}d_ia_i) \bmod k,\sum\limits_{i=1}^{n}d_ia_i=d'l=kh+r\),不难得到当 \(h\) 极大时有一组长度为 \(n\) 的序列 \(d\) 满足对于每一个 \(i(1 \le i \le n)\) 均有 \(d_i\) 为非负整数。

  • 这里可以感性理解一下。

于是可以建立一个不定方程 \(d'l=kh+r\),用 \(x'\) 代替 \(l\),用 \(y'\) 代替 \(-h\),得 \(d'x'+ky'=r\)。依据裴蜀定理,该方程有解当且仅当 \(\gcd(d',k)|r\)。因为 \(0 \le r<k\),所以共有 \(\dfrac{k}{\gcd(d',k)}\) 个不同的取值,为保证递增有第 \(i(1 \le i \le \dfrac{k}{\gcd(d',k)})\) 个取值为 \((i-1) \times \gcd(d',k)\)。

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define sort stable_sort
#define endl '\n'
int a[500001];
int gcd(int a,int b)
{
return b?gcd(b,a%b):a;
}
int main()
{
int n,k,i,ans=0;
cin>>n>>k;
ans=k;
for(i=1;i<=n;i++)
{
cin>>a[i];
ans=gcd(ans,a[i]);
}
cout<<k/ans<<endl;
for(i=0;i<=k/ans-1;i++)
{
cout<<i*ans<<" ";
}
return 0;
}

CF1010C Border 题解的更多相关文章

  1. 算法与数据结构基础 - 深度优先搜索(DFS)

    DFS基础 深度优先搜索(Depth First Search)是一种搜索思路,相比广度优先搜索(BFS),DFS对每一个分枝路径深入到不能再深入为止,其应用于树/图的遍历.嵌套关系处理.回溯等,可以 ...

  2. Codeforces | CF1010C 【Border】

    这道题大致题意是给定\(n\)个十进制整数和一个进制数\(k\),可以用无数多个给定的十进制整数,问这些十进制整数的和在模k意义下有多少种不同的结果(\(k\)进制下整数的最后一位就是这个数模\(k\ ...

  3. [BJWC2018]Border 的四种求法(后缀自动机+链分治+线段树合并)

    题目描述 给一个小写字母字符串 S ,q 次询问每次给出 l,r ,求 s[l..r] 的 Border . Border: 对于给定的串 s ,最大的 i 使得 s[1..i] = s[|s|-i+ ...

  4. leetcode & lintcode 题解

    刷题备忘录,for bug-free 招行面试题--求无序数组最长连续序列的长度,这里连续指的是值连续--间隔为1,并不是数值的位置连续 问题: 给出一个未排序的整数数组,找出最长的连续元素序列的长度 ...

  5. THUWC2018 题解

    2018清华冬令营 又一次由于接连而至的玄学现象跪惨,错失良机,就不再公开提我这次惨痛的经历了,写点干货-- day1 A 零食 (1s, 1G) 试题简述 \(n\) 种物品1,\(m\) 种物品2 ...

  6. Codeforces Round #499 (Div. 1)部分题解(B,C,D)

    Codeforces Round #499 (Div. 1) 这场本来想和同学一起打\(\rm virtual\ contest\)的,结果有事耽搁了,之后又陆陆续续写了些,就综合起来发一篇题解. B ...

  7. CF 1131A,1131B,1131C,1131D,1131F(Round541 A,B,C,D,F)题解

    A. Sea Battle time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  8. PKUSC2018题解

    PKUSC2018题解 真实排名 分别考虑第\(i\)个人翻倍和不翻倍的情况,组合数算一下即可,务必注意实现细节. 代码 最大前缀和 设\(sum_s\)表示集合\(\sum_{i\in s} a_i ...

  9. LeetCode 1034. Coloring A Border

    原题链接在这里:https://leetcode.com/problems/coloring-a-border/ 题目: Given a 2-dimensional grid of integers, ...

  10. Vulnhub靶场题解

    Vulnhub简介 Vulnhub是一个提供各种漏洞环境的靶场平台,供安全爱好者学习渗透使用,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,需要使用VMware或者VirtualBox运行 ...

随机推荐

  1. 【架构师视角系列】Apollo配置中心之Client端(二)

    原创文章,转载请标注.https://www.cnblogs.com/boycelee/p/17978027 目录 声明 配置中心系列文章 一.客户端架构 1.Config Service职责 (1) ...

  2. DBA实战面试题(一)

    数据库面试测试题(一) 简述当前主流RDBMS软件有哪些?开源且跨平台的数据库软件有哪些? 参考答案 当前主流的数据库服务器软件有: Oracle . DB2 . SQL SERVER .MySQL ...

  3. Verilog Review

    Agenda 目的 Verilog概述 Verilog建模 模块 模块组成 书写建议 时延 Verilog基本语法 标识符 可读性 注释 空格 数据类型 操作数 运算符 条件语句 循环语句 函数 Ve ...

  4. phpcms : Uncaught Error: [] operator not supported for strings... 的解决方案

    打开/phpcms/modules/admin/classes/push_api.class.php,大概在约 141行, $fields_arr = $fields_value = ''; 将它改为 ...

  5. DellEMC 服务器安装ESXi的简单步骤

    DellEMC 服务器安装ESXi的简单步骤 背景 ESXi的镜像其实分为多种. 官方会发布一个版本的ISO. 然后会不定期进行升级, 解决安全,性能以及功能bug等. 7.0 为例的话 就有ESXi ...

  6. linux 内存盘的使用方式与验证

    linux 内存盘的使用方式与验证 背景 某些情况下, 硬盘的写入是一个很大的瓶颈 使用 内存文件系统的方式应该能够极大的提高IO的速度. 内存盘的优点是比较快, 缺点就是数据不是持久化的. 其实还是 ...

  7. [转帖]命令行非明文密码连接 TiDB

    https://tidb.net/blog/6794a34b#%E6%96%B9%E5%BC%8F%E4%B8%80%EF%BC%9A%E5%91%BD%E4%BB%A4%E8%A1%8C%E8%BE ...

  8. [转帖]Chrome 109发布,最后一个支持Windows 7/8的版本

    https://www.163.com/dy/article/HQR3QQFD0511CUMI.html 出品 | OSC开源社区(ID:oschina2013) Google 在去年 12 月 1 ...

  9. [转帖]Redis 核心篇:唯快不破的秘密

    文章系转载,方便整理和归纳,源文地址:https://z.itpub.net/article/detail/4B5A03BDDBE9A2BC3E080E278FE4D21E 以下文章来源于码哥字节 , ...

  10. [转帖]kubelet 原理解析三:runtime

    本文转自:https://feisky.xyz/posts/kube... 架构 Kubelet 架构图 Generic Runtime Manager:这是容器运行时的管理者,负责于 CRI 交互, ...