又因为调一道水题而浪费时间。。。不过细节太多了$qwq$,暴露出自己代码能力的不足$QAQ$


设$d=gcd(a,b)$,这题不是显然先解出来特解,即解出

$\frac{a}{d}x_0+\frac{b}{d}y_0=d$,中的$x_0,y_0$

然后根据

$x=\frac{c}{d}x_0+k\frac{b}{d},y=\frac{c}{d}x_0-k\frac{a}{d},k \in Z$

来卡范围吗$qwq$

然后自己就兴致勃勃的调了一晚上,老是差一点。。。后来发现一个大细节,就是左右端点,左端点要向上取整,右端点要向下取整$qwq$,发现后又调了半天$qwq$

对了还有一堆特判。。。主要是判各种$0$的,什么$a=0,b=0,c=0$之类的。。。详见代码

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<cctype>
#include<cstdlib>
#include<vector>
#include<queue>
#include<map>
#include<set>
#define ll long long
#define int ll
#define R register ll
using namespace std;
namespace Fread {
static char B[<<],*S=B,*D=B;
#define getchar() (S==D&&(D=(S=B)+fread(B,1,1<<15,stdin),S==D)?EOF:*S++)
inline int g() {
R ret=,fix=; register char ch; while(!isdigit(ch=getchar())) fix=ch=='-'?-:fix;
do ret=ret*+(ch^); while(isdigit(ch=getchar())); return ret*fix;
}
}using Fread::g;
inline void exgcd(ll a,ll b,ll& x,ll& y) {if(!b) {x=,y=; return ;} exgcd(b,a%b,y,x); y-=a/b*x;}
inline ll gcd(ll a,ll b) {return b?gcd(b,a%b):a;}
int a,b,c,x1,x2,Y1,Y2;
signed main() {
#ifdef JACK
freopen("NOIPAK++.in","r",stdin);
#endif
a=g(),b=g(),c=-g(),x1=g(),x2=g(),Y1=g(),Y2=g(); R d=gcd(a,b);
if(a==&&b==) {
if(c!=) {printf("0\n"); return ;}
else if(c==) {R k=(ll)(x2-x1+)*(Y2-Y1+); printf("%lld\n",k); return ;}
} if(c%d!=) {printf("0\n"); return ;}
R x,y; exgcd(a,b,x,y);
if(a==||b==) {
if(a==) { Y1>Y2?swap(Y1,Y2):void(); y=y*c/d;
if(y>=Y1&&y<=Y2) printf("%lld\n",x2-x1+);
else printf("0\n");
} else if(b==) { x1>x2?swap(x1,x2):void(); x=x*c/d;
if(x>=x1&&x<=x2) printf("%lld\n",Y2-Y1+);
else printf("0\n");
} return ;
}
x1-=x*c/d,x2-=x*c/d,Y1-=y*c/d,Y2-=y*c/d;
if(!(x1<x2)^(b>=)^(d>=)) swap(x1,x2); if((Y1<Y2)^(a>=)^(d>=)) swap(Y1,Y2);
R k1=(x1+b-)/b*d,k2=(x2-b+)/b*d,k3=(-Y1*d+a-)/a,k4=(-Y2*d-a+)/a;
k1=(ll)ceil((long double)x1*d/b),k2=(ll)floor((long double)x2*d/b),k3=(ll)ceil((long double)-Y1*d/a),k4=(ll)floor((long double)-Y2*d/a);
if(k1>k2) swap(k1,k2); if(k3>k4) swap(k3,k4);
R kn=max(k1,k3),kx=min(k2,k4); if(kx-kn<) printf("0\n");else printf("%lld\n",kx-kn+);

2019.06.09

Luogu P2833 等式 我是傻子x2的更多相关文章

  1. IT培训行业揭秘(四)

    IT培训班的老师前面已经说过,很多都是从一线程序员岗位转过来的,因为培训行业的收入整体上来看还是比作普通程序员要高一些,这是市场的普遍行情.还有一部分老师从培训班学习过并且留到培训班任教的.一般这种老 ...

  2. 越狱Season 1-Episode 11: And Then There Were 7-M

    Season 1, Episode 11: And Then There Were 7-M -Michael: That one 那个 -businessman: Nice choice choice ...

  3. Math - Uva 11300 Spreading the Wealth

    Spreading the Wealth Problem's Link ---------------------------------------------------------------- ...

  4. HDU 6373.Pinball -简单的计算几何+物理受力分析 (2018 Multi-University Training Contest 6 1012)

    6373.Pinball 物理受力分析题目. 画的有点丑,通过受力分析,先求出θ角,为arctan(b/a),就是atan(b/a),然后将重力加速度分解为垂直斜面的和平行斜面的,垂直斜面的记为a1, ...

  5. 江西财经大学第一届程序设计竞赛 A

    链接:https://www.nowcoder.com/acm/contest/115/A来源:牛客网 题目描述 "挤需体验五番钟,里造会挨上这款游戏!" 怎么可能嘛!当我是傻子吗 ...

  6. 计蒜客 28449.算个欧拉函数给大家助助兴-大数的因子个数 (HDU5649.DZY Loves Sorting) ( ACM训练联盟周赛 G)

    ACM训练联盟周赛 这一场有几个数据结构的题,但是自己太菜,不会树套树,带插入的区间第K小-替罪羊套函数式线段树, 先立个flag,BZOJ3065: 带插入区间K小值 计蒜客 Zeratul与Xor ...

  7. python复数

    复数的概念在很久以前,数学家们被下面的等式困扰.x2=-1这是因为任何实数(无论正负)乘以自己总会得到一个非负数.一个数怎么可以乘以自己得到一负数?没有这样的实数存在.就这样18世纪,数学家们发了一个 ...

  8. [考试反思]1029csp-s模拟测试92:弱智

    我只能这么评价我自己. 看这个提交时间...我没话可说... T1半个世界都A了还是切不掉.又一次挂细节. T2不会证明的乱搞(虽然可以证明)A了没什么可说的算是水过. T3之前水过的题(打的次正解) ...

  9. 机器学习-线性规划(LP)

    线性规划问题 首先引入如下的问题: 假设食物的各种营养成分.价格如下表: Food Energy(能量) Protein(蛋白质) Calcium(钙) Price Oatmeal(燕麦) 110 4 ...

随机推荐

  1. vmware station中 UDEV 无法获取共享存储磁盘的UUID,症状: scsi_id -g -u -d /dev/sdb 无返回结果。

    1.确认在所有RAC节点上已经安装了必要的UDEV包 [root@11gnode1 ~]# rpm -qa|grep udevsystem-config-printer-udev-1.1.16-25. ...

  2. bzoj 3994 约数个数和 —— 反演+数论分块

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3994 推导过程和这里一样:https://www.cnblogs.com/MashiroSk ...

  3. category extension

    1 category 分类,只能添加方法,添加的方法成为原来类的一部分,达到扩展类的目的,可以被子类继承 主要给没有源代码的类 添加方法,团队合作项目互不影响,不该动原有类的基础上添加方法 self ...

  4. ng2 样式控制之style绑定和class绑定

  5. Debain install Jupyter

    1. install Anaconda https://www.anaconda.com/download/#linux 2. config jupyter $ ipython from notebo ...

  6. 特征降维之SVD分解

    奇异值分解.特征值分解是一个提取矩阵特征很不错的方法,但是它只是对方阵而言的,在现实的世界中,我们看到的大部分矩阵都不是方阵,比如说有N个学生,每个学生有M科成绩,这样形成的一个N * M的矩阵就不可 ...

  7. KickStart安装CentOS,同时安装和配置hadoop

    声明:这篇文章是前面是拾人牙慧,我是结合 http://www.111cn.net/sys/linux/59969.htm 和 http://www.cnblogs.com/mchina/p/cent ...

  8. Spring框架IOC容器和AOP解析 非常 有用

    Spring框架IOC容器和AOP解析   主要分析点: 一.Spring开源框架的简介  二.Spring下IOC容器和DI(依赖注入Dependency injection) 三.Spring下面 ...

  9. 高性能服务器设计(Jeff Darcy's notes on high-performance server design

    高性能服务器设计(Jeff Darcy's notes on high-performance server design 我想通过这篇文章跟大家共享一下我多年来怎样开发“服务器”这类应用的一些想法和 ...

  10. js判断IP字符串是否正确

    //判断ip地址的合法性 function checkIP(value){ var exp=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0 ...