Codeforces Round #395 Div.1 C pacifist【JZOJ5449】Pacifist
题目
papyrus 喜欢谜题... 来解一道如何?
在你面前有一个被加密了的数组,其原数组是一个等差序列,你面前的则是将原数组中的所有数字都对m 取模再打乱后而得到的新数组
papyrus 给你出的谜题就是还原出原等差序列
保证数据有解,而且因为papyrus 喜欢质数,所以他给你出的谜题中的m 一定是质数
分析
将a排序,当a[1]不是末项时,a[i]-a[1]一定有一个为公差
枚举公差d,
我们就可以通过等差数列和来求出首项a1,
我们通过a1和d来求出对应的等差数列平方和,na1²+n(n-1)d+n(n-1)(2n-1)d²
判断是否符合。
#include <iostream>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <map>
#include <queue>
using namespace std;
const int maxlongint=2147483647;
const int N=100005;
long long mo,a[N],sum,ny,n,su,ny1;
long long mi(long long x,int y)
{long long sum=1;for(;y;){if(y&1) sum=sum*x%mo;x=x*x%mo;y>>=1;}return sum;
}
int main()
{freopen("pacifist.in","r",stdin);//freopen("pacifist.out","w",stdout);scanf("%lld%lld",&mo,&n);for(int i=1;i<=n;i++) scanf("%lld",&a[i]),su=(su+a[i])%mo,sum=(sum+a[i]*a[i]%mo)%mo;sort(a+1,a+1+n);if(n==mo){printf("0 1");return 0;}ny=mi(6,mo-2);ny1=mi(n,mo-2);for(int i=2;i<=n;i++){long long d=(a[i]-a[1])%mo;if(!d) continue;long long a1=(2*su*ny1%mo-d*(n-1)%mo+mo)%mo*mi(2,mo-2)%mo;if((n*a1%mo*a1%mo+n*(n-1)%mo*(2*n-1)%mo*d%mo*d%mo*ny%mo+n*(n-1)%mo*d%mo*a1%mo)%mo==sum){printf("%lld %lld",a1,d);return 0;}}
}
转载于:https://www.cnblogs.com/chen1352/p/9079700.html
Codeforces Round #395 Div.1 C pacifist【JZOJ5449】Pacifist相关推荐
- Codeforces Round #180 (Div. 2) B. Sail 【模拟】
B. Sail time limit per test 1 second memory limit per test 256 megabytes input standard input output ...
- Codeforces Round #202 (Div. 1) A. Mafia 【二分】
A. Mafia time limit per test 2 seconds memory limit per test 256 megabytes input standard input outp ...
- Codeforces Round #630 (Div. 2) A~D【思维,数论,字符串,位运算】
A. Exercising Walk 水题一道:在指定空间内你一定要向各个方向走a,b,c,d步问你能否在规定空间内走完这题的坑点样例都给出来了qwq #include <iostream> ...
- Codeforces Round #395 (Div. 2) - A
题目链接:http://codeforces.com/contest/764/problem/A 题意:有两个人,第一个人每n分钟到达一次目的地,第二个人每m分钟到达一次目的地,现在给定一个时间z问在 ...
- Codeforces Round #395 (Div. 2)(未完)
2.2.2017 9:35~11:35 A - Taymyr is calling you 直接模拟 #include <iostream> #include <cstdio> ...
- 【Codeforces Round #532 (Div. 2) F. Ivan and Burgers】离线+线性基
F. Ivan and Burgers 题意 n个数,q次询问,每次询问一个区间内选出任意个数的异或最大值. 1<=n<=5∗1051<=n<=5*10^51<=n< ...
- Codeforces Round #699 (Div. 2) (A ~ F)6题全,超高质量良心题解【每日亿题】2021/2/6
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #699 (Div. 2) (A.B.C)[每日亿题]2021/2/ ...
- Codeforces Round #698 (Div. 2)(A ~ F)6题全,超高质量题解)【每日亿题】2021/2/4
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 [每日亿题]Codeforces Round #698 (Div. 2)(A ~ F)6题全,超 ...
- Codeforces Round #694 (Div. 1 + Div2)(A ~ H,8题全,超高质量题解)【每日亿题】2021/2/1、2/2
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 [每日亿题]Codeforces Round #694 (Div. 1 + Div2)(A ~ ...
最新文章
- 华为云NP考试题库_华为认证网络工程师怎么考
- 有关RDS上只读实例延时分析-同适用于自建MySQL主从延时分析判断
- python编程基础知识体系_Python 编程核心知识体系-基础|数据类型|控制流(一)...
- ebs查看服务状态_浅析AWS KMS密钥管理服务
- winpe制作u盘启动盘_怎么制作u盘启动盘 u盘启动盘制作方法【介绍】
- Hibernate实体映射配置1(java@注解方式)
- 2014/09/30 Learning Note
- HTTP 错误 500.22 - Internal Server Error
- C++ 布隆过滤器原理及实现
- 一张图看懂字节跳动8年创业史,太励志了吧
- CString Char* 转换 - C++学习
- 利用Lua脚本语言制作魔兽WOW插件
- 高斯模型matlab程序代码,我找到的高斯混合模型的代码
- 重学计算机组成原理(五)- 旋转跳跃的指令实现
- iPhone7 更新iOS13.3软件闪退
- VB6 MsgBox 函数
- 通过socks 代理 攻击局域网的电脑
- 零基础深度学习对金县房价预测
- Presto 与 Hive 语法学习
- 佳博Gprinter GP-80350 打印机驱动