BZOJ3834 [Poi2014]Solar Panels 【数论】
题目链接
题解
容易想到对于\(gcd(x,y) = D\),\(d\)的倍数一定存在于两个区间中
换言之
\]
\]
整除分块即可做到\(O(n\sqrt{max\{b\}})\)
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<map>
#define Redge(u) for (int k = h[u],to; k; k = ed[k].nxt)
#define REP(i,n) for (int i = 1; i <= (n); i++)
#define mp(a,b) make_pair<int,int>(a,b)
#define cls(s) memset(s,0,sizeof(s))
#define cp pair<int,int>
#define LL long long int
using namespace std;
const int maxn = 100005,maxm = 100005,INF = 1000000000;
inline int read(){
int out = 0,flag = 1; char c = getchar();
while (c < 48 || c > 57){if (c == '-') flag = -1; c = getchar();}
while (c >= 48 && c <= 57){out = (out << 3) + (out << 1) + c - 48; c = getchar();}
return out * flag;
}
int main(){
register int T = read(),a,b,c,d,M,ans,A,B,C,D;
while (T--){
a = read() - 1; b = read(); c = read() - 1; d = read();
M = max(b,d); ans = 1;
for (register int i = 1,nxt; i <= M; i = nxt + 1){
nxt = INF;
A = a / i,B = b /i,C = c / i,D = d / i;
if (A) nxt = min(nxt,a / A);
if (B) nxt = min(nxt,b / B);
if (C) nxt = min(nxt,c / C);
if (D) nxt = min(nxt,d / D);
if (A < B && C < D) ans = nxt;
}
printf("%d\n",ans);
}
return 0;
}
BZOJ3834 [Poi2014]Solar Panels 【数论】的更多相关文章
- bzoj 3834 [Poi2014]Solar Panels 数论分块
3834: [Poi2014]Solar Panels Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 367 Solved: 285[Submit] ...
- 【bzoj3834】[Poi2014]Solar Panels 数论
题目描述 Having decided to invest in renewable energy, Byteasar started a solar panels factory. It appea ...
- BZOJ3834[Poi2014]Solar Panels——分块
题目描述 Having decided to invest in renewable energy, Byteasar started a solar panels factory. It appea ...
- BZOJ3834 : [Poi2014]Solar Panels
问题相当于找到一个最大的k满足在$[x_1,x_2]$,$[y_1,y_2]$中都有k的倍数 等价于$\frac{x_2}{k}>\frac{x_1-1}{k}$且$\frac{y_2}{k}& ...
- 【BZOJ3834】[Poi2014]Solar Panels 分块好题
[BZOJ3834][Poi2014]Solar Panels Description Having decided to invest in renewable energy, Byteasar s ...
- [POI2014]Solar Panels
题目大意: $T(T\le1000)$组询问,每次给出$A,B,C,D(A,B,C,D\le10^9)$,求满足$A\le x\le B,C\le y\le D$的最大的$\gcd(x,y)$. 思路 ...
- 【BZOJ】3834: [Poi2014]Solar Panels
http://www.lydsy.com/JudgeOnline/problem.php?id=3834 题意:求$max\{(i,j)\}, smin<=i<=smax, wmin< ...
- BZOJ3834:Solar Panels (分块)
题意 询问两个区间[smin,smax],[wmin,smax]中是否存在k的倍数,使得k最大 分析 将其转化成\([\frac{smin-1}k,\frac{smax}k],[\frac{wmin- ...
- BZOJ3833 : [Poi2014]Solar lamps
首先旋转坐标系,将范围表示成矩形或者射线 如果范围是一条线,则将灯按y坐标排序,y坐标相同的按x坐标排序, 对于y相同的灯,f[i]=min(i,它前面灯发光时刻的第k[i]小值), 线段树维护,$O ...
随机推荐
- 基于Ubuntu+kodexplorer可道云的私有云网盘
1.可用的服务器:组装PC机一台,操作系统为Ubuntu 14.04 LTS,无桌面环境,放在机房,使用远程终端进行访问.有安装了Apache2,运行着svn服务.内网IP地址为192.168.0.1 ...
- linux 常用反弹shell小记
在渗透测试过程中由于防火墙和其它安全防御措施,很多服务器只能单向向外访问,不能被访问,我们常常需要反弹shell. 1.bash反弹shell 本地开启监听 nc -lvvp 受害主机命令 bash ...
- hostname命令详解
基础命令学习目录首页 原文链接:https://idc.wanyunshuju.com/cym/68.html Linux操作系统的hostname是一个kernel变量,可以通过hostname命令 ...
- scrum立会报告+燃尽图(第二周第二次)
此作业要求参考: https://edu.cnblogs.com/campus/nenu/2018fall/homework/2247 一.小组介绍 组名:杨老师粉丝群 组长:乔静玉 组员:吴奕瑶.公 ...
- 2017秋软工 —— 本周PSP
1. PSP 2. PSP饼图 3. 累计进度条 4. 累计折线图
- fullPage全屏高度自适应
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- WebGL七点二
与上一节相比这一节相当做了些整合和整理,目的是提高了读写效率和减少代码量,就是做了优化.这里我们只需要在顶点着色器中定义一个用于从js传递参数的变量u_MvcMatrix一看就知道是uniform变量 ...
- Hibernate 与 mybatis 区别
JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结 我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践 ...
- “吃神么,买神么”的第二个Sprint计划(总结)
“吃神么,买神么”项目Sprint计划 ——5.28 星期四(第八天)第一次Spring计划结束 第一阶段Spring的目标以及完成情况: 时间:5月21号~5月28号(7天) 目标:第二阶段主 ...
- VS团队资源管理器(VS自带git)使用说明_使用VS自带git推送到远程存储库
使用git存储库是相当好的习惯,每次码完代码就推送到远程存储库,万一不小心把本地代码搞废了,或者硬盘坏了,或者中了勒索病毒,本地代码丢失了还能从服务器上下载.我曾经就中了一次勒索病毒,本地电脑上的所有 ...