又来一发水题。

解同余方程而已,用类似于剩余定理的方法就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 ;
}

最新文章

  1. find_elements后点击不了抓取的元素
  2. YbSoftwareFactory 代码生成插件【二十五】:Razor视图中以全局方式调用后台方法输出页面代码的三种方法
  3. Triangle
  4. display:inline、block、inline-block 的区别
  5. 组合数学 - 置换群的幂运算 --- poj CARDS (洗牌机)
  6. android 蓝牙4.0多通道
  7. 构建移动Web应用程序的技术堆栈
  8. python3.4 伪装成浏览器获取页面信息失败
  9. Oracle如何插入在特殊字符: &amp;amp; 和 &amp;#39; (各种解决方案)
  10. Linux学习之CentOS(十五)----磁盘管理之 启动挂载(转)
  11. python 异步发送邮件 aiosmtplib
  12. 【转】RabbitMQ基础——和——持久化机制
  13. xml实体注入学习
  14. Visual Flow 简介
  15. 20155219实验三 敏捷开发与XP实践
  16. python之路---04 列表 元组
  17. 微软和Sun针对Java的世纪之战
  18. spring中获取ApplicationContext对象的技巧,含源码说明
  19. eclipse中设置自定义文档签名(工具)
  20. springMVC 简单应用

热门文章

  1. 20155338 2016-2017-2 《Java程序设计》第3周学习总结
  2. 优步UBER司机全国各地奖励政策汇总 (4月18日-4月24日)
  3. 【CF543E】Listening to Music
  4. 【excle基础】如何去掉excel某一列中的字段的空格
  5. mongod 安装
  6. 「Leetcode」13. Roman to Integer(Java)
  7. JavaScript事件冒泡和捕获
  8. HDU 6438
  9. Jenkins之Sonar 代码检查
  10. JPA error org.hibernate.AnnotationException: No identifier specified for entity