hdu5970
真是怀疑当初合肥赛区怎么考这么差的……
首先根据辗转相除法可知f(i,j)=f(i+j*k,j)
于是我们可以先于处理出f(i,j) (j<=666,i<=j),当确定i,j时c也确定

(x=gcd(i,j))可见,当确定了i,j,k后,后面p的求和就是一个等差数列的求和
c是logm级的所以总复杂度就是O(T*m^2*logm)
#include<bits/stdc++.h> using namespace std;
typedef long long ll;
int f[][],c[][],n,m,p;
int get(int x,int y,int &f,int &c)
{
int t; c=;
while (y)
{
c++;
t=x%y; x=y; y=t;
}
f=c*x*x;
} int main()
{
int cas;
scanf("%d",&cas);
for (int j=; j<=; j++)
for (int i=; i<=j; i++)
get(i,j,f[i][j],c[i][j]);
while (cas--)
{
scanf("%d%d%d",&n,&m,&p);
ll ans=;
for (int j=; j<=m; j++)
for (int i=; i<=j&&i<=n; i++)
for (int k=; k<c[i][j]; k++)
{
if (i+k*j>n) break;
ll b=(i+j*k)*j/f[i][j];
ll d=c[i][j]*j*j/f[i][j];
ll t=(n-(i+j*k))/(c[i][j]*j)+;
ans=(ans+b*t%p+(t-)*t/%p*d%p)%p;
}
printf("%lld\n",ans);
}
}
hdu5970的更多相关文章
- CCPC2016合肥现场赛
A(hdu5961):(BFS) 题意:给两个有向图=P=(V,EP)和Q=(V,EQ), 满足1.EP与EQ没有交:2.EP∪EQ是竞赛图.判断P与Q是否同时为传 ...
随机推荐
- javascript中判断变量是否存在的正确方式
在Javascript中,我们通常判断一个变量是否存在(即不为null或者undefined),往往是这样判断的 if(tomy){ console.log(obj.name); } 这种写法在大部分 ...
- 算法(3)Rotate Array
题目:将一个n个元素的数组右移k位,比如n=7,k=3,对数组[1,2,3,4,5,6,7]作如下旋转[5,6,7,1,2,3,4] 思路:[5,6,7,1,2,3,4],不知大家看出来了没有呢,两次 ...
- JSP九大内置对象及其方法
内置对象包括 request response pageContext session application out config page exception 1.out (1)clear()清除 ...
- CSS继承—深入剖析
CSS的继承是指被包在内部的标签将拥有外部标签的样式性质.继承特性最典型的应用通常发挥在整个网页的样式预设,即整体布局声明.而需要要指定为其它样式的部份设定在个别元素里即可达到效果.这项特性可以给网页 ...
- hdu 3648 Median Filter (树状数组)
Median Filter Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- BJOI2018
BJOI2018 省选挂完,是时候更一篇题解了.对于鬼畜结论题我只放结论不给证明,不要打我-- day1 二进制 试题描述 pupil 发现对于一个十进制数,无论怎么将其的数字重新排列,均不影响其是不 ...
- BZOJ1559 [JSOI2009]密码 【AC自动机 + 状压dp】
题目链接 BZOJ1559 题解 考虑到这是一个包含子串的问题,而且子串非常少,我们考虑\(AC\)自动机上的状压\(dp\) 设\(f[i][j][s]\)表示长度为\(i\)的串,匹配到了\(AC ...
- [NOIP2003] 传染病控制 搜索+剪枝
搜索的最广泛应用优化——剪枝 这道题的dp和贪心都是无正确性的,所以,搜~~~~~~~ 搜的时候你发现不剪枝极容易被卡掉(然而良心NOIP没有这么做,不剪枝仍然飞快),所以我们需要一些玄学的剪枝最常见 ...
- clear:both其实是有瑕疵的
在开发中,从美工MM给你Html代码中,肯定能经常看"<div style="clear:both;"></div>"这样的代码,但是你 ...
- Python3 urlparse
>>> from urllib.parse import urlparse >>> o = urlparse('http://www.cwi.nl:80/%7Egu ...