又因为调一道水题而浪费时间。。。不过细节太多了$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. noip模拟赛 #3

    T1 给一个环,每个点有一个权值,把环分成三段,求最小的那段的最大值 sol:暴力 二分答案,chk就是把环搞成三倍链,每次枚举起点,后面三个切割点都可以二分找 然后就Rua过去了 //yyc wen ...

  2. 设置Suse linux 用户远程登录超时时间

    执行  # echo "export TMOUT=900"  >>  /etc/profile 查询设置结果: # cat /etc/profile|grep TMOU ...

  3. Angular Chart 使用说明(基于angular工程)

    Angular Chart是基于Chart.js的angular组件,引入项目后直接操作数据即可. 引用方法:    分别将Chart.js.angular-chart.js.angular-char ...

  4. BZOJ4317: Atm的树+2051+2117

    BZOJ4317: Atm的树+2051+2117 https://lydsy.com/JudgeOnline/problem.php?id=4317 分析: 二分答案之后就变成震波那道题了. 冷静一 ...

  5. arguments对象的实例使用

    新年第一记,从这里开始,先来个简单的!去年的知识梳理留下了很多尾巴,原因有很多(知识储量不足,懒了,项目多...) lg:都是借口~   好吧,我承认,这都是借口,今年一定把尾巴清干净! 下面要写的是 ...

  6. XML的二十个热点问题

    这些日子,几乎每个人都在谈论XML (Extensible Markup Language),但是很少有人真正理解其含义.XML的推崇者认为它能够解决所有HTML不能解决的问题,让数据在不同的操作系统 ...

  7. MySQL的分页技术总结

    利用子查询示例: SELECT * FROM your_table WHERE id <= (SELECT id FROM your_table ORDER BY id desc LIMIT ( ...

  8. 给.sh文件添加可执行权限

    有时我们运行.sh文件时会发现没有权限,具体解决方案如下 第一种:bash+执行文件 第二种:chmod命令 如果给所有人添加可执行权限:chmod a+x 文件名:如果给文件所有者添加可执行权限:c ...

  9. ng2-升级脚手架到最新版本

    //先卸载,后安装 npm uninstall -g @angular/cli npm cache clean npm install -g @angular/cli@latest

  10. linux日常管理-查看系统负载

    查看系统的负载常用命令w 16:32::15是系统时间 up 16 min 是开机使用时间 1 user 是登录的用户数 重要 load average:0.00 0.00 0.00 负载分别表示1分 ...