洛谷 P2421 [NOI2002]荒岛野人
2024-08-30 10:59:01
又是一道扩欧的题。
要求一个最小的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 ;
}
最新文章
- [AlwaysOn Availability Groups]监控AG性能
- matlab编译器和程序发布
- 【erlang】执行linux命令的两种方法
- 用Qemu模拟vexpress-a9 (四) --- u-boot引导kernel,用nfs挂载根文件系统
- 解决 SQL Server Profiler 跟踪[不断]出现检索数据
- UOJ#35 后缀排序
- java操作字符串,重点是记录一次使用replaceAll对字符串的操作
- Silverlight分享一套企业开发主题
- 为什么Myeclipse 提示Project &#39;bankmanager&#39; is missing required library,myeclipse项目上红叉 但内部红叉
- 修改Hadoop作业调度算法过程解析
- document.onreadystatechange()来判断页面加载完
- C语言中标识符的作用域、命名空间、链接属性、生命周期、存储类型
- Docker最全教程之树莓派和Docker(十五)
- deque-->;collections之#双向消息队列
- noj算法 装载问题 回溯法
- 【DWM1000】 非官方开源定位代码bitcraze
- Web服务器之Nginx详解(操作部分)
- yii框架通过IP地址来使用gii
- CF1037D Valid BFS?
- Luogu 2680 NOIP 2015 运输计划(树链剖分,LCA,树状数组,树的重心,二分,差分)
热门文章
- Bootstrap 遮罩插件jquery.mloading
- Ambari调整日志级别:How to enable debug logging in Ambari Server and Ambari Agent ?
- 关于.Net使用企业库访问MySql数据库
- 仿百度图片首页--HTML+CSS练手项目1【Table】
- Oracle 逻辑存储结构
- 英语DIAMAUND钻石指坚硬不可侵犯的物质
- poll_wait阻塞/唤醒
- SpringBoot上传文件报错,临时路径不存在
- Gitlab配置webhooks实现自动化部署
- maven学习笔记二(了解maven的基本命令)