HDU——1573 X问题
2024-08-26 09:08:01
又来一发水题。
解同余方程而已,用类似于剩余定理的方法就O了。
直接上代码:(注意要判断是否有解这种情况)
#include <iostream>
#include <cstdio>
#define ll long long
using namespace std; ll c[],m[],n,t,tot; void exgcd(ll A,ll B,ll& d,ll& x,ll& y)
{
if (B==) { x=,y=,d=A; }
else { exgcd(B,A%B,d,y,x); y-=A/B*x; }
} ll china()
{
bool ans=true;
ll am=m[],d,y0,z0;
ll ac=c[];
for (ll i=; i<=n; i++)
{
exgcd(am,m[i],d,y0,z0);
if ((ac-c[i])%d!=)
{
ans=false;
break;
}
y0=(c[i]-ac)/d*y0;
y0=((y0%(m[i]/d))+(m[i]/d))%(m[i]/d);
ac=am*y0+ac,am=am/d*m[i],ac=(ac%am+am)%am;
}
if (ac==) ac=am;//这里是题目说明了整数,不能为0哦。
if (ac>tot || ans==false) return ;
return (tot-ac)/am+;
} int main()
{
cin>>t;
while (t--)
{
cin>>tot>>n;
for (ll i=; i<=n; i++) scanf("%I64d",&m[i]);
for (ll i=; i<=n; i++) scanf("%I64d",&c[i]);
cout<<china()<<endl;
}
return ;
}
最新文章
- find_elements后点击不了抓取的元素
- YbSoftwareFactory 代码生成插件【二十五】:Razor视图中以全局方式调用后台方法输出页面代码的三种方法
- Triangle
- display:inline、block、inline-block 的区别
- 组合数学 - 置换群的幂运算 --- poj CARDS (洗牌机)
- android 蓝牙4.0多通道
- 构建移动Web应用程序的技术堆栈
- python3.4 伪装成浏览器获取页面信息失败
- Oracle如何插入在特殊字符: &;amp; 和 &;#39; (各种解决方案)
- Linux学习之CentOS(十五)----磁盘管理之 启动挂载(转)
- python 异步发送邮件 aiosmtplib
- 【转】RabbitMQ基础——和——持久化机制
- xml实体注入学习
- Visual Flow 简介
- 20155219实验三 敏捷开发与XP实践
- python之路---04 列表 元组
- 微软和Sun针对Java的世纪之战
- spring中获取ApplicationContext对象的技巧,含源码说明
- eclipse中设置自定义文档签名(工具)
- springMVC 简单应用
热门文章
- 20155338 2016-2017-2 《Java程序设计》第3周学习总结
- 优步UBER司机全国各地奖励政策汇总 (4月18日-4月24日)
- 【CF543E】Listening to Music
- 【excle基础】如何去掉excel某一列中的字段的空格
- mongod 安装
- 「Leetcode」13. Roman to Integer(Java)
- JavaScript事件冒泡和捕获
- HDU 6438
- Jenkins之Sonar 代码检查
- JPA error org.hibernate.AnnotationException: No identifier specified for entity