题目链接 : http://acm.hpu.edu.cn/problem.php?id=1184

或者       http://acm.nyist.net/JudgeOnline/problem.php?pid=1319

题目意思 : 给定三个整数N,M,K,在1<=a<=N和1<=b<=M的约束下,存在多少个不同的整数对(a,b)使得a∗b可以被K整除? 数据范围:1<=T<=10000,1<=N,M<=109,1<=K<=50000。

思路:    我们可以对于题目中的 K 进行因子对分解,假设分解后数对为(ai,bi);     再排序;

假设这个数对是 (x,y) 那么x或者y乘以一个整数肯定能被K整除;所以 会有这样的整数数对 有 (n/ai)*(m/bi) 个;

假设我们枚举按照ai的升序,bi 降序,那么对应符合条件的列数一定会减少,对应符合条件的行数一定会增多;

所以我们用
arr[i] 代表第i个因子对且不包含之前统计过列的数量,那么在计算arr[i]  的时候就需要减去与之前计算重复的哪一些 ? 所以,如果  ai 是 aj 的倍数 (ai%aj=0),那么 得到(bj%bi=0) 第i个数对与第j个数对的,所以i所在的列,那么一定是j统计过的,所以需要减去j那部分列;

可能说的不太清楚,或者我理解不深,请看代码自己想一想或许就懂了。

 #include <cstdio>
#include <cstring>
#include <cctype>
#include <cmath>
#include <set>
#include <map>
#include <list>
#include <queue>
#include <deque>
#include <stack>
#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
#include <stdlib.h>
#include <time.h> using namespace std;
typedef long long LL;
const int INF=2e9+1e8;
const int MOD=1e9+;
const int MAXSIZE=1e6+;
const double eps=0.0000000001;
void fre()
{
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
}
#define memst(a,b) memset(a,b,sizeof(a))
#define fr(i,a,n) for(int i=a;i<n;i++) const int MAXN=5e4+;
int arr[MAXN],fac[MAXN],myindex;
void init(int k)
{
myindex=;
for(int i=;i<=sqrt(k);i++)
if(k%i==) fac[myindex++]=i,fac[myindex++]=k/i;
}
int main(int argc,char *argv[])
{
int ncase,k;
scanf("%d",&ncase);
while(ncase--)
{
LL n,m;
scanf("%lld%lld%d",&n,&m,&k);
init(k);
sort(fac,fac+myindex);
LL ans=;
for(int i=;i<myindex;i++)
{
int a=fac[i],b=k/fac[i];
arr[i]=m/b; // 列数
for(int j=;j<i;j++)
if(a%fac[j]==) arr[i]-=arr[j];
//排除一些列数 : 如果 行号成倍数;就说明重复了;所以有 容斥
ans+=n/a*(arr[i]);
}
printf("%lld\n",ans);
}
return ;
} /**************************************************/
/** Copyright Notice **/
/** writer: wurong **/
/** school: nyist **/
/** blog : http://blog.csdn.net/wr_technology **/
/**************************************************/

