当前位置: 首页 > news >正文

内蒙营销型网站建设遵义网站制作一般多少钱

内蒙营销型网站建设,遵义网站制作一般多少钱,陕西建设网官网三类人员,seo短视频网页入口引流推广题目描述 题目分析 由于两只青蛙都在跳跃导致变量多,不妨采用物理题中的相对运动思想,设青蛙A不动,青蛙B每次跳米,两只青蛙的距离为米。正常来说,只要模拟青蛙B与青蛙A的相对运动过程,最终当青蛙B与青蛙A距…

题目描述


题目分析

        由于两只青蛙都在跳跃导致变量多,不妨采用物理题中的相对运动思想,设青蛙A不动,青蛙B每次跳n-m米,两只青蛙的距离为x-y米。正常来说,只要模拟青蛙B与青蛙A的相对运动过程,最终当青蛙B与青蛙A距离为0时即可求得总跳跃次数。但是难点在于数据量大,按部就班的模拟将会超时。

        由于这是一道有关整数和环的数学题,考虑使用扩展欧几里得算法求解。现直接假设一只青蛙静止,另一只青蛙每次位移为a=n-m,总跳跃次数为X,一圈长度为b=L,跳跃的圈数为Y,青蛙间的距离为c=x-y。则题目满足方程:aX+bY=c。显然要使方程有整数解,必须满足的条件是:c必须是 a 和 b 的最大公约数的倍数,即ax\equiv c(mod\ b)。这可以通过贝祖定理证明。

        接下来的难点是求出最小跳跃次数。根据拓展欧几里得算法已经得到了方程的一组特解,但这不一定是最优解,根据线性同余方程的通解公式:

x=x_0+k\frac{b}{d}\mid k\in \mathbb{Z},d=gcd(a,b)

只需让该特解模除\frac{b}{d}即可求出跳跃次数在(0,\frac{b}{d}]间的最小正整数解。

        提交后有一处测试点有误,经检查,原来在exgcd算法中,如果两个参数存在负数,输出的最大公因数gcd(a,b)也可能是负数。这并不影响所得特解的正确性,但在求最小正解的时候,需要采取措施让取模后的结果转变为正数。


我的代码

#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;// 扩展欧几里得算法
ll extgcd(ll a, ll b, ll& x, ll& y) {if (b == 0) {x = 1;y = 0;return a;}ll d = extgcd(b, a % b, y, x);y -= (a / b) * x;return d;
}int main() {ll x, y, m, n, L;cin >> x >> y >> m >> n >> L;ll a = n - m;  // 移项后得到 a = n - mll b = x - y;  // 常数项 b = x - yll l = L;      // 模数为 Lll x0, y0;ll d = extgcd(a, l, x0, y0);  // 使用扩展欧几里得求解if (b % d != 0) {cout << "Impossible" << endl;}else {// 存在解的情况,求最小非负整数解ll k = (x0 * (b / d)) % (l / d); //其中x0*(b/d)为一个方程的特解if (k < 0) {if (l / d > 0) {k += l / d;  // 保证 k 为非负}else {k -= l / d;  // 保证 k 为非负}}cout << k << endl;}return 0;
}

由于扩展欧几里得算法参数使用了引用,导致逻辑相对更难理解,我利用原本欧几里得算法的数学递推逻辑修改为一下函数,程序可以成功运行:

ll x_0;
ll y_0;
ll x_1;
ll y_1;
ll extgcd(ll a, ll b) {ll d = a;if (b != 0) {d = extgcd(b, a % b);x_0 = y_1;y_0 = x_1 - a / b * y_1;y_1 = y_0;x_1 = x_0;}else {x_1 = 1;y_1 = 0;}return d;
}

http://www.yayakq.cn/news/737656/

相关文章:

  • 怎么建立局域网网站服务器做php网站吗
  • 我的家乡网站建设wordpress all in one seo
  • 如何在网站做直播间学校网站建设建议
  • 网站制作软件名字线做留学公司网站怎么做
  • 电视台网站建设方案黄骅市在哪里
  • 网站网站二维码收钱怎么做的软件开发全流程
  • 速成建站网站设计流程包括
  • 0建设营销型网站步骤介绍google在线网页代理
  • 怎么查看网站主机商软件工程师面试常见问题
  • 成都设计专业的装修公司seo免费优化网站
  • 甘肃网站建设公司电话站长工具怎么关闭
  • 地方旅游网站模板建筑方案的网站
  • 网站做百度推广需要哪些条件微信网站开发费用
  • 宁波网站建设网站排名优化高端公司小程序建设
  • 阿里云网站如何建设视频贵州省城乡与建设厅网站
  • 如何维护自己公司网站html网站二维码悬浮怎么做
  • 网站开发语言开发物联网学什么
  • 开源 网站开发框架自己做动漫 哪个网站赚钱
  • 做网站一般怎么收费的网站做成小程序
  • 做网站搭建需要什么人wordpress切换主题后
  • 建设银行网站怎么登录密码忘了怎么办wordpress用redis
  • 河北省住建厅电子证书查询文大侠seo博客
  • asp网站优化访问速度哪个建立网站好
  • 网站开发用哪种语言自贡建设专业网站设计
  • 大连市建设学校网站平面设计平台有哪些
  • phpstorm网站开发wordpress 管理员插件
  • 做网站设计公司价格找人建设网站
  • 导购网站开发源码上海装修公司排名大全
  • 园林公司网站模板免费浪漫网页制作网站
  • 企业怎么建立网站网站建设最难的部分