「洛谷P2833」 等式 - 数论

freeswitch的2833和inband对接方案 freeswitch支持三种模式的DTMF传输方式,分别时inband、INFO、2833。在传统的PSTN网络中,所有的DTMF码都是inband模式,所以VOIP网络和PSTN网络对接中,需要将DTMF码做格式转换,通常是2833和inband之间的转换。freeswitch作为VOIP和PSTN网络中间的媒体服务器时,AB路会协商为不同的DTMF按键格式,我们需要一种可以将2833和inband格式互转的方案。使用拨号计划的app组合,实现了fs支持AB路不同的DTMF格式的转换。 阅读详情

题目概述

题目描述

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

输入格式

第一行包含7个整数,a,b,c,x1,x2,y1,y2a,b,c,x1,x2,y1,y2a,b,c,x1,x2,y1,y2,整数间用空格隔开。

输出格式

输出整数解有多少对。

数据范围

对于30%的数据,a,b,c,x1,x2,y1,y2a,b,c,x1,x2,y1,y2a,b,c,x1,x2,y1,y2的绝对值不超过1000。

对于100%的数据,a,b,c,x1,x2,y1,y2a,b,c,x1,x2,y1,y2a,b,c,x1,x2,y1,y2的绝对值不超过10810^8108。

分析

首先ax+by+c=0ax+by+c=0ax+by+c=0可以化为ax+by=−cax+by=-cax+by=−c,这是不是很熟悉?没错,用Exgcd就可以求出一个特解(x0,y0)(x_0,y_0)(x0​,y0​)。先判断有无解,即(−c)mod  gcd(a,b)(-c)\mod gcd(a,b)(−c)modgcd(a,b)是否等于0,等于0有解,否则无解。至于通解,如下:

