中南大学2016年校队选拔赛第一场Problem A
来源:互联网 发布:滚现在是网络 编辑:程序博客网 时间:2024/04/29 11:16
Problem A: 小Z的黑白棋
Time Limit: 1 Sec Memory Limit:128 MBSubmit: 18 Solved: 6
[Submit][Status][Ask]
Description
小Z有一些黑白棋,他觉得黑白混杂在一起极具美感,所以他总喜欢将这些棋子排成一排序列S1,但是小Y就喜欢跟小Z作对,她会趁小Z不注意偷偷将小Z最右边的棋子拿走,往他棋子序列的最左边添加一个白色的棋子形成一个新的序列S2来破坏小Z的美感。
S2(1~n) = 白棋+S1(i=1~n-1)
小Z总相信第一感,他认为他自己最初排好的序列S1是最完美的,新的序列S2会造成一定的破坏美感指数 = damage(S1) = S1与S2有多少个位置黑色与白色互不对应
Exp:
令白棋为a,黑棋为b :S1 = ababa S2=aabab damage(S1)=4
因为小Z有很多种摆放序列的方式,现在他希望让你帮他求所有摆放序列的方式会造成的damage(S1)的平均值
Input
多组数据输入输出
每组数据输入一个整数n和m表示白棋和黑棋的数量 0<=n , m<=1000,000,000 ,保证n+m>=1
Output
每组输出一个平均值答案,用最简分数表示,如果可以化简到整数,就用整数表示
Sample Input
1 1
Sample Output
3/2
•形成了01的字符串,每次将可组合成的某个字符串右移一位后,将最左端置
位1,然后和原串每一位比较,得到不一样的位的个数,求的是所有的组合
方式的平均值
•数学公式推一推就出来的说~~~
•
•理解为每一位不同的是多少次
•1有n个,0有m个,那么最高位的时候只有为0的才会不一样: C(n,n+m-1)
•其他位置只要跟前面一个位置不一样就可以了,那么就是说当前和前面一个
位置一个0一个1 ,共C(n-1, n+m-2),因为1,0可以交换所以要乘2
•之后所有位置都是满足的:
•
•平均值就是(2*(n+m-1)*C(n-1,n+m-2)+C(m,n+m-1)) / C(n,n+m)
•
•----->(2*n*C(n,n+m-1)+C(n,n+m-1)) / C(n,n+m)
•
•----->(2*n+1)*C(n,n+m-1)/(C(n,n+m-1)+C(n-1,n+m-1))
•
•----->(2*n+1)*C(n,n+m-1)/((1+n/m)*C(n,n+m-1))
•
•----->(2*n+1)/((1+n)/m)
•
----->(2*m*n+m)/(n+m)#include<bits/stdc++.h>using namespace std;typedef unsigned long long ULL;ULL gcd(ULL a,ULL b){ if(b==0) return a; return gcd(b,a%b);}int main(){ ULL n,m; while(cin>>n>>m) { ULL t1=m; ULL t2=m+n; ULL t3=gcd(t1,t2); t1=t1/t3; t2=t2/t3; ULL t4=2*n+1; ULL t6=gcd(t4,t2); t4=t4/t6; t2=t2/t6; t1=t1*t4; t2=t2; t3=gcd(t1,t2); //cout<<t1<<' '<<t2<<' '<<t3<<endl; if(t3==t2) cout<<t1/t2<<endl; else cout<<t1/t3<<"/"<<t2/t3<<endl; } return 0;}
0 0
- 中南大学2016年校队选拔赛第一场Problem A
- 中南大学2016年校队选拔赛第一场Problem E
- 中南大学2016年校队选拔赛第一场Problem D
- 中南大学2016年校队选拔赛第二场Problem A
- 中南大学2016年校队选拔赛第二场Problem F
- 2017年5月月赛-暨中南大学暑期集训选拔赛第一场-部分题目
- 2144: 2017年6月月赛-暨中南大学暑期集训选拔赛第二场
- 20130820 【南华大学 ACM】 个人选拔赛第二场 【A . BAKA】
- XTU (湘潭大学) 2011 新生练习赛(第一场)/ Problem A连续自然数和
- 湖南中医药大学2017年集训队第四场选拔赛-Problem D: Jug Hard
- 湖南中医药大学2017年集训队第四场选拔赛-Problem F: Virtual Friends
- 湖南中医药大学2017年集训队第四场选拔赛-Problem B: Power Eggs
- 2014 BUAA 选拔赛第一场
- 中南大学 ACM 1001 A+B(II)
- 20130707 【南华大学 ACM】 新生赛第一场 【A.Eming】
- 南华大学ACM第一场个人联系赛 A Eming
- 湖南工业大学个人选拔赛第一场 题解
- 2016中国大学生程序设计竞赛--网络选拔赛 1001 A Water Problem
- MD4 算法代码实现
- LintCode 452 删除链表中的元素
- 漏洞扫描工具Nmap的使用
- Unity 安卓真机DEBUG
- 19. Remove Nth Node From End of List
- 中南大学2016年校队选拔赛第一场Problem A
- [KBE] 分布式框架
- 矩阵、向量求导法则
- 4.6 ipu_enable_channel函数详细分析
- quick-cocos2dx Windows环境下编译Android版本apk
- 单链表的中间结点
- hdu 4285 circuits 插头dp
- UVA 216-Getting in Line
- Session