877C

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了877C相关的知识,希望对你有一定的参考价值。

构造

想了好长时间。。。

答案是n+n/2

我们这么想,先把偶数位置炸一遍,所有坦克都在奇数位置,然后再把奇数炸一遍,坦克都到偶数去了,然后再炸一次偶数就都炸掉了。。。

好巧妙啊 奇偶讨论很重要

技术分享
#include<cstdio>
#include<cmath>
using namespace std;
const int N = 1005;
int n, m;
double dp[N][N], a[N][N][3];
double dfs(int x, int y)
{
    if(x == n && y == m) return 0.0;
    if(x > n || y > m) return 0.0;
    if(fabs(1.0 - a[x][y][0]) < 1e-8) return 0.0;
    if(dp[x][y] >= 0.0) return dp[x][y];
    dp[x][y] = dfs(x, y + 1) * a[x][y][1] + dfs(x + 1, y) * a[x][y][2] + 2.0;
    dp[x][y] /= 1.0 - a[x][y][0];
    return dp[x][y]; 
}
int main()
{
    while(scanf("%d%d", &n, &m) != EOF)
    {        
        for(int i = 1; i <= n; ++i)
            for(int j = 1; j <= m; ++j)    
            {
                dp[i][j] = -1.0;
                for(int k = 0; k < 3; ++k) scanf("%lf", &a[i][j][k]);
            }
        printf("%.3f\n", dfs(1, 1));        
    }    
    return 0;
}
View Code

 

以上是关于877C的主要内容,如果未能解决你的问题,请参考以下文章

877C

Codeforces 877C Slava and tanks(思维)

微信小程序代码片段

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?