Sports的更多相关文章

  1. English trip V2 - 6 Sports Teacher:Taylor Key:phrasal verbs

    In this lesson you will learn to talk about sports. 课上内容(Lesson) # How many different sports can you ...

  2. 「AtCoder Grand018B」Sports Festival(暴力)

    题目链接B - Sports Festival 题意 n(1~300)个人m(1~300)个活动,\(A_{ij}\)表示i第j喜欢的活动,每个人选择在举办的活动里最喜欢的,因此可以通过选择一些活动来 ...

  3. 新巴巴运动网上商城 项目 快速搭建 教程 The new babar sports online mall project quickly builds a tutorial

    新巴巴运动网上商城 项目 快速搭建 教程 The new babar sports online mall project quickly builds a tutorial 作者:韩梦飞沙 Auth ...

  4. 5. Sports 体育运动

    5. Sports 体育运动 (1) Sport is not only physically challenging,but it can also be mentally challenging. ...

  5. OpenJ_POJ C16D Extracurricular Sports 打表找规律

    Extracurricular Sports 题目连接: http://acm.hust.edu.cn/vjudge/contest/122701#problem/D Description As w ...

  6. TZOJ 4007 The Siruseri Sports Stadium(区间贪心)

    描述 The bustling town of Siruseri has just one sports stadium. There are a number of schools, college ...

  7. 【OpenJ_POJ C16D】Extracurricular Sports(构造,找规律)

    题目求n个互不相同的数,满足其和为其lcm.我们把lcm看成一个线段,分割成长度不同的n份.当然分法有很多,我们只需要构造一个好想好写的.先分成两个二分之一,取其中一个二分之一再分成1/3和2/3,接 ...

  8. [HackerCup Round1 3] Winning at Sports (动态规划)

    题目链接:https://www.facebook.com/hackercup/problems.php?pid=688426044611322&round=344496159068801 题 ...

  9. ZOJ 3757 Alice and Bob and Cue Sports(模拟)

    题目链接 题意 : 玩台球.Alice 和 Bob,一共可以进行m次,Alice 先打.有一个白球和n个标有不同标号的球,称目标球为当前在桌子上的除了白球以外的数值最小的球,默认白球的标号为0.如果白 ...

  10. zoj 3757 Alice and Bob and Cue Sports 模拟

    题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3757 #include<cstdio> #incl ...

随机推荐

  1. javascript 函数初探 (三)--- javascript 变量的作用域

    javascript 变量的作用域: 这是一个至关重要的问题.特别是当我们从别的语言转向javascript时,必须要明白一点,即在javascript中,变量的定义并不是以代码块作为作用域的,而是以 ...

  2. 【android】getDimension()、getDimensionPixelOffset()和getDimensionPixelSize()区别详解

    在自定义控件中使用自定义属性时,经常需要使用java代码获取在xml中定义的尺寸,相关有以下三个函数 getDimension() getDimensionPixelOffset() getDimen ...

  3. win10安装scrapy

    前提已经安装好python2.7背景:scrapy框架,windows下的部署工作挺麻烦的.需要用的资源整合了一下可以为以后需要的同学节省不少时间. 相关文件:网盘链接: http://pan.bai ...

  4. mysql序列号发生器

    mysql序列号发生器 学习了:http://www.jquerycn.cn/a_14577 还可以这样啊:

  5. python3 查看已安装的模块

    一.命令行下使用pydoc命令 在命令行下运行$ pydoc modules即可查看 二.在python交互解释器中使用help()查看 在交互式解释器中输入>>> help(&qu ...

  6. scala使用FunSpec进行单元测试报错

    遇到比较奇怪的问题,mvn项目中的main函数可以正常运行,但是test阶段出错,报错信息如下: Exception in thread "main" java.lang.NoCl ...

  7. C++虚继承的概念(转)

    http://blog.csdn.net/wangxingbao4227/article/details/6772579 C++中虚拟继承的概念 为了解决从不同途径继承来的同名的数据成员在内存中有不同 ...

  8. 深入浅出WPF----第五章----控件与布局

    你可以把控件想象成一个容器,容器里装的东西就是它的内容.控件的内容可以直接是数据,也可以是控件.当控件的内容还是控件的时候就形成了控件的嵌套.我们把被嵌套的控件称为子级控件,这种控件嵌套在U1布局时尤 ...

  9. 我的Android进阶之旅------&gt;解决:Execution failed for task &#39;:app:transformResourcesWithMergeJavaResForDebug&#39;.

    错误描写叙述 今天在Android Studio项目中添加了jackson的开发包,编译执行时候.引发了例如以下的错误: Error:Execution failed for task ':app:t ...

  10. &lt;LeetCode OJ&gt; 337. House Robber III

    Total Accepted: 1341 Total Submissions: 3744 Difficulty: Medium The thief has found himself a new pl ...