uva 10277 Boastin' Red Socks
来源:互联网 发布:网络兼职在家工作 编辑:程序博客网 时间:2024/05/30 23:21
红袜子数a 总袜子数b
a*(a - 1)/b*(b-1) = p/q
因为要b最小,所以从2-50000枚举b 二分查找a
注意概率为0和1的情况。
#include <iostream>#include<stdio.h>using namespace std;unsigned long long p,q,d,tmp,tmp1;unsigned long long low,high,mid,i;unsigned long long gcd(unsigned long long p,unsigned long long q){ return q == 0?p:gcd(q,p%q);}int main(){ while(scanf("%llu %llu",&p,&q),p+q) { if(p==q) { printf("2 0\n"); continue; } if(p==0) {printf("0 2\n");continue;} d = gcd(p,q); p/=d; q/=d; int ok = 0; for(i = 2; i<=50000; i++) { low = 2; high = i; tmp = p*i*i-p*i; while(low <= high) { mid = (low+high)>>1; tmp1 = mid*mid*q-mid*q; if(tmp1<tmp) low = mid+1; else if(tmp1 > tmp) high = mid-1; else { printf("%llu %llu\n",mid,i-mid);ok = 1;break;} } if(ok) break; } if(!ok) printf("impossible\n"); } return 0;}
0 0
- uva 10277 Boastin' Red Socks
- UVA 10277 Boastin' Red Socks
- uva 10277 Boastin' Red Socks
- UVA 10277 Boastin' Red Socks
- Boastin' Red Socks - UVa 10277
- uva 10277 Boastin' Red Socks
- uva 10277 - Boastin' Red Socks(概率)
- UVa 10277 Boastin' Red Socks (枚举)
- UVa 10277 - Boastin' Red Socks (枚举)
- 10277 - Boastin' Red Socks
- 10277 Boastin' Red Socks(概率 暴力枚举)
- Boastin' Red Socks
- poj 2645-Boastin' Red Socks-算组合
- UVA10277 - Boastin' Red Socks(枚举+二分)
- uva10277 - Boastin' Red Socks(炫耀红白袜子)
- POJ 2645 Boastin' Red Socks(组合数学)
- socks
- SOCKs
- 华为机试题--排序问题
- 【1】在襄阳修自行车
- javaweb开发——验证码
- 定时任务
- 黑马程序员_7K面试题之交通灯管理系统
- uva 10277 Boastin' Red Socks
- OA解决方案与应用
- 如何转化成SaaS多租户模式
- PCM数据格式
- Android:shape
- Kinect图像成像原理
- Java web 开发笔记 第三章 JSP内置对象
- buffer cache 和shared pool详解(之五,问题诊断总结)
- LeetCode——Unique Binary Search Trees