{x=x0+t×bdy=y0−t×ad \begin{cases} x=x_0+t\times\dfrac{b}{d}\\\\ y=y_0-t\times\dfrac{a}{d}\\ \end{cases} ⎩⎪⎪⎨⎪⎪⎧​x=x0​+t×db​y=y0​−t×da​​

其中ttt为参数。然后可以根据通解,分别求出ttt在xxx满足条件时的范围,在yyy满足条件时的范围,取交集即可。不过细节和特判挺多的,比如a=0,b=0,c=0a=0,b=0,c=0a=0,b=0,c=0时的情况,以及除法的精度损失等。的确是一道数论好题。

代码

#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
using namespace std;
typedef long long LL;
LL a,b,c,xl,xr,yl,yr;
LL Exgcd(LL a,LL b,LL &x,LL &y) {
	if (b==0) {
		x=1;
		y=0;
		return a;
	}
	LL d=Exgcd(b,a%b,x,y);
	LL t=x;
	x=y;
	y=t-a/b*y;
	return d;
}
int main() {
	scanf("%lld%lld%lld%lld%lld%lld%lld",&a,&b,&c,&xl,&xr,&yl,&yr);
	if (xl>xr||yl>yr) {
		printf("0");
		return 0;
	}
	if (a==0&&b==0) {
		if (c!=0) printf("0");
		else printf("%lld",(xr-xl+1)*(yr-yl+1));
		return 0;
	}
	LL x,y,d,k;
	d=Exgcd(a,b,x,y);
	c=-c;
	k=c/d;
	x*=k;
	y*=k;
	if (c%d) {
		printf("0");
		return 0;
	}
	if (a==0) {
		if (yl<=y&&y<=yr) printf("1");
		else printf("0");
		return 0;
	}
	if (b==0) {
		if (xl<=x&&x<=xr) printf("1");
		else printf("0");
		return 0;
	}
	//通解 
	//x=x0+t*b/d
	//y=y0-t*a/d
	/*
		(xl-x0)*(d/b)<=t<=(xr-x0)*(d/b)
	*/
	/*
		(yl-y0)*(d/a)<=t<=t(yr-y0)*(d/a)
	*/
	LL t1l,t1r,t2l,t2r,tl,tr,bb,aa;
	bb=b/d;
	aa=a/d;
	t1l=(xl-x)/bb;
	t1r=(xr-x)/bb;
	t2l=(y-yl)/aa;
	t2r=(y-yr)/aa;
	if (x+t1l*bb<xl) t1l++;//除法的精度损失 
	else if (x+t1l*bb>xr) t1l--;
	if (x+t1r*bb<xl) t1r++;
	else if (x+t1r*bb>xr) t1r--;
	if (y-t2l*aa<yl) t2l--;
	else if (y-t2l*aa>yr) t2l++;
	if (y-t2r*aa<yl) t2r--;
	else if (y-t2r*aa>yr) t2r++;
	if ((x+t1l*bb<xl)||(x+t1l*bb>xr)
	||(x+t1r*bb<xl)||(x+t1r*bb>xr)
	||(y-t2l*aa<yl)||(y-t2l*aa>yr)
	||(y-t2r*aa<yl)||(y-t2r*aa>yr)) {
		printf("0");
		return 0;
	}
	if (t1l>t1r) swap(t1l,t1r);
	if (t2l>t2r) swap(t2l,t2r);
	tl=max(t1l,t2l);
	tr=min(t1r,t2r);
	if (tl>tr) printf("0");
	else printf("%lld",tr-tl+1);
	return 0;
}
FreeSWITCH DTMF转换全解析:从2833到inband的完整配置指南 本文深入解析FreeSWITCH中DTMF信号的两种主要传输方式:RFC 2833和inband,详细比较它们的原理差异与应用场景,并提供完整的配置指南和性能优化建议,帮助开发者实现可靠的DTMF转换。 阅读详情

相关推荐

测试 RTPEngine Inband DTMF 转 RFC 2833

作为一种特殊情况,如果使用了 strip=all 或 mask=all 选项,并且 transcode 选项用于原本在提议中存在的编解码器,则 rtpengine 将将此编解码器视为与使用 offer 选项时相同,即它将简单地从已剔除的编解码器列表中恢复该编解码器,而不会实际为此编解码器启用转码。如果指定了任何格式参数,则仅当所有格式参数都匹配时,该编解码器才会被剔除,而相同编解码器但具有不同格式参数的其他实例将保持不变。另外请注意,如果进行转码,则此媒体流的内核转发将被禁用,所有处理将在用户空间中进行。

fs交流的博客 259

题解 洛谷P2833 【等式】

运用暴力解方程吸氧过了这道题 通过数据范围看,要是枚举x和y只能炸掉三成的数据。 所以考虑枚举从x1到x2枚举x,通过方程移项可知y=-(ax+c)/b,再判断y是否在y1和y2之间即可。 本题本做法主要坑点: 1、a=b=0时要特判(分为c=0和c!=0两种情况) 2、y1和y2是cmath库关键字 3、注意精度问题 #pragma GCC optimize(1) ...

weixin_30621919的博客 146

实战教程:用YOLOv11+PyQt5打造工地安全帽检测系统(附完整数据集)

本文提供了一份完整的实战指南,详细介绍了如何利用YOLOv11目标检测模型与PyQt5界面库,从零开始构建一个智能工地安全帽检测桌面应用。内容涵盖高质量数据集的准备与标注、YOLOv11模型训练与调优,以及如何使用PyQt5开发流畅、专业的图形用户界面,最终实现一个可实际部署的AI安全监控系统。

plum99的博客 736

打卡信奥刷题(2656)用C++实现信奥题 P2833 等式

题目要求求解线性方程ax+by+c=0在给定范围内的整数解对数。摘要:给定a,b,c和x,y的范围[x1,x2],[y1,y2],计算满足条件的整数解(x,y)的数量。需考虑特殊情况(a或b为0)和一般情况,通过遍历较小范围优化计算。输入样例1 1 -3 0 4 0 4输出4,表示有4组解。数据范围绝对值可达10^8,需注意数值处理和精度问题。

Loge谈信奥--一个专注于信奥人的博客 420

USB3.0一致性测试方案

为各测试项目具体测试结果包括脉冲串突发时间、脉冲串重复时间、时钟周期以及眼图等完整USB3.0测试项目,工程师可以看到各项测试的具体结果方便观察。RIGOL 提供了一套完善的工具,包括数字示波器、专业的测试夹具以及全自动一致性测试软件,使得USB 3.0设备设计人员能够高效精确地进行信号捕捉、测试与分析。报告第二部分测试摘要,在此可以看到USB3.0测试所有测试项目,并且可以观看到测试是否正常,可以帮助工程师更好的判断测试结果。,以简化下载、存储以及对于多媒体的大量内容的共享。

2409_87378937的博客 2526

E28 LoRa模块透传 定点传输 RSSI测试与MicroPython应用

测试说明 测试模块数:3 测试模式:配置模式和传输模式 如果没有检测到串口,首先检查是否安装串口驱动CH341SER,下载链接,提取码:vaw2 工作模式 模式(0-3) M2 M1 M0 模式介绍 备注 0 传输模式 1 0 0 串口打开,无线打开,连续透明传输 空速支持手动配置和自适应波特率自动调节;连续模式双方波特率必须一致 1 RSSI 1 0 1 串口打开,无线打开,RSSI功能打开 模块每100ms输出RSSI强度值 2 测距模式 1 1 0 保留 - 3 配置模式

GniLAY1022的博客 4242

DTMF采用RFC2833进行带内传输的实现

摘要:    本文主要说明采用RFC2833标准进行DTMF传送的方法和格式。关键字:RFC2833,RTP,DTMF 一.IP电话传送DTMF的方式       DTMF就是双音多频,我们日常生活中拨打电话的过程中经常会用到,如拨打用户的分机号码,输入帐号和密码等。而随着IP电话的大量使用如何实现传送DTMF成为IP电话中的一个技术问题。目前传送DTMF信号普遍有两种方式

lihao_ningxia的专栏 1万+

Zemax操作16--激光谐振腔(含晶体)

谐振腔(含晶体)

lzy750750的博客 8311

DTMF从2833到inband的方案

freeswitch是一款简单好用的VOIP开源软交换平台。之前的文章中介绍过通过dialplan拨号计划配置的方法,实现2833到inband的转换,但是实际生产环境中的场景会更复杂,无法预先在dialplan中设置好相关参数和函数。根据sip协议的规范,在媒体协商的过程中,如果已经有183SDP或update的SDP了,则200SDP会被忽略。

求真得真的博客 1325

IQA图像质量评价 数据集介绍(LIVE、TID2013、CSIQ、LIVEC、KonIQ-10K)

LIVE、TID2013、CSIQ、LIVEC、KonIQ-10K 数据集介绍

qq_37925923的博客 1万+

2026实测可用!4个专业AI Agent Skills垂直搜索平台对比

📊本文以表格形式整理4个实测可用的专业AI Agent Skills垂直搜索平台,涵盖资源规模、适配生态等关键维度🤖,适合开发者按需选择技能获取渠道,解决平台筛选与访问难题✨

XiaoqiangClub的博客 523

采用RFC2833标准进行DTMF传送的方法和格式。

摘要:   本文主要说明采用RFC2833标准进行DTMF传送的方法和格式。   关键字:RFC2833,RTP,DTMF 一.IP电话传送DTMF的方式    DTMF就是双音多频,我们日常生活中拨打电话的过程中经常会用到,如拨打用户的分机号码,输入帐号和密

资料库 8653

六、Tool 工具系统:让大模型拥有“手脚“

我问你一个问题:大模型能不能告诉你"北京今天天气怎么样"?能——它能用非常流畅的中文回答你不能——它不知道这个答案因为它没有联网能力,也没有实时数据。它可能会自信地编一个"今天晴,25 度"给你——这就是幻觉。问题出在哪?大模型是一个"推理引擎",不是一个"执行引擎"。它知道天气 API 怎么调用,但不能真的发出 HTTP 请求。它知道 Python 代码怎么写,但不能真的运行代码。它知道数学公式,但做不了精确的大数计算。Tool 工具系统解决的,就是这个"最后一公里"问题。

牛肉胡辣汤 157

记录freeswitch的一个2833问题

freeswitch是一款简单好用的VOIP开源软交换平台。运营商内部新老系统混用,互联互通的问题较多,其中以DTMF码的问题最多,花样也多。临时方案覆盖面不足,无法保证所有线路都能通过该方式修正该问题。正式方案应该修改fs的200OK携带payload,可以动态的跟随update保持一致。空空如常求真得真。

求真得真的博客 1103

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

BZOJ 2833 数列对计数

题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=2833 题解 显然,每种情况都可以转化成:BBB的取值为与XXX......XXX......XXX......类似的情况,其中位置iii为X说明BBB中有iii,否则没有。 设f[i][j][k]f[i][j][k]f[i][j]...

dilei7762的博客 163

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Luogu P2833 等式 我是傻子x2

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

83

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

手机打电话时将对方DTMF数字转为RFC2833发给局域网SIP坐席

本文是为了简化SIP平台的部署难度,针对SIM卡电话通话中的DTMF按键的信息,在蓝牙电话SDK到SIP平台的这一段通路中,将蓝牙电话SDK解码出来的DTMF数字,通过RFC2833的协议,通过rtp将DTMF又多发了一份给SIP平台。使SIP平台可以不用特意专门去解析In-band带内DTMF,即可正常获取到对方的按键值。

limingade的博客 1560

FreeSWITCH rfc2833转inband dtmf

FreeSWITCH rfc2833转inband dtmf

fs交流的博客 626

CCS编译错误#1965 cannot open source file “DSP2833x_Device.h“的解决办法

还有可能是工程路径中含有中文,把路径中的中文删掉即可。

shendingposb的博客 1615

收号傻瓜书(rfc2833)

1话机历史 1876年贝尔发明第一部电话机 第一代话机,手摇式拨打电话,通过摇转手柄接通转接中心,由中心接线员负责转接,摇手柄主要是用于发电;   信令:拨号者和中心接线员的对话指示   第二代话机,脉冲拨号,不同脉冲序列代表不同号码,例如1个脉冲表是1,9个脉冲表示

runningya的专栏 6125

DTMF采用RFC2833进行带内传输的实现[ZT]

摘要:    本文主要说明采用RFC2833标准进行DTMF传送的方法和格式。 关键字:RFC2833,RTP,DTMF  更正:rfc2833的方式为带外传送,下面有错误。 一.IP电话传送DTMF的方式        DTMF就是双音多频,我们日常生活中拨打电话的过程中经常会用到,如拨打用户的分机号码,输入帐号和密码等。而随着IP电话的大量使用如何实现传送DTMF成为IP电话中的一个技...

张继飞的专栏 1111
上一篇: 「APIO2010」 特别行动队 - 斜率优化Dp
下一篇: 「APIO2009」 抢掠计划 - Tarjan缩点+最长路
TbYangZ
博客等级 码龄8年 13粉丝 81原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值