这题其实黑书上有,只是我脑残的没想起来……

其实就是拓展欧几里得算法

我参看的题解:http://www.cnblogs.com/Rinyo/archive/2012/11/25/2788373.html

还有一个讲解的很清楚的exgcd:http://www.cnblogs.com/Rinyo/archive/2012/11/25/2787419.html

代码:

 var c,p,l:array[..] of longint;
ans,now,n,i,j,d,x,y,pp,cc:longint;
flag:boolean;
function min(x,y:longint):longint;
begin
if x<y then exit(x) else exit(y);
end;
function max(x,y:longint):longint;
begin
if x>y then exit(x) else exit(y);
end;
function exgcd(a,b:longint;var x,y:longint):longint;
var t,d:longint;
begin
if b= then
begin
x:=;y:=;exit(a);
end;
d:=exgcd(b,a mod b,x,y);
t:=x;x:=y;y:=t-(a div b)*y;
exit(d);
end;
procedure main;
begin
readln(n);
for i:= to n do
begin
readln(c[i],p[i],l[i]);
ans:=max(ans,c[i]);
end;
while true do
begin
flag:=true;
for i:= to n- do
begin
for j:=i+ to n do
begin
pp:=p[i]-p[j];cc:=c[j]-c[i];
d:=exgcd(pp,ans,x,y);
if cc mod d<> then continue;
now:=x*cc div d;
now:=now mod (ans div d);
if now< then inc(now,abs(ans div d));
if now<=min(l[i],l[j]) then begin flag:=false;break;end;
end;
if not(flag) then break;
end;
if flag then break;
inc(ans);
end;
writeln(ans);
end;
begin
main;
end.

我要开始刷noi历年题了!我相信我一定能够坚持下来!

NOI2002 荒岛野人的更多相关文章

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

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

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

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

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

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

  4. Luogu P2421 [NOI2002]荒岛野人

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

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

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

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

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

  7. [noi2002]荒岛野人 拓展欧几里得

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

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

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

  9. bzoj1407,洛谷2421 NOI2002荒岛野人

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

随机推荐

  1. Delphi通过Map文件查找内存地址出错代码所在行

    一 什么是MAP文件 什么是 MAP 文件?简单地讲, MAP 文件是程序的全局符号.源文件和代码行号信息的唯一的文本表示方法,它可以在任何地方.任何时候使用,不需要有额外的程序进行支持.而且,这是唯 ...

  2. Demo学习: Dialogs Anonymous Callback

    Dialogs\Dialogs Anonymous Callback 窗体回调函数使用. 1. 标准回调函数 ShowMessage(const Msg: string; CallBack: TUni ...

  3. AJAX 基础知识

    1.AJAX 是一种用于创建快速动态网页的技术.而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术.通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不 ...

  4. ThinkPHP的缓存 F方法

    一般使用文件方式的缓存就能够满足要求,而thinkphp还提供了一个专门用于文件方式的快速缓存方法f方法. 由于采用的是php返回方式,所以其效率较s方法较高. f方法具有如下特点: 1.简单数据缓存 ...

  5. nodejs phantom add click event

    page.evaluate( function() { // find element to send click to var element = document.querySelector( ' ...

  6. 相似元素存在的意义---HTML&CSS

    1.<q> 效果: 告诉浏览器这是一段短引用,让浏览器以合适的方法来显示 注: 不能直接以双引号直接代替<q>,因为有些浏览器<q>的效果不是双引号. 不要忘了移动 ...

  7. 5.2:缓存中获取单例bean

    5.2  缓存中获取单例bean 介绍过FactoryBean的用法后,我们就可以了解bean加载的过程了.前面已经提到过,单例在Spring的同一个容器内只会被创建一次,后续再获取bean直接从单例 ...

  8. Firefly安装说明 与 常见问题

    原地址:http://bbs.gameres.com/thread_223688.html 第三方库依赖:    twisted, python-memcached ftp://ftp.tummy.c ...

  9. HDU1431+简单题

    题意简单 预处理之后会发现符合条件的数最多781个... 所以打表.. /* */ #include<algorithm> #include<iostream> #includ ...

  10. linux cd命令不带路径参数

    #切换到当前用户的主目录.若为root用户,则切换到/root,若普通用户,则切换到/home/username $ cd