hdu4790 Just Random (当心啊!!!)

原创 2015年11月17日 20:24:36

http://acm.hdu.edu.cn/showproblem.php?pid=4790

这道题目教育我不要错在自以为理所应当的地方。。。

#include<iostream>
#include<algorithm>
#include<string>
#include<map>//ll dx[4]={0,0,-1,1};ll dy[4]={-1,1,0,0};
#include<set>//
#include<vector>
#include<cmath>
#include<stack>
#include<string.h>
#include<stdlib.h>
#include<cstdio>
#define mod 1e9+7
#define ll __int64
using namespace std;
ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}  
int main(){
//	freopen("1.txt","r",stdin);
//	freopen("2.txt","w",stdout);
	int t,cnt=0;
	scanf("%d",&t);  
	while(t--){
		ll a,b,c,d,p,m;
		scanf("%I64d%I64d%I64d%I64d%I64d%I64d",&a,&b,&c,&d,&p,&m);  
		ll aa=a%p;
		ll bb=b%p;
		ll cc=c%p;
		ll dd=d%p;
	//	cout<<aa<<" "<<bb<<" "<<cc<<" "<<dd<<endl;
		ll f1=(b-a)/p,f2=(d-c)/p;
		ll ss=f1*f2*p;
		if(b/p>a/p&&bb<aa)
			bb+=p;
		if(d/p>c/p&&dd<cc)
			dd+=p;
		ll g=m-aa,h=m-bb;
//		cout<<h+2*p<<" "<<g+2*p<<endl;
		ll s1=0;
		s1+=max(0ll,min(g,dd)-max(h,cc)+1);
//		cout<<max(0ll,min(g,dd)-max(h,cc)+1)<<endl; 
		s1+=max(0ll,min(g+p,dd)-max(h+p,cc)+1);
//		cout<<max(0ll,min(g+p,dd)-max(h+p,cc)+1)<<endl;
		s1+=max(0ll,min(g+2*p,dd)-max(h+2*p,cc)+1);
		s1+=max(0ll,min(g+3*p,dd)-max(h+3*p,cc)+1);   //这个也要加啊!不加白不加啊!!
//		cout<<max(0ll,min(g+2*p,dd)-max(h+2*p,cc)+1)<<endl;
		ss+=s1+f1*max(0ll,dd-cc+1)+f2*max(0ll,bb-aa+1);
		printf("Case #%d: ",++cnt);
	//	cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<p<<" "<<m<<" ";
		if(ss==0)
			printf("0/1\n");  
		else{
			cout<<ss/gcd(ss,(b-a+1)*(d-c+1))<<"/"<<(b-a+1)*(d-c+1)/gcd(ss,(b-a+1)*(d-c+1))<<endl;
		}	
	}
	return 0;
}


just proxy 代理工具 上谷歌google 2016年最新

just proxy 代理工具 上谷歌google 2016年最新 高速上YouTube Facebook
  • u010430099
  • u010430099
  • 2016年04月01日 18:25
  • 2741

RxAndroid之初体验——Create、From、interval、just、range操作符的基本使用

RxAndroid之初体验——Create、From、interval、just、range操作符的基本使用 版权声明:转载必须注明本文转自程序员杜鹏程的博客:http://blog.csdn.n...
  • m366917
  • m366917
  • 2016年10月12日 22:34
  • 3017

莫孤注一掷(Don't Just Roll the Dice 译文二)

第二章 定价心理学:你的产品值多少钱? 上一章讲到的需求曲线可能是动态且依赖于很多因素,但是你仍然可以对它的形状发挥一些影响。在这一章,我们会讲到人们是怎么决定以什么价格购买一个产品的,然后会告诉你...
  • mmoaay
  • mmoaay
  • 2015年03月03日 18:26
  • 1360

HDU 4790 Just Random 【构造】

数学构造 容斥原理
  • u010468553
  • u010468553
  • 2014年08月04日 16:58
  • 666

HDU 4790 Just Random

2013成都区域赛的题目 题意: 区间[a,b] [c,d]里各选一个数,加起来mod p=m 思路: 观察一下构成某个数x的情况: x 0 . . 3 x-3 2 x-2 1 x-1 0 x...
  • gzh1992n
  • gzh1992n
  • 2014年01月20日 13:02
  • 653

hdu 4790 Just Random

题意:给出两个区间[a,b]和[c,d],分别从这两个区间等概率的抽两个整数x,y,求(x+y)%p=m的概率。 思路:总的组合数很容易算出来,也就是两个区间的整数的个数的乘积。接下来是求两个数的和,...
  • qian99
  • qian99
  • 2013年11月17日 13:53
  • 931

HDU 4790 Just Random 数学

链接:http://acm.hdu.edu.cn/showproblem.php?pid=4790 题意:从【a,b】中随机找出一个数字x,从【c,d】中随机找出一个数字y,给出p,m,如果(x+y...
  • u011385365
  • u011385365
  • 2014年08月05日 09:59
  • 919

HDU4790 Just Random 容斥原理,数学思路题

题意:在两个区间中各找一个数字,两个数字的和取余p=m;这样符合条件的概率是多少。 思路:分母很好算,区间长度乘积。分子分为3部分,先把区间分为两部分,一部分是长度p倍数的区间,剩下一部分是余下的不够...
  • xiangAccepted
  • xiangAccepted
  • 2017年05月02日 17:31
  • 136

HDU 4790 Just Random (2013ACM/ICPC成都赛区现场赛J题)

 题意:给出两个区间[a,b]和[c,d],分别从这两个区间等概率的抽两个整数x,y,求(x+y)%p=m的概率。...
  • u010642004
  • u010642004
  • 2014年10月06日 14:20
  • 441

HDU 4790 2013 ACM/ICPC 成都赛区现场赛 J. Just Random

hdu上模拟现场赛,做这题的时候很快出了想法,但是就是写错,一直wa, 不过再调试过程中应该算把这题理解地非常透彻了,感觉如果标解是和我思路一样的话,这题的难点就是细节处理,详细的分类讨论。其实后来想...
  • u010042590
  • u010042590
  • 2013年11月16日 20:58
  • 2269
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hdu4790 Just Random (当心啊!!!)
举报原因:
原因补充:

(最多只允许输入30个字)