当前位置: 首页 > news >正文

codeforces 492E. Vanya and Field(exgcd求逆元)

题目链接:codeforces 492e vanya and field

留个扩展gcd求逆元的板子。

设i,j为每颗苹果树的位置,因为gcd(n,dx) = 1,gcd(n,dy) = 1,所以当走了n步后,x从0~n-1,y从0~n-1都访问过,但x,y不相同.

所以,x肯定要经过0点,所以我只需要求y点就可以了。

i,j为每颗苹果树的位置,设在经过了a步后,i到达了0,j到达了M.

则有

1----------------------(i + b * dx) % n = 0

2-----------------------(j + b * dy) % n = M % n

则2 * dx - 1 * dy消掉未知数 b.

得方程。          

 

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <algorithm>
 5 #include <cmath>
 6 using namespace std;
 7 typedef long long ll;
 8 const ll mod = 1e9+7;
 9 const int maxn = 1e6+5;
10 int vis[maxn];
11 ll n,m,dx,dy;
12 ll ex_gcd(ll a,ll b, ll &x, ll &y)
13 {
14     if (b == 0)
15     {
16         x = 1;
17         y = 0;
18         return a;
19     }
20     else
21     {
22         ll gcd = ex_gcd(b, a % b, x, y);
23         ll t = x;
24         x = y;
25         y = t - (a / b) * y;
26         return gcd;
27     }
28 }
29 int main()
30 {
31     cin>>n>>m>>dx>>dy;
32     ll x,y;
33     ex_gcd(dx,n,x,y);
34     while(x<0) x+=n;
35     ll inv = x;
36     ll ans = 0;
37     ll i,j;
38     ll mm;
39     for(int k=0;k<m;k++)
40     {
41         scanf("%I64d %I64d",&i,&j);
42         mm = ((dx*j-dy*i)%n+n)%n*inv%n;
43         vis[mm]++;
44     }
45     ll mmm = 0;
46     for(int k=0;k<n;k++)
47     {
48         if(vis[k]>ans)
49         {
50             ans = vis[k];
51             mmm = k;
52         }
53     }
54     printf("0 %I64d\n",mmm);
55     return 0;
56 }

 

转载于:https://www.cnblogs.com/littlepear/p/5771303.html

相关文章:

  • tcp 重发 应用层重传
  • Log4j具体使用实例
  • ios8之后的界面旋转简单原理
  • 设计模式之桥接模式(Bridge模式)
  • jsdoc文档
  • ESXI虚拟化增加系统盘容量
  • php过滤textarea 中的换行符问题
  • Unity3D-光照贴图技术
  • 说说动画卡顿的解决方案
  • ffmpeg从AVFrame取出yuv数据到保存到char*中
  • Keepalived工作原理详解及配置实例
  • 差分进化算法 DE-Differential Evolution
  • 使用IDEA社区版开发Web项目
  • centos7下搭建zabbix监控
  • 第一个小项目
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • Angular6错误 Service: No provider for Renderer2
  • CentOS从零开始部署Nodejs项目
  • go append函数以及写入
  • jquery cookie
  • js作用域和this的理解
  • JWT究竟是什么呢?
  • MaxCompute访问TableStore(OTS) 数据
  • node.js
  • python3 使用 asyncio 代替线程
  • Shell编程
  • SOFAMosn配置模型
  • SpiderData 2019年2月25日 DApp数据排行榜
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • ​一些不规范的GTID使用场景
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • .gitattributes 文件
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .net6+aspose.words导出word并转pdf
  • ??eclipse的安装配置问题!??
  • [ CTF ]【天格】战队WriteUp- 2022年第三届“网鼎杯”网络安全大赛(青龙组)
  • [8-23]知识梳理:文件系统、Bash基础特性、目录管理、文件管理、文本查看编辑处理...
  • [Android]一个简单使用Handler做Timer的例子
  • [AS3]URLLoader+URLRequest+JPGEncoder实现BitmapData图片数据保存
  • [BZOJ1008][HNOI2008]越狱
  • [CF407E]k-d-sequence
  • [exgcd] Jzoj P1158 荒岛野人
  • [git] windows系统安装git教程和配置
  • [go] 迭代器模式
  • [java/jdbc]插入数据时获取自增长主键的值
  • [JAVA设计模式]第二部分:创建模式
  • [LeetCode 687]最长同值路径