//注意: 可能重投之后仍和原来一样 初始化:分母为1,概率为-1,个数为0
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
const int N=40;
int a[N],b[N]; //a为存储 b为翻转后的
int f[N],r[N]; //分母分子
int n;
int getl(int s[]) //返回当下组合的等级
{
sort(s+1,s+6);
if(s[1]==s[2]&&s[2]==s[3]&&s[3]==s[4]&&s[4]==s[5]) //五个同点数
return 9;
if(s[1]==s[2]&&s[2]==s[3]&&s[3]==s[4]||(s[2]==s[3]&&s[3]==s[4]&&s[4]==s[5]))//四个同点数
return 8;
if(s[1]==s[2]&&s[2]!=s[3]&&s[3]==s[4]&&s[4]==s[5]||(s[1]==s[2]&&s[2]==s[3]&&s[3]!=s[4]&&s[4]==s[5]))//葫芦
return 7;
if(s[1]==2&&s[2]==3&&s[3]==4&&s[4]==5&&s[5]==6)//六高
return 6;
if(s[1]==1&&s[2]==2&&s[3]==3&&s[4]==4&&s[5]==5)//五高
return 5;
if(s[1]==s[2]&&s[2]==s[3]||s[2]==s[3]&&s[3]==s[4]||s[3]==s[4]&&s[4]==s[5])//三个同点数
return 4;
if(s[1]==s[2]&&s[3]==s[4]||s[1]==s[2]&&s[4]==s[5]||s[2]==s[3]&&s[4]==s[5])//两对
return 3;
if(s[1]==s[2]||s[2]==s[3]||s[3]==s[4]||s[4]==s[5])//一对
return 2;
return 1;
}
int gett(int x) //看看里面有几个1,就是有几个重投了
{
int sum=0;
while(x)
{
if(x%2==1)
sum++;
x/=2;
}
return sum;
}
int gcd(int x,int y) //化简分子分母
{
return y?gcd(y,x%y):x;
}
int main(void)
{
cin>>n;
while(n--)
{
memset(f,0,sizeof(f));
memset(r,0,sizeof(r));
for(int i=1;i<=5;i++)
cin>>a[i];
int l1=getl(a);
for(int i=1;i<=6;i++)
for(int j=1;j<=6;j++)
for(int k=1;k<=6;k++)
for(int u=1;u<=6;u++)
for(int o=1;o<=6;o++)
{
b[1]=i,b[2]=j,b[3]=k,b[4]=u,b[5]=o; //遍历
int ct=0;
for(int i=1;i<=5;i++)
if(a[i]!=b[i]) //将不一样的数标1,至少这些1是重投的
ct|=1<<(i-1);
int l2=getl(b);
for(int i=1;i<=31;i++)
{
if((i&ct)==ct) //ct里有的1,i里面都有,i里面多的1可能是也重投了,重投结果和原本的一样
{
f[i]++;
if(l2>l1)
r[i]++;
}
}
}
int res=0,zi=0,mu=1;
double bi=-1;
for(int i=1;i<=31;i++)
{
if(r[i]==0)continue;
int ge=gett(i);
double gl=(double)r[i]/f[i];
if(gl>bi||(gl==bi&&ge<res))
{
zi=r[i],mu=f[i];
res=ge;
bi=gl;
}
}
if(zi>0&&mu>0){
int chu=gcd(zi,mu);
zi/=chu;
mu/=chu;}
cout<<res<<' '<<zi<<' '<<mu<<endl;
}
return 0;
}0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复