CF492E题解
屑题。
考虑对于每一个 \((x,y)\),将其与 \(((x+dx) \mod n,(y+dy) \mod n)\) 连边。
答案就是连通块中权值最大的那个。
考虑对于 \((x_1,y_1)\) 和 \((x_2,y_2)\) 两个点在同一个连通块中的条件。
条件就是同余方程 $x_1+x * dx \equiv x_2 \bmod n $ 和 $ y_1+y * dy \equiv y_2 \bmod n$ 的解是同一个。
考虑化简:
\]
\]
也就是:
\]
\]
因为值域只有 \(O(n)\),开个桶统计一下数量就好了。
因为 \(\gcd(n,dx)=\gcd(n,dy)=1\),所以 \(dx\) 和 \(dy\) 的逆元可以使用 exgcd 计算。
#include<cstdio>
typedef unsigned uint;
const uint M=1e6;
uint n,m,id,dx,dy,x[M],y[M],sum[M];
void exgcd(const uint&a,const uint&b,uint&x,uint&y){
if(!b)return void((x=1,y=0));exgcd(b,a%b,y,x);y-=a/b*x;
}
inline uint Del(const uint&a,const uint&b){
return b>a?a-b+n:a-b;
}
signed main(){
register uint i,T,X,Y;
scanf("%u%u%u%u",&n,&m,&dx,&dy);
exgcd(dx,n,X,Y);dx=(X+n)%n;
exgcd(dy,n,X,Y);dy=(X+n)%n;
for(i=1;i<=m;++i){
scanf("%u%u",&X,&Y);
T=Del(1ull*X*dx%n,1ull*Y*dy%n);
if(!sum[T])x[T]=X,y[T]=Y;
if(++sum[T]>sum[id])id=T;
}
printf("%u %u",x[id],y[id]);
}
CF492E题解的更多相关文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
随机推荐
- pageX的兼容性处理1
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Jackson转换为Collection、Array
1. Jackson转化为Array 注意的地方就是实体类一定要有无参的构造方法,否则会报异常 //com.fasterxml.jackson.databind.exc.InvalidDefiniti ...
- 使用C++开发PHP扩展
目前,PHP编程语言也是相当成熟,各种文档,各种问题,只要Google一下,总有你想要的答案.当然"如何开发PHP扩展"的文章也不少,但是很少有专门来介绍使用C++开发PHP扩展的 ...
- k8s之Pod基础概念
1. 资源限制 Pod是kubernetes中最小的资源管理组件,Pod也是最小化运行容器化应用的资源对象.一个Pod代表着集群中运行的一个进程.kubernetes中其他大多数组件都是围绕着Pod来 ...
- java常用类,包装类,String类的理解和创建对象以及StringBuilder和StringBuffer之间的区别联系
一.包装类的分类: 1.黄色部分的父类为Number 继承关系: Boolean Character 其他六个基本数据类型 2.装箱和拆箱 理解:一个例子,其他的都相同 装箱:Integer inte ...
- 浅谈java代理模式
讲解java代理模式 目录 讲解java代理模式 何谓代理模式 静态代理 动态代理 JDK动态代理 CGLIB动态代理 何谓代理模式 代理模式,即Proxy Pattern,23种java常用设计模式 ...
- docker错误处理——docker Job for docker.service failed because the control process exited with error code.
(15条消息) docker Job for docker.service failed because the control process exited with error code._Hel ...
- 用rewrite规则实现将所有到a域名的访问rewrite到b域名
1.临时重定向 1.1使用redirect实现临时重定向 # cat /apps/nginx/conf/nginx.conf ...省略... server { listen 80; server_n ...
- shell脚本命令
http://man.linuxde.net/shell-script 从键盘或文件中获取标准输入:read命令 文件的描述符和重定向 数组.关联数组和别名的使用 函数的定义.执行.传参和递归函数 ...
- Typora软件的使用
Typora软件 一.简介 1.该软件编写文档采用markdown格式是目前最为频繁的一种格式 2.该软件生成的文档后缀名是.md结尾 3.下载网址 https://www.typora.io/ 二. ...