「AGC025D」 Choosing Points

神仙构造题。

首先你会尝试暴力做,先随便选一个点,然后把当前能选得全选上,然后你发现这样样例都过不了。

然后我们可以这样考虑:你把距离为 \(\sqrt{D}\) 的点连起来,会得到一个二分图。

考虑分情况讨论:

  • \(D \equiv 3 \pmod 4\)

    根据小学二年级的数学知识可知这种情况不存在。

  • \(D \equiv 1 \pmod 2\)

    此时有 \((x_1-x_2)^2+(y_1-y_2)^2\equiv|x_1-x_2|+|y_1-y_2|\equiv (x_1-x_2)+(y_1-y_2)\equiv 1\pmod 2\)

    显然可以按照 \((x+y)\) 的奇偶性进行分组。

  • \(D \equiv 0 \pmod 2\)

    现在好像处理不了了,我们可能需要继续分组。

    • \(D \equiv 2 \pmod 4\)

      根据小学二年级得到数学知识显然没有 \(x^2\equiv 2\pmod 4\),所以一定有 \((x_1-x_2)^2\equiv 1 \and (y_1-y_2)^2\equiv 1\)。按照 \(x\) 的奇偶性分组后,有边相连的显然不在同一组。

    • \(D \equiv 0 \pmod 4\)

      根据小学二年级得到数学知识显然没有 \(x^2\equiv 2\pmod 4\),所以一定有\((x_1-x_2)^2+(y_1-y_2)^2\equiv 0 \pmod 4\iff x_1\equiv x_2\pmod 2 \and y_1\equiv y_2\pmod 2\)

      然后把有边相连的点看成一组,我们只需要证明每组都是二分图。这个东西只需要将所有的坐标都除以二向下取整,就转化成了范围更小的子问题。

然后你现在有两个 \(D\),每个 \(D\) 会把图划分成两部分,也就是说,我们会将原图分成至多四个部分,找最大的那个部分输出即可。

/*---Author:HenryHuang---*/
/*---Never Settle---*/
#include<bits/stdc++.h>
using namespace std;
int siz,d1,d2;
int vis[1010][1010];
void solve(int x){
int tim=0;
while(x%4==0) x/=4,++tim;
if(x&1){
for(int i=0;i<siz*2;++i)
for(int j=0;j<siz*2;++j)
if(((i>>tim)+(j>>tim))&1) vis[i][j]=1;
}
else{
for(int i=0;i<siz*2;++i)
for(int j=0;j<siz*2;++j)
if(((i>>tim))&1) vis[i][j]=1;
}
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
cin>>siz>>d1>>d2;solve(d1),solve(d2);
int num=0;
for(int i=0;i<siz*2;++i)
for(int j=0;j<siz*2;++j){
if(!vis[i][j]) cout<<i<<' '<<j<<'\n',++num;
if(num==siz*siz) return 0;
} return 0;
}

