UVa10288 Coupons 分数模版
题目非常简单, 答案就是 n/n+n/(n-1)+...+n/1;
要求分数输出。套用分数模板。。
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
const int maxn = 500; struct fraction {
long long numerator; // 分子
long long denominator; // 分母
fraction() {
numerator = 0;
denominator = 1;
}
fraction(long long num) {
numerator = num;
denominator = 1;
}
fraction(long long a, long long b) {
numerator = a;
denominator = b;
this->reduction();
} void operator = (const long long num) {
numerator = num;
denominator = 1;
this->reduction();
} void operator = (const fraction &b) {
numerator = b.numerator;
denominator = b.denominator;
this->reduction();
} fraction operator + (const fraction &b) const {
long long gcdnum = __gcd(denominator, b.denominator);
fraction tmp = fraction(numerator*(b.denominator/gcdnum) + b.numerator*(denominator/gcdnum), denominator/gcdnum*b.denominator);
tmp.reduction();
return tmp;
} fraction operator + (const int &b) const {
return ((*this) + fraction(b));
} fraction operator - (const fraction &b) const {
return ((*this) + fraction(-b.numerator, b.denominator));
} fraction operator - (const int &b) const {
return ((*this) - fraction(b));
} fraction operator * (const fraction &b) const {
fraction tmp = fraction(numerator*b.numerator, denominator * b.denominator);
tmp.reduction();
return tmp;
} fraction operator * (const int &b) const {
return ((*this) * fraction(b));
} fraction operator / (const fraction &b) const {
return ((*this) * fraction(b.denominator, b.numerator));
} void reduction() {
if (numerator == 0) {
denominator = 1;
return;
}
long long gcdnum = __gcd(numerator, denominator);
numerator /= gcdnum;
denominator /= gcdnum;
}
void print() {
if (denominator == 1) printf("%lld\n", numerator);
else {
long long num = numerator/denominator;
long long tmp = num;
int len = 0;
while (tmp) {
len++;
tmp/=10;
} for (int i = 0; i < len; i++) printf(" ");
if (len != 0) printf(" ");
printf("%lld\n",numerator%denominator); if (num != 0) printf("%lld ", num);
tmp = denominator;
while (tmp) {
printf("-");
tmp/=10;
}
puts(""); for (int i = 0; i < len; i++) printf(" ");
if (len != 0) printf(" ");
printf("%lld\n",denominator);
}
}
} f[maxn]; int main() {
int n;
while (scanf("%d", &n) != EOF) { f[0] = 0;
for (int i = 1; i <= n; i++)
f[i] = f[i-1] + fraction(1, i);
f[n] = f[n] * n; f[n].print();
}
return 0;
}
UVa10288 Coupons 分数模版的更多相关文章
- uva10288 Coupons 【概率 分数】
题目: 题意: 一共n种不同的礼券,每次得到每种礼券的概率相同.求期望多少次可以得到所有n种礼券.结果以带分数形式输出.1<= n <=33. 思路: 假设当前已经得到k种,获得新的一种的 ...
- [POJ2625][UVA10288]Coupons
Description Coupons in cereal boxes are numbered 1 to n, and a set of one of each is required for a ...
- 「SHOI2002」「LuoguP1291」百事世界杯之旅(UVA10288 Coupons)(期望,输出
题目描述 “……在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听,更克赴日韩观看世界杯.还不赶 ...
- uva 10288 Coupons (分数模板)
https://vjudge.net/problem/UVA-10288 大街上到处在卖彩票,一元钱一张.购买撕开它上面的锡箔,你会看到一个漂亮的图案. 图案有n种,如果你收集到所有n(n≤33)种彩 ...
- 【poj 2976】Dropping tests(算法效率--01分数规划 模版题+二分){附【转】01分数规划问题}
P.S.又是一个抽时间学了2个小时的新东西......讲解在上半部分,题解在下半部分. 先说一下转的原文:http://www.cnblogs.com/perseawe/archive/2012/05 ...
- [NOIP2017赛前复习第二期]复赛考试技巧与模版-普及组
考试技巧 1.拿到考卷首先通看题目,按自己感觉的难度排序(普及一般是1-2-3-4了~还是相信出题人不会坑我们的2333) 2.一般来说,普及组前两道题比较简单(大水题啊233~),但是通常坑很多,例 ...
- UVA 10288 Coupons---概率 && 分数类模板
题目链接: https://cn.vjudge.net/problem/UVA-10288 题目大意: 一种刮刮卡一共有n种图案,每张可刮出一个图案,收集n种就有奖,问平均情况下买多少张才能中奖?用最 ...
- PHP.22-Smart模版
Smart模版 smarty是一个基于PHP开发的PHP模板引擎.它提供了逻辑与外在内容的分离,简单的讲,目的就是要使PHP程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美 ...
- UVA 10288 - Coupons(概率递推)
UVA 10288 - Coupons option=com_onlinejudge&Itemid=8&page=show_problem&category=482&p ...
随机推荐
- centos6 用户登陆管理
查看当前登陆有哪些用户,在做什么 [root@web01 ~]# w :: up :, users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGI ...
- 关于c# .net爬虫
刚开始听到爬虫这两个字眼的时候感觉挺稀奇的,之前并没有接触过爬虫,正好这会手上没事,于是便百度了一下. 1.网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种 ...
- 九度oj 题目1056:最大公约数
题目1056:最大公约数 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:8068 解决:5317 题目描述: 输入两个正整数,求其最大公约数. 输入: 测试数据有多组,每组输入两个正整数. ...
- 使用mysql-proxy 快速实现mysql 集群 读写分离
目前较为常见的mysql读写分离分为两种: 1. 基于程序代码内部实现:在代码中对select操作分发到从库:其它操作由主库执行:这类方法也是目前生产环境应用最广泛,知名的如DISCUZ X2.优点是 ...
- 洛谷 P2285 BZOJ 1207 [HNOI2004]打鼹鼠
题目描述 鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的.根据这个特点阿牛编写了一个打鼹鼠的游戏:在一个n*n的网格中,在某些时刻鼹鼠会在某一个网格探出头来透透气. ...
- uva10537 最短路 倒推
题意:知道了,最后需要的,那么就倒着最短路,推出去就可以了. 以最短路的方式来解决.
- VS调试STL问题总结
---恢复内容开始--- 以前写代码总觉用自己写的东西比较牛逼,vector?stack?为什么不自己实现.后来才认识到这是个幼稚的想法!首先每次都自己实现是一种重复劳动:其次,自己写的话很难保证没有 ...
- vagrant的学习 之 LNMP和LAMP
vagrant的学习 之 LNMP和LAMP 本文根据慕课网的视频教程练习,感谢慕课网! 慕课的参考文档地址:https://github.com/apanly/mooc/tree/master/va ...
- [bzoj1059][ZJOI2007]矩阵游戏_二分图最大匹配
矩阵游戏 bzoj-1059 ZJOI-2007 题目大意:给定一个n*n的棋盘,上面有一些格子被染黑,剩下都是白色.你每次可以交换两列或者两行,问你能否通过一系列操作使得棋盘的主对角线上的格子全是黑 ...
- 打开Eclipse出现“An internal error has occurred. java.lang.NullPointerException
今天打开eclipse出现了这个问题:下面是老外给出的办法,粘给大家: Instead of deleting the whole .metadata folder, just delete the ...