【坑点记录】关于进行运算时的数据类型转换

跳坑位置:P1005 [NOIP2007 提高组] 矩阵取数游戏

此题数据范围:

对于 60% 的数据,满足 1≤n,m≤30,答案不超过 1e16。 对于 100% 的数据,满足 1≤n,m≤80,0≤a[i][j]≤10000。

区间dp很好想,但是根据数据范围,显然要用高精度 int128。 不过,写的时候要注意**「运算时的数据类型强制转换」**

比如,如果写了表达式dp[l - 1][r] + a[i][l - 1] * p[m - r + l - 1](其中dpp__int128,而aint),那么计算时就会先将p[m - r + l - 1]转换为int再与a[i][l - 1]相乘

所以,正确的写法是:dp[l - 1][r] + p[m - r + l - 1] * a[i][l - 1](把目标类型写在运算符号前)

Built with Hugo
主题 StackJimmy 设计