传送门

文章目录

  • 题意:
  • 思路:

题意:

给你一个无限个点的坐标轴,一个集合BBB,如果存在∣i−j∣=bk|i-j|=b_k∣i−j∣=bk​的话,那么i,ji,ji,j之间就连边。现在问你至少要从集合BBB中去掉多少个数才能使得连完边之后这个图是二分图。
n≤2e5,Bi≤1e18n\le2e5,B_i\le1e18n≤2e5,Bi​≤1e18

思路:

首先一个图是二分图的条件是不存在奇环,那么假设集合中有两个数x,yx,yx,y,如果存在两个正整数a,ba,ba,b使得ax=byax=byax=by且(a+b)mod2=0(a+b)\bmod2=0(a+b)mod2=0的话,那么这两个数是可以同时存在的。
转换一下就是(lcm(x,y)x+lcm(x,y)y)mod2=0(\frac{lcm(x,y)}{x}+\frac{lcm(x,y)}{y})\bmod 2=0(xlcm(x,y)​+ylcm(x,y)​)mod2=0的时候才可以,即x+ygcd(x,y)mod2=0\frac{x+y}{gcd(x,y)}\bmod2=0gcd(x,y)x+y​mod2=0。
现在分情况讨论一下:
(1)x,y(1)x,y(1)x,y都为奇数,由于只有 奇数∗*∗奇数===奇数,x+ygcd(x,y)mod2=0\frac{x+y}{gcd(x,y)}\bmod2=0gcd(x,y)x+y​mod2=0显然成立。
(2)x,y(2)x,y(2)x,y一个奇数一个偶数,这里跟上面同理由于gcd(x,y)gcd(x,y)gcd(x,y)一定为奇数,多了一个 偶数∗*∗奇数=偶数,x+ygcd(x,y)mod2=1\frac{x+y}{gcd(x,y)}\bmod2=1gcd(x,y)x+y​mod2=1显然不可以。
(3)x,y(3)x,y(3)x,y都为偶数,这个时候可以将两个数共同除222消去末尾000,之后转换成上面两种情况。

通过上面的规律可以发现,我们按照末尾000的个数来分组即可。

// Problem: D. Alex and Julian
// Contest: Codeforces - Codeforces Round #586 (Div. 1 + Div. 2)
// URL: https://codeforces.com/contest/1220/problem/D
// Memory Limit: 256 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)//#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4.1,sse4.2,avx,avx2,popcnt,tune=native")
//#pragma GCC optimize(2)
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<map>
#include<cmath>
#include<cctype>
#include<vector>
#include<set>
#include<queue>
#include<algorithm>
#include<sstream>
#include<ctime>
#include<cstdlib>
#include<random>
#include<cassert>
#define X first
#define Y second
#define L (u<<1)
#define R (u<<1|1)
#define pb push_back
#define mk make_pair
#define Mid ((tr[u].l+tr[u].r)>>1)
#define Len(u) (tr[u].r-tr[u].l+1)
#define random(a,b) ((a)+rand()%((b)-(a)+1))
#define db puts("---")
using namespace std;//void rd_cre() { freopen("d://dp//data.txt","w",stdout); srand(time(NULL)); }
//void rd_ac() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//AC.txt","w",stdout); }
//void rd_wa() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//WA.txt","w",stdout); }typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int,int> PII;const int N=1000010,mod=1e9+7,INF=0x3f3f3f3f;
const double eps=1e-6;int n;
LL a[N];
vector<LL>v[100];int get(LL x) {int id;for(int i=60;i>=0;i--) if(x>>i&1) id=i;return id;
}int main()
{//  ios::sync_with_stdio(false);
//  cin.tie(0);cin>>n;for(int i=1;i<=n;i++) {scanf("%lld",&a[i]);v[get(a[i])].pb(a[i]);}int id,mx=0;for(int i=0;i<=60;i++) if(v[i].size()>mx) mx=v[i].size(),id=i;printf("%d\n",n-mx);for(int i=0;i<=60;i++) {if(id==i) continue;for(auto x:v[i]) printf("%lld ",x);}return 0;
}
/*
*/

