P2421 [NOI2002]荒岛野人 扩展欧几里得 枚举
2024-08-25 22:07:42
Code:
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
int N;
struct Node{
ll C,P,L;
}nodes[20];
ll abss(ll a){return a<0?-a:a;}
ll exgcd(ll a,ll b,ll &x,ll &y){
if(b==0){x=1,y=0;return a;}
ll ans=exgcd(b,a%b,x,y);
ll tmp=x;
x=y,y=tmp-a/b*y;
return ans;
}
int check(int M){
for(int i=1;i<N;++i)
for(int j=i+1;j<=N;++j)
{
ll a=nodes[i].P-nodes[j].P,b=M,c=nodes[j].C-nodes[i].C;
ll x,y,mod,ans;
ans=exgcd(a,b,x,y);
if(c%ans!=0)continue;
x*=(c/ans);
mod=abss(b/ans);
x=((x%mod)+mod)%mod;
if(x<=nodes[i].L&&x<=nodes[j].L)return 0;
}
return 1;
}
int main(){
//freopen("in.txt","r",stdin);
ll u=0;
scanf("%d",&N);
for(int i=1;i<=N;++i){
scanf("%lld%lld%lld",&nodes[i].C,&nodes[i].P,&nodes[i].L);
u=max(u,nodes[i].C);
}
int ans=u;
for(;;++ans)if(check(ans))break;
printf("%d",ans);
return 0;
}
最新文章
- win8.1硬盘安装ubuntu14.04双系统
- Android使用SQLite数据库(3)
- MVC视图中读取ViewBag传递过来的HashTable表数据
- C#线程系列讲座(5):同步技术之Monitor
- strlen的C/C+++实现
- zabbix3.0配置邮件报警
- DragSortListView学习总结
- JVM分代垃圾回收策略的基础概念
- 安装zabbix2.2.3
- emjio表情转json
- Hbase查看
- MYSQL创建用户Unknown column &#39;plugin&#39; in &#39;mysql.user&#39;的解决方法
- Linux设置全局代理与yum代理
- 个人附加作业XD --这门课终于结束了~~
- 大数据量下DataTable To List效率对比
- C++结构体与排列三平台出售
- 使用TCP取样器测试Socket接口
- Vue中父组件传子组件
- wpf-x命名空间-Markup Extension(标记扩展)
- caffe 错误
热门文章
- SQL--left join ,inner join, right jion, Limit
- Unity碰撞和触发的区别
- Mac 如何寻找Mac自带的IDLE
- [luogu] P3089 [USACO13NOV]POGO的牛Pogo-Cow
- C语言使用memcpy函数实现两个数间任意位置的复制操作
- java内存管理之垃圾回收及JVM调优
- SQL SERVER-数据库的远程访问解决办法
- npm --save 选项作用
- cocos2d-js 热更新具体解释(一)
- xcode5.1生成framework,支持arm64报错