codeforces1045B
自己瞎鸡巴yy了一下,可知若一个数X不能被表示出来,那么X所有的表示方法都在A集合中,如a1,a2,a3······an-1,an-2中若a1+ai不能被表示出来,那么如果a1到ai是回文(这里回文是指a2-a1=an-an-1,a3-a2=an-1-an-1大概懂了就可以),这样用一个数组存一下两两之间的差哈希一下就可以了
#include <cstdio>
#include <algorithm>
using namespace std;
#define int long long
const int N=,md=,ha=;
int n,m,a[N],b[N],de[N],has1[N],has2[N],re[N],cnt=;
inline bool jud(int l,int r)
{
return ((has1[r]-has1[l-]*de[r-l+]%md+md)%md==(has2[l]-has2[r+]*de[r-l+]%md+md)%md)?:;
}
signed main()
{
int i,bo; scanf("%lld%lld",&n,&m); for(i=;i<=n;i++)scanf("%lld",&a[i]); sort(a+,a+n+);
for(i=;i<n;i++)b[i]=a[i+]-a[i]; de[]=1LL; for(i=;i<=n;i++)de[i]=de[i-]*ha%md;
for(i=;i<n;i++)has1[i]=(has1[i-]*ha%md+b[i])%md; for(i=n-;i>=;i--)has2[i]=(has2[i+]*ha%md+b[i])%md;
for(i=;i<=n;i++)
{
bo=;
if(i!=)bo&=jud(,i-);
if(i!=n)
{
bo&=(a[]+a[i]+m==a[i+]+a[n]); if(i!=n-)bo&=jud(i+,n-);
}if(bo)re[++cnt]=(a[]+a[i])%m;
}printf("%lld\n",cnt); sort(re+,re+cnt+); for(i=;i<=cnt;i++)printf("%lld ",re[i]);
}
codeforces1045B的更多相关文章
- codeforces1045B Space Isaac 【manacher】【差分】
题目大意: 题目是将$[0,m)$的数划成了两个集合,其中一个集合的元素个数不超过$n$.问在第一个集合中选出的数加上第二个集合中选出的数的和中没有出现的数有哪些. 题目分析: 很有意思的一道题.方便 ...
- Noip前的大抱佛脚----赛前任务
赛前任务 tags:任务清单 前言 现在xzy太弱了,而且他最近越来越弱了,天天被爆踩,天天被爆踩 题单不会在作业部落发布,所以可(yi)能(ding)会不及时更新 省选前的练习莫名其妙地成为了Noi ...
随机推荐
- Echo团队Alpha冲刺随笔 - 第二天
项目冲刺情况 进展 项目各端都已经开始正式动工,完成了框架的搭建及小部分代码的编写 问题 对于框架使用不够熟练 心得 撸起袖子加油干! 今日会议内容 黄少勇 今日进展 实现账号绑定和首页公告信息及使用 ...
- SkylineGlobe 如何实现工程进度管理或者说是对象生命周期管理
SkylineGlobe 的 TerraExplorer Pro里面,给我们提供了一个Timespan Tags工具,通过这个工具,我们可以设置ProjectTree任务组对象的生命周期: 然后通过调 ...
- ASP.NET Core StaticFiles中间件修改wwwroot(转载)
ASP.NET Core 开发,中间件(StaticFiles)的使用,我们开发一款简易的静态文件服务器.告别需要使用文件,又需要安装一个web服务器.现在随时随地打开程序即可使用,跨平台,方便快捷. ...
- Dubbo与Zookeeper在Window上的安装与简单使用
一:Dubbo是什么?有什么用途?? 使用Dubbo可以将应用分布到多个服务器上,当有访问时,Dubbo有帮你管理自动将请求分配给合适得到服务器去执行,即建立多个生产者,建立多个消费者,自动匹配生产者 ...
- javascript中forEach()和jquery中each()的区别
forEach是ES5中操作数组的一种方法,主要功能是遍历数组 1.forEach方法中的function回调有三个参数:第一个参数是遍历的数组内容,第二个参数是对应的数组索引,第三个参数是数组本身 ...
- select 下拉选中
<body> <select name="" id=""> <option value="">张三< ...
- JSON WEB TOKEN,简单谈谈TOKEN的使用及在C#中的实现
十年河东,十年河西,莫欺少年穷. 学无止境,精益求精. 突然发现整个十月份自己还没有写一篇博客......哎,说出来都是泪啊,最近加班实在实在实在是太多了,真的没有多余的时间写博客.这不,今天也在加班 ...
- EZ 2018 06 10 NOIP2018 模拟赛(十八)
好久没写blog&&比赛题解了,最近补一下 这次还是很狗的,T3想了很久最后竟然连并查集都忘写了,然后T2map莫名爆炸. Rating爆减......链接不解释 好了我们开始看题. ...
- 机器学习(三)--- scala学习笔记
Scala是一门多范式的编程语言,一种类似Java的编程语言,设计初衷是实现可伸缩的语言.并集成面向对象编程和函数式编程的各种特性. Spark是UC Berkeley AMP lab所开源的类Had ...
- 将当前的Ubuntu系统封装成为可以安装(发布)的iso镜像
将当前的Ubuntu系统封装成为可以安装(发布)的iso镜像 在使用以上方法安装依赖的时候xresprobe 会找不到安装地址,采用下面的方式: Package xresprobe is not in ...