Time Limit: 10 Sec  Memory Limit: 256 MB
Submit: 140  Solved: 48
[Submit][Status][Discuss]

Description

给出a,b,c,x1,x2,y1,y2,求满足ax+by+c=0,且x∈[x1,x2],y∈[y1,y2]的整数解有多少对?

Input

第一行包含7个整数,a,b,c,x1,x2,y1,y2,整数间用空格隔开。
a,b,c,x1,x2,y1,y2的绝对值不超过10^8。

Output

输出整数解有多少对?

Sample Input

1 1 -3 0 4 0 4

Sample Output

4

HINT

 

Source

 
 
一眼就能看出是扩欧
利用扩欧的通项公式求出上下边界进行处理
注意特殊情况的判断
注意这里

一定要先乘再除

mmp调了一晚上拍了n组数据都没拍出错误来。。

#include<iostream>
#include<cstdio>
#include<cmath>
#define LL long long
using namespace std;
const LL MAXN=1e6+;
LL a,b,c,x1,x2,yy1,y2,x,y;
LL exgcd(LL a,LL b,LL &x,LL &y) {
if(b==){x=,y=;return a;}
LL r=exgcd(b,a%b,x,y),tmp;
tmp=x,x=y,y=tmp-a/b*y;
return r;
}
LL min(LL a,LL b){return a<b?a:b;}
LL max(LL a,LL b){return a>b?a:b;}
int main()
{
cin>>a>>b>>c>>x1>>x2>>yy1>>y2;c=-c;
if(a==&&b==) {
if(c==) {printf("%lld",(LL)(x2-x1+)*(y2-yy1+));return ;}
else {printf("");return ;}
}
if(a==){
if(c%b) {printf("");return ;}
if(c/b>=yy1&&c/b<=y2) {printf("%lld",x2-x1+);return ;}
else {printf("");return ;}
}
if(b==) {
if(c%a) {printf("");return ;}
if(c/a>=x1&&c/a<=x2) {printf("%lld",y2-yy1+);return ;}
else {printf("");return ;}
}
LL r=exgcd(a,b,x,y);
b=b/r;a=-a/r;//利用公式构造增量
if(c%r) {printf("");return ;}
x=x*c/r;y=y*c/r;
LL xlower,xupper,ylower,yupper;
if(b>) xlower=ceil( (double)(x1-x)/b ) , xupper=floor( (double)(x2-x)/b );
if(b<) xlower=ceil( (double)(x2-x)/b ) , xupper=floor( (double)(x1-x)/b );
if(a>) ylower=ceil( (double)(yy1-y)/a ) , yupper=floor( (double)(y2-y)/a );
if(a<) ylower=ceil( (double)(y2-y)/a ) , yupper=floor( (double)(yy1-y)/a );
LL ans=max(, min(xupper,yupper) - max(xlower,ylower) + );
printf("%lld",ans); return ;
} //1 5 -3 -123 40 -567 41
 
 

BZOJ5027: 数学题的更多相关文章

  1. ytu 2558: 游起来吧!超妹!(水题,趣味数学题)

    2558: 游起来吧!超妹! Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 7  Solved: 3[Submit][Status][Web Board ...

  2. sdut 2416:Fruit Ninja II(第三届山东省省赛原题,数学题)

    Fruit Ninja II Time Limit: 5000MS Memory limit: 65536K 题目描述 Have you ever played a popular game name ...

  3. python解无忧公主数学题107.py

    python解无忧公主数学题107.py """ python解无忧公主数学题107.py http://mp.weixin.qq.com/s?__biz=MzI5ODE ...

  4. python解无忧公主数学题108

    """ python解无忧公主数学题108回文.py 题目来源: http://mp.weixin.qq.com/s?__biz=MzI5ODEwMDQyNw==& ...

  5. HDU 圆桌会议 - 数学题

    圆桌   题意就是每分钟可以将相邻的两个人的位置互换一下 , 问你 ,几分钟可以将所有人的位置互换成    原先的  B 在A的右边 C在A的左边 , 换成现在的 C 在A 的右边 , B 在 A 的 ...

  6. HDU 2529 Shot (物理数学题)

    题目 解题过程: //物理数学题 #include<stdio.h> #include<string.h> #include<algorithm> using na ...

  7. HDU 2671 Can't be easier(数学题,点关于直线对称)

    题目 //数学题//直线 y = k * x + b//直线 ax+by+c=0; 点 (x0,y0); 点到直线距离 d = (ax0+by0+c)/sqrt(a^2+b^2) /********* ...

  8. ACM之数学题

    数学题,始终记得,第一次被带飞师大校赛以及省赛,毫无例外的在数学题上卡死....因此,现在开始,有意识的保留遇见的数学题...(下列知识点按遇见先后顺序排列: 1欧拉公式 欧拉公式的用处是,找出小于N ...

  9. hdu 5587 Array 数学题

    Array Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5587 De ...

随机推荐

  1. CUDA学习笔记(五)

    终于实质分析线程的内容了:按照SIMD的方式,每32个线程称为一个线程束,这些线程都执行同一指令,且每个线程都使用私有寄存器进行这一操作请求. 忽然觉得,做CUDA的程序就像是去北京上班:写MPI之后 ...

  2. ListView中嵌套GridView点击事件

    做一个项目时,需要在ListView中嵌套GridView,因为ListView的每个条目中不一定出现GridView,那么问题来了,添加GridView的Item的点击事件后,有GridView出现 ...

  3. MyBatis+mysql查询和添加数据

    项目结构: Menu package com.mstf.dao; import java.util.Scanner; import org.apache.ibatis.session.SqlSessi ...

  4. DefaultView 的作用(对DataSet查询出的来数据进行排序)

    DefaultView 的作用 收藏    一直以来在对数据进行排序, 条件查询都是直接重复构建SQL来进行, 在查询次数和数据量不多的情况下倒没觉得什么, 但慢慢得, 当程序需要对大量数据椐不同条件 ...

  5. PostgreSQL Replication之第四章 设置异步复制(6)

    4.6 有效的清理和恢复结束 最近几年, recovery.conf 已经变得越来越强大了.早在初期(在 PostgreSQL 9.0之前), 仅有 restore_command 和一些 recov ...

  6. 在windows下如何新建爬虫虚拟环境和进行scrapy安装

    Scrapy是Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改.Sc ...

  7. NodeJS学习笔记 (24)本地路径处理-path(ok)

    模块概览 在nodejs中,path是个使用频率很高,但却让人又爱又恨的模块.部分因为文档说的不够清晰,部分因为接口的平台差异性. 将path的接口按照用途归类,仔细琢磨琢磨,也就没那么费解了. 获取 ...

  8. 题解 P3372 【【模板】线段树1 】

    看了一下题解里的zkw线段树,感觉讲的不是很清楚啊(可能有清楚的但是我没翻到,望大佬勿怪). 决定自己写一篇...希望大家能看明白... zkw线段树是一种优秀的非递归线段树,速度比普通线段树快两道三 ...

  9. 05001_Linux简介

    1.Linux的概述 (1)Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境.Linux是由Linus Torvalds(林纳斯•托瓦兹)起初开 ...

  10. 【Educational Codeforces Round 37 F】SUM and REPLACE

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 那个D函数它的下降速度是很快的. 也就是说到最后他会很快的变成2或者1 而D(2)==2,D(1)=1 也就是说,几次操作过后很多数 ...