Codeforces Round #586 (Div. 1 + Div. 2) D. Alex and Julian 数学 + 思维相关推荐

  1. Codeforces Round #586 (Div. 1 + Div. 2) B. Multiplication Table 思维 + 公式

    传送门 文章目录 题意: 思路: 题意: 给你一个n∗nn*nn∗n的矩阵,每个位置由ai∗aja_i*a_jai​∗aj​得来,主对角线为000,让你求出来aia_iai​. n≤1e3n\le1e ...

  2. Educational Codeforces Round 90 (Rated for Div. 2)(A, B, C, D, E)

    Educational Codeforces Round 90 (Rated for Div. 2) Donut Shops 思路 分三种情况: a==c/ba == c / ba==c/b这个时候两 ...

  3. Educational Codeforces Round 114 (Rated for Div. 2) (A ~ F)全题解

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Educational Codeforces Round 114 (Rated for Div. 2) ...

  4. Educational Codeforces Round 106 (Rated for Div. 2)(A ~ E)题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 Educational Codeforces Round 106 (Rated for Div. ...

  5. Educational Codeforces Round 37 (Rated for Div. 2) 1

    Educational Codeforces Round 37 (Rated for Div. 2) A.Water The Garden 题意:Max想给花园浇水.花园可被视为长度为n的花园床,花园 ...

  6. Educational Codeforces Round 89 (Rated for Div. 2)(A, B, C, D)

    Educational Codeforces Round 89 (Rated for Div. 2) A. Shovels and Swords 思路 题意非常简单,就是得到最多的物品嘛,我们假定a, ...

  7. Educational Codeforces Round 114 (Rated for Div. 2) D. The Strongest Build 暴力 + bfs

    传送门 文章目录 题意: 思路: 题意: 你有nnn个装备槽,每个槽里面有cic_ici​个力量加成,对于每个槽只能选一个力量加成,现在给你mmm个力量组合[b1,b2,...,bn][b_1,b_2 ...

  8. Educational Codeforces Round 72 (Rated for Div. 2) D. Coloring Edges dfs树/拓扑找环

    传送门 文章目录 题意: 思路: 题意: 给你一张图,你需要给这个图的边染色,保证如果有环那么这个环内边的颜色不全相同,输出染色方案和用的颜色个数. n,m≤5e3n,m\le5e3n,m≤5e3 思 ...

  9. Educational Codeforces Round 111 (Rated for Div. 2) D. Excellent Arrays 组合数学

    传送门 文章目录 题意: 思路: 题意: 给你一个数组aia_iai​,定义一个数组是好的当且仅当对于所有iii都有ai!=ia_i!=iai​!=i.定义f(a)f(a)f(a)表示数组aaa中i& ...

最新文章

  1. html 3d立体阴影效果图,CSS3打造带阴影的旋转3D图像
  2. 结构型模式之Bridge模式
  3. 对分查找的最多次数_Java数据结构与算法:多路查找树
  4. 1130-host ... is not allowed to connect to this MySql server登录失败
  5. 一个奇怪的注意事项TNS-12545 TNS-12560 TNS-00515
  6. 软考网络管理员学习笔记4之第四章局域网技术
  7. Web开发如何实现Tomcat等服务器热部署不用重启
  8. aws rds监控慢sql_AWS RDS SQL Server –启动新的数据库实例
  9. esp分区创建 linux_善用EFI系统分区ESP
  10. java计算机毕业设计网络招聘系统源码+系统+数据库+lw文档+mybatis+运行部署
  11. 窥尽大数据背后被遮掩起来的财富
  12. 阿里云centos下载地址
  13. Educational Codeforces Round 140 (Rated for Div. 2)A~D题解
  14. C++ 控制台程序选择文件/文件夹
  15. python ks曲线_python之KS曲线
  16. 写小论文之引言写什么?
  17. C++ 静态成员变量和静态成员函数
  18. 腾讯云轻量应用服务器如何安装 Docker 并配置镜像加速源?
  19. linux系统SIG_ERR函数的用法,信号(Signal)
  20. D3 关联关系图 力学图

热门文章

  1. 计算机与交通工程论文,交通工程论文.doc
  2. php+对象+toarray_PHP 对象、数组间的转换
  3. 山西最值得一去的5座古镇,你都去过吗?
  4. 超级智能玩具《小小机器人》|全新50种玩法,创造力之源
  5. 孩子觉得数学难?那是底子没打好!
  6. 数学学得好,才可以发现别人发现不了的挣钱良机
  7. matlab中给图像加几个矩形框_没想到!PPT中的这个效果,用好了,简直就是渣图美化器...
  8. python tkinter进度条_在python3.7中更新tkinter进度条
  9. linux目录结果说明,Linux目录结构及文件说明
  10. java+字节码工具64位_jclasslib 下载-jclasslib 32位64位(java字节码查看工具) 5.1 官方版 - 河东下载站...