题目描述

又是一道扩欧的题。

要求一个最小的m使得 Ci+Pi*x≡Cj+Pj*x mod m(i!=j) 在x在第i个人和第j个人的有生之年无解。

也就是 (Pi-Pj)*x+m*y=Cj-Ci 在min(Li,Lj)上无解。

题目限制了保证有解且m<=1e6,那么可以考虑枚举m,在暴力地对每个人进行判断。

理论最差复杂度为1e6*n^2^log,但实际上远达不到这种情况。

需要注意的是m必须大于等于max(Ci)。

#include<complex>
#include<cstdio>
using namespace std;
const int N=;
int n;
int C[N],P[N],L[N];
int Exgcd(int a,int b,int &x,int &y)
{
if(!b)
{
x=;y=;
return a;
}
int r=Exgcd(b,a%b,x,y),tmp=x;
x=y;y=tmp-a/b*y;
return r;
}
bool check(int m)
{
for(int i=;i<=n;i++)
for(int j=i+;j<=n;j++)
{
int x,y,a=abs(P[i]-P[j]),b=m,c=P[i]-P[j]>?C[j]-C[i]:C[i]-C[j];
int r=Exgcd(a,b,x,y);
if(c%r==)
if((x*(c/r)%(b/r)+(b/r))%(b/r)<=min(L[i],L[j]))
return ;
}
return ;
}
int main()
{
scanf("%d",&n);
int l=;
for(int i=;i<=n;i++)
{
scanf("%d%d%d",&C[i],&P[i],&L[i]);
l=max(l,C[i]);
}
for(int i=l;i<=;i++)
if(check(i))
{
printf("%d\n",i);
break;
}
return ;
}

最新文章

  1. [AlwaysOn Availability Groups]监控AG性能
  2. matlab编译器和程序发布
  3. 【erlang】执行linux命令的两种方法
  4. 用Qemu模拟vexpress-a9 (四) --- u-boot引导kernel,用nfs挂载根文件系统
  5. 解决 SQL Server Profiler 跟踪[不断]出现检索数据
  6. UOJ#35 后缀排序
  7. java操作字符串,重点是记录一次使用replaceAll对字符串的操作
  8. Silverlight分享一套企业开发主题
  9. 为什么Myeclipse 提示Project &#39;bankmanager&#39; is missing required library,myeclipse项目上红叉 但内部红叉
  10. 修改Hadoop作业调度算法过程解析
  11. document.onreadystatechange()来判断页面加载完
  12. C语言中标识符的作用域、命名空间、链接属性、生命周期、存储类型
  13. Docker最全教程之树莓派和Docker(十五)
  14. deque--&gt;collections之#双向消息队列
  15. noj算法 装载问题 回溯法
  16. 【DWM1000】 非官方开源定位代码bitcraze
  17. Web服务器之Nginx详解(操作部分)
  18. yii框架通过IP地址来使用gii
  19. CF1037D Valid BFS?
  20. Luogu 2680 NOIP 2015 运输计划(树链剖分,LCA,树状数组,树的重心,二分,差分)

热门文章

  1. Bootstrap 遮罩插件jquery.mloading
  2. Ambari调整日志级别:How to enable debug logging in Ambari Server and Ambari Agent ?
  3. 关于.Net使用企业库访问MySql数据库
  4. 仿百度图片首页--HTML+CSS练手项目1【Table】
  5. Oracle 逻辑存储结构
  6. 英语DIAMAUND钻石指坚硬不可侵犯的物质
  7. poll_wait阻塞/唤醒
  8. SpringBoot上传文件报错,临时路径不存在
  9. Gitlab配置webhooks实现自动化部署
  10. maven学习笔记二(了解maven的基本命令)