3WA,7TLE的0分答案:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[8],n=0,ii=7,change=1;
double zou=0,njc=1;
for(int i=1;i<=7;i++)
{
cin>>a[i];
n+=a[i];
}
while(a[1]>=1 and a[2]>=1 and a[3]>=1 and a[4]>=1 and a[5]>=1 and a[6]>=1 and a[7]>=1)
{
zou++;
a[change]--;
change++;
}
for(int i=n;i>n-ii;i--)
{
njc*=i;
}
cout<<zou/njc;
return 0;
}
用的是自己的换头法
(假设a是一个俄罗斯方块的图,例题就是一个长7高1的一个长方形,并且头为1。
头
〿〿〿〿〿〿〿
那么其实在例子里,不管头是哪一个,都无所谓,都可以凑一个长7高1的长方形。
然后,七重奏的个数++,并且消一个头,--
()〿〿〿〿〿〿
头变成了第二个
再次检查,消头,没有可消的了,over
(其实到这里,已经能发现问题了,头只能从1开始,消灭了诸如2345671的排列)
(╯°□°)╯︵ ┻━┻
以及后面除了一个N选7的排列,总觉得怪怪的,但是好像又没问题。
还有要不要把头全部算进去,或者只算一个?
题例求出来是0.0001多
其他的也没试,反正不可能对
求指导
QAQ