【bzoj 1407】【Noi2002】Savage
Description
Input
Output
仅包含一个数M,即最少可能的山洞数。输入数据保证有解,且M不大于10^6。
Sample Input
1 3 4
2 7 3
3 2 1
Sample Output
//该样例对应于题目描述中的例子。
题解:
看到这题好久了,一直心虚不敢上= =(其实是自己想多了)。
一开始以为可以直接算出来,其实也是自己想多了……给了m的范围,n的范围又极其小……然后就是从小到大枚举m,利用扩欧验证是否可行。
#include <stdio.h>
#include <iostream>
using namespace std;
const int N=;
int n, m;
int c[N],p[N],l[N];
inline int abs(int x){return (x&-)?-x:x;}
inline int gcd(int a,int b){
return b==?a:gcd(b,a%b);
}
inline void exgcd(int a,int b,int &x,int &y){
if(b==) {
x=;
y=;
return;
}
exgcd(b,a%b,x,y);
int temp=x;
x=y;
y=temp-a/b*y;
return ;
}
inline bool check(int mod){
for(int i=;i<=n;i++)
for(int j=i+;j<=n;j++){
int a=p[i]-p[j],b=mod,z=c[j]-c[i];
int t=gcd(a,b);
if(z%t) continue;
int x,y;
exgcd(a,b,x,y);
x=x*z/t;
x%=b/t;
if(x<)
x+=abs(b/t);
if(x<=l[i]&&x<=l[j]) return false;
}
return true;
}
int main(){
scanf("%d", &n);
int m=;
for(int i=;i<=n;i++)
scanf("%d%d%d",c+i,p+i,l+i),m=max(m,c[i]);
for(m;m<=(int)1e6;m++){
if(check(m)) break;
}
printf("%d\n",m);
}
/*
3
1 3 4
2 7 3
3 2 1
*/
【bzoj 1407】【Noi2002】Savage的更多相关文章
- 【BZOJ 1407】[Noi2002]Savage ExGCD
我bitset+二分未遂后就来用ExGCD了,然而这道题的时间复杂度还真是玄学...... 我们枚举m然后对每一对用ExGCD判解,我们只要满足在最小的一方死亡之前无解就可以了,对于怎么用,就是ax+ ...
- 【BZOJ 2753 滑雪与时间胶囊】
Time Limit: 50 Sec Memory Limit: 128 MBSubmit: 2843 Solved: 993[Submit][Status][Discuss] Descripti ...
- 【BZOJ 5048 塌陷的牧场】
Time Limit: 25 Sec Memory Limit: 256 MBSubmit: 77 Solved: 34[Submit][Status][Discuss] Description ...
- 【BZOJ】3052: [wc2013]糖果公园
http://www.lydsy.com/JudgeOnline/problem.php?id=3052 题意:n个带颜色的点(m种),q次询问,每次询问x到y的路径上sum{w[次数]*v[颜色]} ...
- 【BZOJ】3319: 黑白树
http://www.lydsy.com/JudgeOnline/problem.php?id=3319 题意:给一棵n节点的树(n<=1e6),m个操作(m<=1e6),每次操作有两种: ...
- 【BZOJ】3319: 黑白树(并查集+特殊的技巧/-树链剖分+线段树)
http://www.lydsy.com/JudgeOnline/problem.php?id=3319 以为是模板题就复习了下hld............................. 然后n ...
- 【BZOJ】【3207】花神的嘲讽计划 I
字符串Hash+可持久化线段树 好神奇的转化…… 蒟蒻一开始还去想AC自动机去了……然而由于a[i]的范围是小于等于n,怎么也想不出一个时间复杂度合理的方法 膜拜了题解0.0原来是字符串Hash! 首 ...
- 【BZOJ】1013: [JSOI2008]球形空间产生器sphere
[BZOJ]1013: [JSOI2008]球形空间产生器sphere 题意:给n+1个n维的点的坐标,要你求出一个到这n+1个点距离相等的点的坐标: 思路:高斯消元即第i个点和第i+1个点处理出一个 ...
- 【NOI2002】银河英雄传说(并查集)
[NOI2002]银河英雄传说 题面 题目描述 公元五八○一年,地球居民迁至金牛座α第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展. 宇宙历七九九年,银河系的两大军 ...
随机推荐
- 鹅厂优文|打通小程序音视频和webRTC
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 作者:腾讯视频云终端技术总监常青, 2008 年毕业加入腾讯,一直从事客户端研发相关工作,先后参与过 PC QQ.手机QQ.QQ物联 等产品 ...
- Django之Apps源码学习
先了解下官方文档的介绍 Django包含了一个已经安装应用的注册表,这个注册表存储着配置信息以及用来自省,同时也维护着可用模型的列表. 这个注册表就是apps,位于django.apps下,本质上是一 ...
- netcore入门-基础
.NETCORE1.0出来了,咦不错,什么开源,跨平台的,观望下等2.0:我擦2.0出来了可以学习了,截止到目前2.1都快出来了,是时候学习一下了. 先建一个webapi项目,从简单的demo开始 l ...
- Prime 算法的简述
前面在介绍并查集时顺便提了Kruskal算法,既然已经说到了最小生成树问题,就没有道理不把Prime算法说了. 这里面先补充下Kruskal算法的大概意思,Kruskal算法通过把所有的边从小到大排列 ...
- GitHub学习笔记:远程端的操控
对于远端,当你新建一个项目的时候,需要在网页处新建,在新建项目的页面,会有一段提示你上传本地项目到此远端方法的代码,直接拷贝粘贴到git shell就可以解决问题,不再详述. 当你把代码上传到一个已经 ...
- 分析DuxCms之AdminUserModel
/** * 获取信息 * @param array $where 条件 * @return array 信息 */ public function getWhereInfo($where) { ret ...
- nfs 、ftp 和samba都有什么区别?
NFS:Network File System 是已故的Sun公司制定的用于分布式访问的文件系统,它的本质是文件系统.主要在Unix系列操作系统上使用,基于TCP/IP协议层,可以将远程的计算机磁盘挂 ...
- ADC0832的应用
ADC0832是美国国家半导体公司生产的一种8位逐次比较型CMOS双通道A-D转换器,采用5V电源电压供电,模拟电压输入范围为0~5V,内部时钟250KHz时转换速度为32微秒. 仿真图为: 程序为: ...
- Java面向对象(一、封装)
Java 封装 封装的概念 在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装.隐藏起来的方法. 封装可以被认为是一个保护屏障,防止该类的代码 ...
- Slim 文档-First Application 翻译
最近刚好在用Slim框架,看文档的时候,中文文档中缺了这一篇没有翻译,于是我就把它翻译过来了.本人英语水平有限,如有错误请告知. 如果你在寻找创建一款非常简单的 Slim 应用程序的流程,来这里算是找 ...