以后碰到这种题就应该往对称性想:设x的对称数x‘是1e6-x+1

对于任意一组对称数x+x'-2=1e6-1,2e6-(x+x')=1e6-1,即X集合Y集合同时加上任意一组对称数都是可以的

枚举每个xi,如果其对称数1e6-xi+1不在集合X中,那么在Y中添加这个对称数即可,正确性显然

反之如果对称数在集合X中,则X集合的和多了1e6,我们再去找一组不在集合中的对称数,将这组数加入集合Y中,等价于Y集合的数和也多了1e6

#include <bits/stdc++.h>
#define maxn 2000010
#define maxm 110
using namespace std;
int S, n, m, a[maxn], vis[maxn], ans[maxn], v[maxn]; inline int read(){
int s = , w = ;
char c = getchar();
for (; !isdigit(c); c = getchar()) if (c == '-') w = -;
for (; isdigit(c); c = getchar()) s = (s << ) + (s << ) + (c ^ );
return s * w;
} int main(){
S = , n = read();
for (int i = ; i <= n; ++i) a[i] = read(), v[a[i]] = ;
for (int i = , j = ; i <= n; ++i){
if (vis[a[i]]) continue;
if (!v[S + - a[i]]) ans[++m] = S + - a[i]; else{
while (v[j] || v[S + - j]) ++j;
ans[++m] = j, ans[++m] = S + - j;
vis[S + - a[i]] = ;
++j;
}
}
printf("%d\n", m);
for (int i = ; i <= m; ++i) printf("%d ", ans[i]);
return ;
}

最新文章

  1. PHP 分页函数
  2. Daily Scrum 12.14
  3. [No00005C]我也入住Markdown
  4. NUnit Test Adapter----单元测试需要安装这个插件
  5. ReactNative环境搭建
  6. 关于HSL和HSV颜色空间的详细论述
  7. Content Providers
  8. 得到一个div下 特定ID的所有标签
  9. PHP中PDO错误/异常(PDOException)处理
  10. linux安装禅道的步骤
  11. 福州大学软工1715|W班-启航
  12. 《java入门第一季》之面向对象(private关键字与封装概念的初探)
  13. 领域驱动设计和Spring
  14. Use the Microsoft Symbol for VS and Windbg
  15. 四则运算安卓版ver.mk3
  16. 自动部署tomcat,并以普通用户身份运行 for centos6
  17. tp5 集成 layui富文本编辑器
  18. 使用synchronized(非this对象)同步代码块解决脏读问题
  19. MessageFormat使用记录
  20. python的*args和**kwargs基础用法

热门文章

  1. FastDFSClient上传图片工具类
  2. delphi 运行时提升软件到管理员权限
  3. python 网络编程:socket(二)
  4. 探索Redis设计与实现8:连接底层与表面的数据结构robj
  5. NIO模型学习笔记
  6. cannot find module node-sass
  7. 百度之星资格赛2018B题-子串查询
  8. python学习笔记:接口开发——flask Demo实例
  9. postgis常用的函数
  10. Dubbo 微服务系列(03)服务注册