类欧几里得模板 p5170

//类欧几里得的模板题 p5170
//求这三个式子;
//第一个跟后两个没关联
//后两个跟其余两个都有关联; #include<cstdio>
#include<algorithm>
#include<math.h>
#include<string.h>
using namespace std;
typedef long long ll;
const ll inv2=;
const ll inv6=;
const ll mod=;
int t;
ll n,a,b,c;
struct query
{
ll f;
ll g;
ll h;
};
query solve(ll a,ll b,ll c,ll n)
{
query ans,prec;
if(a==){
ans.f=(b/c)*(n+)%mod;
ans.g=(b/c)*n%mod*(n+)%mod*inv2%mod;
ans.h=(b/c)*(b/c)%mod*(n+)%mod;
}
else if(a>=c||b>=c){
prec=solve(a%c,b%c,c,n);
ans.f=(prec.f+n*(n+)%mod*inv2%mod*(a/c)%mod+(n+)*(b/c)%mod)%mod;
ans.g=((a/c)*n%mod*(n+)%mod*(*n+)%mod*inv6%mod+
(b/c)*n%mod*(n+)%mod*inv2%mod+prec.g)%mod;
ans.h=(prec.h+(a/c)*(a/c)%mod*n%mod*(n+)%mod*(*n+)%mod*inv6%mod+
(n+)*(b/c)%mod*(b/c)%mod+*(a/c)%mod*prec.g%mod+
*(b/c)%mod*prec.f%mod+*(a/c)%mod*(b/c)%mod*n%mod*(n+)%mod*inv2%mod)%mod;
}
else{
ll m=(a*n+b)/c;
prec=solve(c,c-b-,a,m-);
ans.f=(n*(m%mod)%mod-prec.f)%mod;
ans.g=(n*(n+)%mod*(m%mod)%mod-prec.f-prec.h)%mod*inv2%mod;
ans.h =(n*(m%mod)%mod*((m+)%mod)%mod-*prec.g-*prec.f-ans.f)%mod;
}
return ans;
}
int main()
{
scanf("%d",&t);
while(t--){
scanf("%lld%lld%lld%lld",&n,&a,&b,&c);
query ans=solve(a,b,c,n);
printf("%lld %lld %lld\n", (ans.f + mod) % mod, (ans.h + mod) % mod, (ans.g + mod) % mod);
}
return ;
}
求第一个式子的模板
#include<cstdio>
#include<algorithm>
#include<math.h>
#include<string.h>
using namespace std;
typedef long long ll;
const ll inv2=;
const ll inv6=;
const ll mod=;
int t;
ll n,a,b,c;
ll solve(ll a,ll b,ll c,ll n)
{
ll ans,prec;
if(a==) ans=(b/c)*(n+)%mod;
else if(a>=c||b>=c){
prec=solve(a%c,b%c,c,n);
ans=(prec+n*(n+)%mod*inv2%mod*(a/c)%mod+(n+)*(b/c)%mod)%mod;
}
else{
ll m=(a*n+b)/c;
prec=solve(c,c-b-,a,m-);
ans=(n*(m%mod)%mod-prec)%mod;
}
return ans;
}
int main()
{
scanf("%d",&t);
while(t--){
scanf("%lld%lld%lld%lld",&n,&a,&b,&c);
ll ans=solve(a,b,c,n);
printf("%lld",(ans+mod)%mod);
}
return ;
}
类欧几里得模板 p5170的更多相关文章
- It's a Mod, Mod, Mod, Mod World (类欧几里得模板题
https://vjudge.net/contest/317000#problem/F #include <iostream> #include <cstdio> #inclu ...
- bzoj2187 fraction&&hdu3637 Find a Fraction——类欧几里得
bzoj2187 多组询问,每次给出 $a, b, c, d$,求满足 $\frac{a}{b} < \frac{p}{q} < \frac{c}{d}$ 的所有二元组 $(p, q)$ ...
- [ZZOJ#31]类欧几里得
[ZZOJ#31]类欧几里得 试题描述 这是一道模板题. 给出 \(a, b, c, n\),请你求出 \(\sum_{x=0}^n{\lfloor \frac{a \cdot x + b}{c} \ ...
- poj 1061 青蛙的约会 拓展欧几里得模板
// poj 1061 青蛙的约会 拓展欧几里得模板 // 注意进行exgcd时,保证a,b是正数,最后的答案如果是负数,要加上一个膜 #include <cstdio> #include ...
- 算法马拉松35 E 数论只会Gcd - 类欧几里得 - Stern-Brocot Tree - 莫比乌斯反演
题目传送门 传送门 这个官方题解除了讲了个结论,感觉啥都没说,不知道是因为我太菜了,还是因为它真的啥都没说. 如果 $x \geqslant y$,显然 gcd(x, y) 只会被调用一次. 否则考虑 ...
- 2019.02.06 bzoj2987: Earthquake(类欧几里得)
传送门 题意简述:求满足ax+by+c≤0ax+by+c\le0ax+by+c≤0的二元组(x,y)(x,y)(x,y)对数. 思路: 类欧几里得算法模板题. 把式子变化一下变成:求满足0≤y≤−ax ...
- Kattis - itsamodmodmodmodworld It's a Mod, Mod, Mod, Mod World (类欧几里得)
题意:计算$\sum\limits_{i=1}^n[(p{\cdot }i)\bmod{q}]$ 类欧模板题,首先作转化$\sum\limits_{i=1}^n[(p{\cdot}i)\bmod{q} ...
- JZOJ3492数数&&GDOI2018超级异或绵羊——位&&类欧几里得
JZOJ3492 数数(count) 我们知道,一个等差数列可以用三个数A,B,N表示成如下形式: B+A,B+2A,B+3A⋯B+NA ztxz16想知道对于一个给定的等差数列,把其中每一项用二进 ...
- 2019HDU多校第五场A fraction —— 辗转相除法|类欧几里得
题目 设 $ab^{-1} = x(mod \ p)$,给出 $x,p$,要求最小的 $b$,其中 $0< a < b, \ 1 < x<p,\ 3 \leq x\leq {1 ...
随机推荐
- 在vue项目中播放m3u8格式视频
前言:最近公司在做一个线上会议的项目,要求后台网站播放m3u8格式的视频,查找部分资料,总结一下,方便后边查阅 1.在vue工程中安装以下依赖: cnpm install video.js --sa ...
- yolov3 进化之路,pytorch运行yolov3,conda安装cv2,或者conda安装找不到包问题
yolov3 进化之路,pytorch运行yolov3,conda安装cv2,或者conda安装找不到包问题 conda找不到包的解决方案. 目前是最快最好的实时检测架构 yolov3进化之路和各种性 ...
- 《NVM-Express-1_4-2019.06.10-Ratified》学习笔记(8.7)Standard Vendor Specific Command Format
8.7 Standard Vendor Specific Command Format 标准的厂商特定命令格式 Controller可以支持Figure 106中定义的标准的Vendor Specif ...
- LED Keychain-Ideal For Mass Promotions
Looking for something memorable to remind people of your business or nonprofit? Consider custom LED ...
- [POI2006] SZK-Schools - 费用流
差不多就是个二分图带权匹配?(我还是敲费用流吧) 每个点向着自己能到的学校连边,费用按题意设定 跑最小费用最大流即可 #include <bits/stdc++.h> using name ...
- 跨域 node git
promise 异步回调地狱:就是多个异步请求嵌套的表现 瑕疵:后期维护难 解决:通过promise技术 什么是promise:就是一种异步编程的解决方案 有三个状态:进行中.成功了,失败了 var ...
- IDEA构建maven项目生成的文件详解
IDEA构建的maven+springBoot项目结构如下: 1. .gitignore:分布式版本控制系统git的配置文件,意思为忽略提交 在 .gitingore 文件中,遵循相应的语法,即在每一 ...
- 并查集-D - 畅通工程
D - 畅通工程 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通 ...
- python使用selenium驱动chromium防止浏览器自动升级失效!
python爬虫或者自动化项目中有时会用到selenium自动化测试框架,驱动chrom时由于谷歌浏览器自动升级,会造成驱动和浏览器版本不匹配问题,这时可以用到Chromium,这是谷歌推出用于开发目 ...
- 【Python】获取星期字符串
原理:字符串切片 1.0代码: #获取星期字符串 weekStr="星期一星期二星期三星期四星期五星期六星期日" weekId=eval(input("请输入星期数字(1 ...