题目:http://acm.hdu.edu.cn/showproblem.php?pid=5666

题意:给一条直线x+y=q,在(0,0)往x+y=q上面的整数点连线,x+y=q与x,y轴截成的三角形内部,有多少个整数点,除了直线上的点,q是指数。

思路:首先两点之间的整数点有个公式,设A(x1,y1),B(x2,y2),整数点的个数即为gcd(|x1-x2|,|y1-y2|)-1;注意到三角形是一个等腰直角三角形并且三角形在第一象限,所以假设直线x+y=q上面的一个点,C(x,q-x);那么从原点连到这个点上的整数点的个数即为gcd(x,q-x),因为q是质数,设gcd(x,q)=c,那么存在两个互质的数m,n使得m*c=x,n*c=q,那么q-x=(m-n)*c,因为m,n互质,没有任何一个大于一的整数能同时整除这两个数,所以(m-n)跟m还是互质,所以gcd(q-x,x)=gcd(x,q);又因为q是质数,且x<=q,所以gcd(x,q-x)=gcd(x,q)=1,即连线上不会经过三角形内部的点,所以答案就是三角形内部的点的个数,三角形内包括三角形上面的点,一共有(q+1)+(q)+(q-1)+...+1,即(q+2)*(q+1)/2,又因为三角形的边上有3*q个点,所以三角形内部有(q-2)*(q-1)/2个点,好,我以为,这个时候我做完了,最后不就是模P的时候处理一下就好了吗,交一发直接WA,看了一下数据范围:2≤q≤10^18,1≤P≤10^18,1≤T≤10。生无可恋,就算运算的时候取模了还是会爆long long的,用一个大数模板,又一次WA了,最后模仿快速幂的形式写了一个快速积,即边加边取模,过了。。。

代码:

 #include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <algorithm>
#include <math.h>
#include <cstring>
using namespace std;
long long mul(long long a,long long b,long long mod)
{
long long ans=;
a%=mod;
while(b>)
{
if(b%==)ans=(ans+a)%mod;
b/=;
a=(a+a)%mod;
}
return ans;
}
int main()
{ int t;
long long int p,q;
scanf("%d",&t);
while(t--)
{ scanf("%lld %lld",&q,&p); long long int ans1=(q-);
long long int ans2=(q-);
if(ans1%==)
ans1/=;
if(ans2%==)
ans2/=; printf("%lld\n",mul(ans1,ans2,p));
}
return ;
}

快速积

 long long  mul(long long  a,long long  b,long long  mod)
{
long long ans=;
a%=mod;
while(b>)
{
if(b&)
ans=(ans+a)%mod;
a=(a+a)%mod;
b>>=;
}
return ans;
}

