想了一个穷举法:用随机数模拟穷举过程
定义一个sum变量,为两队分差,初始为0。定义int t:t=-1代表乙得分,t=1代表甲得分;定义数组int Temp[20](因为20>S+T,其实数组真正用到的只有前S+T个位置)。定义链表List(为了动态管理内存),数据域为大小为20的数组。
Tenp[0]=1。用 while(t!=0) t=rand()%3-1 随机产生t=-1或1;sum+=t,如果sum自增后>0,把t写入数组,如果sum自增后==0,则数组写入1 并赋sum+=2(即此时甲必须得分保证一直领先);如此循环S+T次,检查Temp中-1的个数,若不为S个,重新生成Temp,Temp生成完毕,为得分的一种情况。检查Temp和链表中已有数组是否一致,如一致,重新生成Temp,否则Temp加入链表。
如此循环很多次,统计List中节点个数即总可能数,每个节点数据域的情况即两队得分情况
这种方法相当不准确,只是因为题给的数比较小,在循环次数足够大的情况下能得到答案,抛砖引玉,期待大神的通法。
[此贴子已经被作者于2018-12-27 03:24编辑过]