一共就2种状态的转移
当我们将状态从x转移到Y的时候 可以选择 换队员 或者不换队员 但是有一点要注意 如果要换队员只能是最新的 也就是刚结束的比赛
而且 不管换不换 比赛场次总是增加了一场 我们总是从(x-1)---->x 这也是符合逻辑的 一定要先进行第(x-1)场的比赛 才能进行第x场的比赛
dp[x,y]表示当前进行到第x场比赛的时候 我是以y为编号在进行<注意 因为这边要求比赛一定要按照顺序打完 所以也就是说打完第n场 就是所有的比赛都打完了>
dp[x][y] = max( dp[x][y] , dp[x-1][y]*p[y][ team[x] ); //不更换
dp[x][y] = max( dp[x][ team[x] ] , dp[x-1][y]*p[y][ team[x] ] );//更换
1 #include2 #include 3 using namespace std; 4 5 int n , m; 6 const int size = 300; 7 double dp[10010][size]; 8 double p[size][size]; 9 int team[10010];10 11 void solve( )12 {13 for( int i = 0 ; i<=m ; i++ )14 dp[0][i] = 1.0;15 for( int i = 1 ; i<=n ; i++ )16 {17 for( int j = 0 ; j
today:
糟糕透了
ffffffffk