HDOJ 5666//快速积,推公式的更多相关文章

  1. CCF 201312-4 有趣的数 (数位DP, 状压DP, 组合数学+暴力枚举, 推公式, 矩阵快速幂)

    问题描述 我们把一个数称为有趣的,当且仅当: 1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次. 2. 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前. 3. 最高 ...

  2. HDU6050: Funny Function(推公式+矩阵快速幂)

    传送门 题意 利用给出的式子求\(F_{m,1}\) 分析 直接推公式(都是找规律大佬) \(n为偶数,F_{m,1}=\frac{2(2^n-1)^{m-1}}3\) \(n为奇数,F_{m,1}= ...

  3. Uint47 calculator【map数组+快速积+各种取余公式】

    Uint47 calculator 题目链接(点击) In the distant space, there is a technologically advanced planet. One day ...

  4. HDOJ(HDU).2044-2049 递推专题

    HDOJ(HDU).2044-2049 递推专题 点我挑战题目 HDU.2044 题意分析 先考虑递推关系:从1到第n个格子的时候由多少种走法? 如图,当n为下方格子的时候,由于只能向右走,所以有2中 ...

  5. 2019牛客多校第二场 A Eddy Walker(概率推公式)

    2019牛客多校第二场 A Eddy Walker(概率推公式) 传送门:https://ac.nowcoder.com/acm/contest/882/A 题意: 给你一个长度为n的环,标号从0~n ...

  6. HDU 4873 ZCC Loves Intersection(JAVA、大数、推公式)

    在一个D维空间,只有整点,点的每个维度的值是0~n-1 .现每秒生成D条线段,第i条线段与第i维度的轴平行.问D条线段的相交期望. 生成线段[a1,a2]的方法(假设该线段为第i条,即与第i维度的轴平 ...

  7. HDU 4870 Rating(概率、期望、推公式) && ZOJ 3415 Zhou Yu

    其实zoj 3415不是应该叫Yu Zhou吗...碰到ZOJ 3415之后用了第二个参考网址的方法去求通项,然后这次碰到4870不会搞.参考了chanme的,然后重新把周瑜跟排名都反复推导(不是推倒 ...

  8. HDU 5047 推公式+别样输出

    题意:给n个‘M'形,问最多能把平面分成多少区域 解法:推公式 : f(n) = 4n(4n+1)/2 - 9n + 1 = (8n+1)(n-1)+2 前面部分有可能超long long,所以要转化 ...

  9. bjfu1211 推公式,筛素数

    题目是求fun(n)的值 fun(n)= Gcd(3)+Gcd(4)+…+Gcd(i)+…+Gcd(n).Gcd(n)=gcd(C[n][1],C[n][2],……,C[n][n-1])C[n][k] ...

随机推荐

  1. MySQL优化技巧总结

    MySQL优化的几个大方向 ① 硬件优化 ② 对MySQL配置参数进行优化(my.cnf)此优化需要进行压力测试来进行参数调整 ③ SQL语句方面的优化 ④ 表方面的优化   硬件优化 cpu,内存, ...

  2. 无法从带有索引像素格式的图像创建graphics对象

    大家在用 .NET 做图片水印功能的时候, 很可能会遇到 “无法从带有索引像素格式的图像创建graphics对象”这个错误,对应的英文错误提示是“A Graphics object cannot be ...

  3. p9半幺群

    如何不理解划红线的地方?第二个划红线地方,请举一个例子 1.0不是幺元 2.f(1)=2, f(2)=1, f(3)=3, g(1)=2, g(2)=3, g(3)=1  fg不等于gf

  4. nodejs 中的一些方法

    fs.unlink(path, [callback(err)]) //删除文件操作. //path 文件路径 //callback 回调,传递一个异常参数err. ndoe中解决跨域问题 expres ...

  5. LR 两种html与url录制

    一直在使用LR,对于Html_based script和Url-based script 两种录制方式之间,要如何选择,仍是一知半解.最近测试时遇到同样的业务功能,两种录制方式的脚本,单次执行时间差别 ...

  6. 通过event记录sql

    providers EventServiceProvider.php 添加 protected $listen = [ 'Illuminate\Database\Events\QueryExecute ...

  7. 一条SQL语句执行得很慢的原因有哪些?(转)

    一条 SQL 语句执行的很慢,那是每次执行都很慢呢?还是大多数情况下是正常的,偶尔出现很慢呢?所以我觉得,我们还得分以下两种情况来讨论. 1.大多数情况是正常的,只是偶尔会出现很慢的情况. 2.在数据 ...

  8. jvm 虚拟机内存模型

    来源:https://blog.csdn.net/A_zhenzhen/article/details/77917991?locationNum=8&fps=1    https://blog ...

  9. linux 服务器名 访问 shh免密码登录

    以根用户登录,或者登录后切换到根用户,然后在提示符下输入hostname命令,可以看出当前系统的主机名为localhost.localdomain.   更改/etc/sysconfig下的netwo ...

  10. python学习笔记(4)-基本数据类型-数字类型及操作

    大学mooc 北京理工大学 python语言程序设计课程学习笔记 一.整数类型 可正可负,没有取值范围的限制(这个与c不同,c要考虑数据类型的存储空间).如pow(x,y),计算x的y次方,pow(2 ...