问题链接:HDU1576A/B

问题简述:参见上述链接。

问题分析:之前给出来一个用扩展欧几里德算法解本问题的方法,时间上则比较慢。试探法有时也是高效率的。

根据题意,输入的n=A%9973(没有输入A),A%B=0(A必能被B整除),B与9973互素(GCD(B,9973)=1)。

解题过程首先是建立方程,然后才能编写程序。

设x=(A/B)%9973(x是最终想计算的值,满足0<=x<=9972),则9973k+x=A/B(k为整数),得A=9973Bk+xB。

因为n=A%9973与A=9973Bk+xB,所以xB%9973=n,得xB=n+9973y,亦得xB-n=9973y。

故:(xB-n)%9973=0

对于上式,只需要用试探法就可以求得x。这样,程序运行速度相当快。

需要主意的是,变量类型为long时没有AC,改为long long就AC了,有点奇怪。也许评价系统所用编译版本的long类型不是64位的,才有这种情况。

程序说明:(略)

AC的C语言程序如下:

#include <stdio.h>int main(void)
{int t, i, j;long long n, b, a=9973;scanf("%d", &t);for(i=0; i<t; i++) {scanf("%lld%lld", &n, &b);for(j=0; j<a; j++)if((j * b - n) % a == 0) {printf("%d\n", j);break;}}return 0;
}

转载于:https://www.cnblogs.com/tigerisland/p/7564916.html

HDU1576 A/B (解法二)【试探法】相关推荐

  1. 从LeetCode 679. 24 Game--C++ 解法--二十四点 到穷举24点所有可能性-24点大全

    从LeetCode 679. 24 Game–C++ 解法–二十四点 到穷举24点所有可能性 此文首发于我的个人博客:zhang0peter的个人博客 LeetCode题解文章分类:LeetCode题 ...

  2. 隐形Euler方法的java程序_常微分方程的解法 (二): 欧拉(Euler)方法

    上一节讲了 常微分方程的三种离散化 方法:差商近似导数.数值积分.Taylor 多项式近似. 目录 §2 欧拉(Euler)方法 2.1 向前 Euler 公式.向后 Euler 公式        ...

  3. HDU1106 排序(解法二)(废除!!!)

    本文废除!!! 请点击以下的参考链接!!! 参考链接:HDU1106 排序[字符串+整数+排序]. 问题链接:HDU1106 排序. 问题简述:参见上述链接. 问题分析:这个程序的逻辑并不十分复杂,主 ...

  4. 【MPI编程】矩阵向量乘法--解法二(高性能计算)

    简述 有留心过的朋友可能会发现,其实我没写过解法一. 因为解法一就是大家最直观的感受的一种解法. 将矩阵按照行划分,之后,再每个线程都用整个向量跟这个块做内积.之后,传回来一个数值. 这里的方法二, ...

  5. 常微分方程的解法 (二): 欧拉(Euler)方法

    上一节讲了 常微分方程的三种离散化 方法:差商近似导数.数值积分.Taylor 多项式近似. 目录 §2 欧拉(Euler)方法 2.1 向前 Euler 公式.向后 Euler 公式        ...

  6. c语言暴力求解法二维数组比较,【算法】搜索二维矩阵 暴力解法二分法 4种语言...

    编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性: 每行中的整数从左到右按升序排列. 每行的第一个整数大于前一行的最后一个整数. 示例 1:输入:matrix = ...

  7. HDU1013 POJ1519 Digital Roots(解法二)

    该问题的最佳解法是利用数论的9余数定理来计算数根.一个数的数根等于该数的9的余数,若余数为0则结果为9. 问题链接:HDU1013 POJ1519 Digital Roots.入门练习题,用C语言编写 ...

  8. HDU1163 Eddy's digital Roots(解法二)【快速模幂+九余数定理】

    问题链接:HDU1163 Eddy's digital Roots. 问题简述:参见上述链接. 问题分析:计算n^n的数根,一要快,二要简单.使用快速模幂计算,加上数论中的九余数定理就完美了. 程序说 ...

  9. 算法竞赛入门经典(第二版) | 例题4-5 追踪电子表格中的单元格 (UVa512,Spreadsheet Tracking,World Finals)(解法二)

    本着清晰明了易懂可以水两篇 的理念,笔者将这道题分两次发布.这是第二种解法. 第一种解法传送门→解法一+提交网址 因为解法1中有详细关于题目和输入输出格式等的介绍,这里就不过多赘述了. 分析: 一些初 ...

最新文章

  1. 转:在线框架引用 bootstrap/jq/jqmobile/css框架
  2. 再读《精通css》04:盒模型和空白边叠加
  3. Python档案袋(列表、元组、字典、集合 )
  4. libevent源码学习-----Reactor模型
  5. 关于Tomcat与MySQL连接池问题的详解
  6. 华为荣耀v20是android10,荣耀V20和荣耀V10买哪个好
  7. java redis 商品秒杀_使用redis秒杀出现产品超发现象求解?
  8. lambda 复制数组
  9. CodeIgniter辅助函数
  10. Kubernetes[3]-Server
  11. mysql连接池设计_数据库连接池(基于MySQL数据库)
  12. html与js二级菜单横排,JavaScript实现横向滑出的多级菜单效果
  13. Vue-cli 4.x 中的全局样式配置
  14. 逐一解读Gartner评出的11大信息安全技术
  15. go语言之进阶篇面向对象编程
  16. 1052. Linked List Sorting (25)再
  17. C语言日志库zlog的简单配置及使用
  18. 杭电ACM2030题
  19. 如何让计算机断开网络连接网络设置,电脑怎样设置定时断网,教您怎么设置
  20. 比亚迪F3 2009版手动豪华型车辆使用记录

热门文章

  1. Markdown 基础语法 记录 复制到 typora 中就可以看出来了呦,或者预览哟
  2. linux 多线程的基础 交通信号灯学习笔记 :信号详解
  3. html里五角星怎么打,html怎么显示五角星 几分给几个五角星
  4. 获取鼠标在盒子中的坐标
  5. 【 Linux 】创建一个文件夹并在此文件下创建一个c源文件
  6. Servlet - HTTP超文本传输协议
  7. 实用 | 从Apache Kafka到Apache Spark安全读取数据
  8. ORACLE时间函数(SYSDATE)深入理解
  9. 【log】12/11 checking project:(Laravel)snsTest
  10. hdu 3732(01背包转多重背包)