「AGC025D」 Choosing Points的更多相关文章

  1. 「CF643G」 Choosing Ads

    「CF643G」 Choosing Ads 传送门 如果你知道摩尔投票法可以扩展事实上是个一眼题,又好写又好调. 首先摩尔投票法是用来求众数定义为超过所有数个数一半的数的一个算法. 大致算法流程: 将 ...

  2. [AGC025D]Choosing Points

    [AGC025D]Choosing Points 题目大意: 输⼊\(n(n\le300),d_1,d_2\),你要找到\(n^2\)个整点\((x,y)\)满⾜\(0\le x,y<2n\). ...

  3. 洛谷比赛 「EZEC」 Round 4

    洛谷比赛 「EZEC」 Round 4 T1 zrmpaul Loves Array 题目描述 小 Z 有一个下标从 \(1\) 开始并且长度为 \(n\) 的序列,初始时下标为 \(i\) 位置的数 ...

  4. 「译」JUnit 5 系列:条件测试

    原文地址:http://blog.codefx.org/libraries/junit-5-conditions/ 原文日期:08, May, 2016 译文首发:Linesh 的博客:「译」JUni ...

  5. 「译」JUnit 5 系列:扩展模型(Extension Model)

    原文地址:http://blog.codefx.org/design/architecture/junit-5-extension-model/ 原文日期:11, Apr, 2016 译文首发:Lin ...

  6. JavaScript OOP 之「创建对象」

    工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程.工厂模式虽然解决了创建多个相似对象的问题,但却没有解决对象识别的问题. function createPers ...

  7. 「C++」理解智能指针

    维基百科上面对于「智能指针」是这样描述的: 智能指针(英语:Smart pointer)是一种抽象的数据类型.在程序设计中,它通常是经由类型模板(class template)来实做,借由模板(tem ...

  8. 「JavaScript」四种跨域方式详解

    超详细并且带 Demo 的 JavaScript 跨域指南来了! 本文基于你了解 JavaScript 的同源策略,并且了解使用跨域跨域的理由. 1. JSONP 首先要介绍的跨域方法必然是 JSON ...

  9. 「2014-5-31」Z-Stack - Modification of Zigbee Device Object for better network access management

    写一份赏心悦目的工程文档,是很困难的事情.若想写得完善,不仅得用对工具(use the right tools),注重文笔,还得投入大把时间,真心是一件难度颇高的事情.但,若是真写好了,也是善莫大焉: ...

随机推荐

  1. 五:.net core(.NET 6)使用Autofac实现依赖注入

    Autofac的简单使用: 由于将来可能引用很多包,为了保持统一队形,我们再新建一个类库项目Wsk.Core.Package,当做包的引用集合: 删掉Class1,把Wsk.Core.Wsk.Core ...

  2. WEB安全防护相关响应头(上)

    WEB 安全攻防是个庞大的话题,有各种不同角度的探讨和实践.即使只讨论防护的对象,也有诸多不同的方向,包括但不限于:WEB 服务器.数据库.业务逻辑.敏感数据等等.除了这些我们惯常关注的方面,WEB ...

  3. CVPR2018论文看点:基于度量学习分类与少镜头目标检测

    CVPR2018论文看点:基于度量学习分类与少镜头目标检测 简介 本文链接地址:https://arxiv.org/pdf/1806.04728.pdf 距离度量学习(DML)已成功地应用于目标分类, ...

  4. Imec推出高性能芯片的低成本冷却解决方案

    Imec推出高性能芯片的低成本冷却解决方案 Imec unveils low-cost cooling solution for high-performance chips 3D打印冷却器优于传统解 ...

  5. jmeter的参数化实现

    背景: 在实际的测试工作中,我们经常需要对多组不同的输入数据,进行同样的测试操作步骤,以验证我们的软件的功能.这种测试方式在业界称为数据驱动测试,而在实际测试工作中,测试工具中实现不同数据输入的过程称 ...

  6. JVM 垃圾回收算法和垃圾回收器

    JVM 垃圾回收算法和垃圾回收器. 一.垃圾回收的区域 栈:栈中的生命周期是跟随线程,所以一般不需要关注. 堆:堆中的对象是垃圾回收的重点. 方法区:这一块也会发生垃圾回收,不过这块的效率比较低,一般 ...

  7. Transformers for Graph Representation

    Do Transformers Really Perform Badfor Graph Representation? microsoft/Graphormer: This is the offici ...

  8. Windows的静态库与动态库

    Windows的静态库与动态库 1.静态库 1.1 静态库特点 运行不存在 静态库源码被链接到调用程序中 目标程序的归档 1.2 C语言静态库 C静态库的创建 创建一个静态库项目. 添加库程序,源文件 ...

  9. EasyExcel随笔

    EasyExcel 注意点 不支持的功能 单个文件的并发写入.读取 读取图片 宏 csv读取 出现 NoSuchMethodException, ClassNotFoundException, NoC ...

  10. 回顾Games101图形学(一)几何变换中一些公式的推导

    回顾Games101 chatper1 - 6 前言 本文只写回顾后重新加深认识的知识 透视除法的意义 经过MVP矩阵之后,将模型空间下某点的坐标,转换成了裁剪空间下的坐标,此时因为裁剪空间的范围是x ...