本题珂以转换成一个式子

即求Ci + Pi × x ≡ Cj

+

Pj

× x (mod M)

的最小答案是否大于寿命最小值

以人数为最小值开始枚举山洞数,用扩展欧几里得计算最优答案是否大于寿命

若不大于则山洞数+1

P . S .若该式无解则当最优解大于寿命处理

#include<bits/stdc++.h>
using namespace std;
bool f;
int c[20],p[20],l[20],n,x,y,x0,x1,maxx,anss;
int gcd(int a,int b)
{
if(b==0) return a;
return gcd(b,a%b);
}
void exgcd(long long a,long long b)
{
if(b==0)
{
x0=1;
x1=0;
return;
}
exgcd(b,a%b);
int v=x0;
x0=x1;
x1=v-(a/b)*x1;
return;
}
bool check(int m)
{
for(register int i=1;i<n;i++)
{
for(register int j=i+1;j<=n;j++)
{
int v=p[j]-p[i],s=c[i]-c[j];
if(v<0)
{
s=-s;
v=-v;
}
int g=gcd(v,m);
if(s%g!=0)
continue;
exgcd(v,m);
int mm=m/g;
anss=((x0*(s/g))%mm+mm)%mm;
if(anss<=l[i]&&anss<=l[j])
return false;
}
}
return true;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>c[i]>>p[i]>>l[i];
maxx=max(maxx,c[i]);
}
for(register int m=maxx;;m++)
{
if(check(m))
{
cout<<m;
return 0;
}
}
return 0;
}

题解 guP2421 【[NOI2002]荒岛野人】的更多相关文章

  1. P1516 青蛙的约会和P2421 [NOI2002]荒岛野人

    洛谷 P1516 青蛙的约会 . 算是手推了一次数论题,以前做的都是看题解,虽然这题很水而且还交了5次才过... 求解方程\(x+am\equiv y+an \pmod l\)中,\(a\)的最小整数 ...

  2. bzoj1407 / P2421 [NOI2002]荒岛野人(exgcd)

    P2421 [NOI2002]荒岛野人 洞穴数不超过1e6 ---> 枚举 判断每个野人两两之间是否发生冲突:exgcd 假设有$m$个洞穴,某两人(设为1,2)在$t$时刻发生冲突 那么我们可 ...

  3. 【题解】洛谷P2421[NOI2002]荒岛野人 (Exgcd)

    洛谷P2421:https://www.luogu.org/problemnew/show/P2421 思路 从洞的最大编号开始增大枚举答案 对于每一个枚举的ans要满足Ci+k*Pi≡Cj+k*Pj ...

  4. 题解 P2421 【[NOI2002]荒岛野人】

    我的第一道数论紫题 首先,我们先看两个野人,他们相遇的充要条件是 \(C_i+P_i\times k\equiv C_j+P_j\times k\;(mod\;M)\) 其中\(k\)是第几年,且\( ...

  5. 题解【luogu P2421 bzoj P1407 [NOI2002]荒岛野人】

    洛谷题目链接 bzoj题目链接 题目大意:给定\(n\)组\(C_i, P_i, L_i\),求最小的\(M\)使得对于任意的\(i,j (1 \leq i, j \leq n)\) \[C_i + ...

  6. NOI2002 荒岛野人

    这题其实黑书上有,只是我脑残的没想起来…… 其实就是拓展欧几里得算法 我参看的题解:http://www.cnblogs.com/Rinyo/archive/2012/11/25/2788373.ht ...

  7. 洛谷P2421 [NOI2002]荒岛野人(扩展欧几里得)

    题目背景 原 A-B数对(增强版)参见P1102 题目描述 克里特岛以野人群居而著称.岛上有排列成环行的M个山洞.这些山洞顺时针编号为1,2,…,M.岛上住着N个野人,一开始依次住在山洞C1,C2,… ...

  8. Luogu P2421 [NOI2002]荒岛野人

    最近上课时提到的一道扩欧水题.还是很可做的. 我们首先注意到,如果一个数\(s\)是符合要求的,那么那些比它大(or 小)的数不一定符合要求. 因此说,答案没有单调性,因此不能二分. 然后题目中也提到 ...

  9. [NOI2002]荒岛野人(exgcd,枚举)

    题目描述 克里特岛以野人群居而著称.岛上有排列成环行的M个山洞.这些山洞顺时针编号为1,2,…,M.岛上住着N个野人,一开始依次住在山洞C1,C2,…,CN中,以后每年,第i个野人会沿顺时针向前走Pi ...

随机推荐

  1. YOLOv4全文阅读(全文中文翻译)

    YOLOv4全文阅读(全文中文翻译) YOLOv4: Optimal Speed and Accuracy of Object Detection 论文链接: https://arxiv.org/pd ...

  2. go 技巧: 实现一个无限 buffer 的 channel

    前言 总所周知,go 里面只有两种 channel,一种是 unbuffered channel, 其声明方式为 ch := make(chan interface{}) 另一种是 buffered ...

  3. Netty 框架学习 —— ByteBuf

    概述 网络数据的基本单位总是字节,Java NIO 提供了 ByteBuffer 作为它的字节容器,但这个类的使用过于复杂.Netty 的 ByteBuf 具有卓越的功能性和灵活性,可以作为 Byte ...

  4. NX二次开发-获取WCS标识

    函数:UF_CSYS_ask_wcs() 函数说明:获取工作坐标系对象的标识. 用法: 1 #include <uf.h> 2 #include <uf_csys.h> 3 e ...

  5. 【NX二次开发】拉伸的偏置方向猜想与验证

    结论:偏置的方向为曲线方向与拉伸方向的向量叉乘. 在UF_MODL_create_extrusion帮助中有这么一句话:Note that the offset direction is determ ...

  6. 07:mysql的unknown variable ‘xxxxx’

    简单说明一下: 可能有的找不到配置文件的,不要慌,这个时候 你可能以前安装了多个版本的mysql 就是说你以前是mysql5,现在换成了mysql8, 矮!! 你可能发现你的mysql8里面没有配置文 ...

  7. 谷歌:python速成课程笔记

    1.从用户那里获取信息 name = "Alex" print("hello" + name) 2.让python成为你的计算器 1 print(4+5) 2 ...

  8. sql server数据库性能优化之2-避免使用CTE公用表达式的递归【by zhang502219048】

    数据库优化中的一个实例,记录一下: 1. 原来用了CTE公用表达式的递归,reads高达约40万,看查询执行计划,使用了Nested Loops: 2. 优化去掉递归,改用其它方式实现,reads降低 ...

  9. MySQL的Limit 性能差?真的不能再用了?

    首先说明一下MySQL的版本: mysql> select version();+-----------+| version() |+-----------+| 5.7.17 |+------- ...

  10. DOS命令行(11)——更多实用的命令行工具

    start 启动另一个窗口运行指定的程序或命令,所有的DOS命令和命令行程序都可以由start命令来调用.该命令不仅能运行程序,还能运行协议对应的程序 命令格式:START ["title& ...