hdu 4790 数学
/*
题意:给你二个区间[a,b]和[c,d]
分别从中选一个数x和y使的(x+y)%p=m;
可以这样来求,先求出(0->b和0->d区间段的值)-(区间0->a-1和0->d的值)-(区间0->b和0->c-1的值)+(0->a-1和0->c-1)的值
而且发现有这样的规律对于连个区间的末端值a和b来说
当在0->a这个区间内有一个单调性,a->b-1这个区间内有单调性,b-(a+b-m)/p*p这个区间内有单调性
直接用等差数列计算即可
*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define ll __int64
ll p,m;
ll f(ll aa,ll bb)
{
if(aa<0||bb<0)return 0;
ll i;
if(aa>bb)
{
i=aa;
aa=bb;
bb=i;
}
i=0;
ll j=0;
ll sum=0;
i=(aa-m)/p;
if(i>=0&&aa>=m)
{
sum+=(m+1+i*p+m+1)*(i+1)/2;
i++;
}
else i=0;
// printf("i=%I64d\n",sum);
j=(bb-m)/p;
if((bb-m)%p==0)j--;
if(j>=i&&bb>=m)
{
sum+=(aa+1)*(j-i+1);
j++;
}
else
j=i;
// printf("j=%I64d\n",sum);
ll k=(aa+bb-m)/p;
if(k>=j&&aa+bb>=m)
{
// printf("%I64d %I64d\n",aa,bb);
sum+=(aa+bb+1)*(k-j+1);
// printf("k=%I64d\n",sum);
sum-=(j*p+m+k*p+m)*(k-j+1)/2;
}
// printf("%I64d\n",sum);
return sum;
}
ll gcd(ll a,ll b)
{
if(b==0)return a;
return gcd(b,a%b);
}
int main()
{
ll t,a,b,c,d,aa,bb,k=0;
scanf("%I64d",&t);
while(t--)
{
scanf("%I64d%I64d%I64d%I64d%I64d%I64d",&a,&b,&c,&d,&p,&m);
aa=f(b,d)-f(a-1,d)-f(b,c-1)+f(a-1,c-1);
if(aa==0)
{
printf("Case #%I64d: 0/1\n",++k);
continue;
}
bb=gcd(aa,(b-a+1)*(d-c+1));
printf("Case #%I64d: %I64d/%I64d\n",++k,aa/bb,(b-a+1)*(d-c+1)/bb);
}
return 0;
}
hdu 4790 数学的更多相关文章
- HDU 5984 数学期望
对长为L的棒子随机取一点分割两部分,抛弃左边一部分,重复过程,直到长度小于d,问操作次数的期望. 区域赛的题,比较基础的概率论,我记得教材上有道很像的题,对1/len积分,$ln(L)-ln(d)+1 ...
- HDU 4790 Just Random 数学
链接:pid=4790">http://acm.hdu.edu.cn/showproblem.php?pid=4790 意:从[a.b]中随机找出一个数字x,从[c.d]中随机找出一个 ...
- hdu 4790 Just Random (2013成都J题) 数学思路题 容斥
题意:在[a,b] [c,d] 之间,和模p等于m的对数 详见代码 #include <stdio.h> #include <algorithm> #include < ...
- hdu 4790 Just Random (思路+分类计算+数学)
Problem Description Coach Pang and Uncle Yang both love numbers. Every morning they play a game with ...
- HDU 5976 数学,逆元
1.HDU 5976 Detachment 2.题意:给一个正整数x,把x拆分成多个正整数的和,这些数不能有重复,要使这些数的积尽可能的大,输出积. 3.总结:首先我们要把数拆得尽可能小,这样积才会更 ...
- *HDU 2451 数学
Simple Addition Expression Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Ja ...
- [ An Ac a Day ^_^ ] hdu 4565 数学推导+矩阵快速幂
从今天开始就有各站网络赛了 今天是ccpc全国赛的网络赛 希望一切顺利 可以去一次吉大 希望还能去一次大连 题意: 很明确是让你求Sn=[a+sqrt(b)^n]%m 思路: 一开始以为是水题 暴力了 ...
- hdu 4506(数学,循环节+快速幂)
小明系列故事——师兄帮帮忙 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Tot ...
- hdu 4432 数学杂题
http://acm.hdu.edu.cn/showproblem.php?pid=4432 6分钟写的代码,一上午去调试,, 哎,一则题目没看懂就去写了,二则,哎,,恶心了.在坚持几天然后ACM退役 ...
随机推荐
- 微信小程序九宫格布局
先上效果图 使用注意事项 1:注意在app.json中注册页面路径 2:如果要增加新的Item,可到js中对listService数组进行增加 3:listService参数[ title:分类标题 ...
- ES6学习笔记(4)----正则的扩展
参考书<ECMAScript 6入门>http://es6.ruanyifeng.com/ 正则的扩展 ES6新增的正则表达式修饰符 u修饰符a.能够更准确地匹配unicode大于\uFF ...
- 6 Specialzed layers 特殊层 第二部分 读书笔记
CAGradientLayer CAGradientLayer is used to generate a smooth gradient between two or more colors. ...
- 客户端配置snmpd
[root@ localhost]#yum install net-snmp (3)安装后打开默认的/etc/snmp/snmpd.conf文件,更改如下配置: 1) 查找以下代码: # sec.na ...
- Selenium私房菜系列--总章
前言 在这段期间,我一直在找关于服务器的端测试方案,自动化工具等等,无意间我发现了Selenium这个工具.在试用一段时间后,觉得Selenium确实是一个很不错的Web测试工具.在和强大的QTP比较 ...
- 51nod 1096 距离之和最小(水题日常)
基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 X轴上有N个点,求X轴上一点使它到这N个点的距离之和最小,输出这个最小的距离之和. Input 第1行:点的数量 ...
- docker使用阿里云镜像加速器(属于自己的专属加速器)
https://cr.console.aliyun.com/cn-shanghai/mirrors
- 富通天下(W 笔试)
纸质算法题目 1.给你一个字符串,找出其中第一个只出现过一次的字符及其位置 正解:一层for循环,循环按序取出字符串中的单个字符,循环体内部使用String类的indexOf(),从当前字符下标往后搜 ...
- css3新增属性:多列(column)
css3多列能够创建多个列来对文本进行布局,就想报纸那样. 关于多列的相关属性及属性值如下: column-count: number|auto;:指定元素应分为的列数.column-fill: 指定 ...
- Xcode导入第三方库图文
Three20这个与facebook亲戚的开源库是蜚声iPhone开发界,很多App都有它的影子,主要是其真得是功能强大.那么如何将Three20库添加到自己的项目中应用呢?一种是Python命令方式 ...