题意:告诉你C(m,3)个队伍相互之间的胜率,然后要你依次对战n个AI队伍,首先任选一种队伍,然后战胜一个AI后可以选择替换成AI的队伍,也可以不换,问你最后最大的胜率是多少。
分析:dp[i][j][0/1] 表示第i个AI,用j的id去攻打,此j可以是上一个状态交换AI的id而来也可以不是,状态转移方程:
dp[i][j][0] = max (dp[i-1][j][0], dp[i-1][j][1]) * p[j][a[i]];
if (i > 1) dp[i][a[i-1]][1] = max (dp[i][a[i-1]][1], max (dp[i-1][j][0], dp[i-1][j][1]) * p[a[i-1]][a[i]]); 效率并不是很高。。。
/************************************************* Author :Running_Time* Created Time :2015/10/24 星期六 13:32:44* File Name :J.cpp ************************************************/#include #include #include #include #include #include #include #include #include #include #include #include #include