两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
2020-2021:teams:manespace:codeforces_round_645_div2 [2020/05/29 22:50] iuiou |
2020-2021:teams:manespace:codeforces_round_645_div2 [2020/06/02 23:52] (当前版本) iuiou [C] |
||
---|---|---|---|
行 40: | 行 40: | ||
===== C ===== | ===== C ===== | ||
- | 题意:有一个三角型排列为左图所示,定义一次移动只能从$(i,j)$到$(i+1,j)$或者从$(i,j)$到$(i,j+1)$,问若将该三角形阵列的$(i_1,j_1)$,点走到$(i_2,j_2)中途经过的所有点的值全部加在一起,有多少种不同的答案?{{:2020-2021:teams:manespace:1j_p2nm_r_f_94uoq_1b_b.png?200 |}} | + | 题意:有一个三角型排列为左图所示,定义一次移动只能从$(i,j)$到$(i+1,j)$或者从$(i,j)$到$(i,j+1)$,问若将该三角形阵列的$(i_1,j_1)$,点走到$(i_2,j_2)$中途经过的所有点的值全部加在一起,有多少种不同的答案?{{:2020-2021:teams:manespace:1j_p2nm_r_f_94uoq_1b_b.png?200 |}} |
题解:<del>这题真是坑死我了……</del>,可以找规律然后暴力计算个数,因为枚举之后不难发现两点之间路径和最长一定是先向下走,再向上走,最小一定是先向右走再向下走,然后根据等差数列的关系暴力求式子计算。后来发现答案是很简单的$(i_2-i_1)*(j_2-j_1)+1$,<del>直接自闭</del>,后来想想发现还挺自然(<del>知道答案当然自然了</del>),每个数的下边一定比左边大1,加的效果是叠加的,假如这一次比上一次早一步走了下面,那么一定会给整体加上$(j_2-j_1)$,那么一共可以早$(i_2-i_1)$次。可以得到,最小的和最大的差,然后+1即可。代码略。 | 题解:<del>这题真是坑死我了……</del>,可以找规律然后暴力计算个数,因为枚举之后不难发现两点之间路径和最长一定是先向下走,再向上走,最小一定是先向右走再向下走,然后根据等差数列的关系暴力求式子计算。后来发现答案是很简单的$(i_2-i_1)*(j_2-j_1)+1$,<del>直接自闭</del>,后来想想发现还挺自然(<del>知道答案当然自然了</del>),每个数的下边一定比左边大1,加的效果是叠加的,假如这一次比上一次早一步走了下面,那么一定会给整体加上$(j_2-j_1)$,那么一共可以早$(i_2-i_1)$次。可以得到,最小的和最大的差,然后+1即可。代码略。 | ||
行 47: | 行 47: | ||
题意:重新定义月份的数量和每月的天数,规定每月的第$i$天有一个权值为$i$,给定月数与每个月的天数,问连续的k天的最大权值和为多少。 | 题意:重新定义月份的数量和每月的天数,规定每月的第$i$天有一个权值为$i$,给定月数与每个月的天数,问连续的k天的最大权值和为多少。 | ||
- | 题解:容易证明若要最大,连续k天末尾必须要是一个月的月末否则当我们向后移动,一定能找到更加优秀的解。那么我么你枚举月份即可。注意先预处理,要不然会tle…… | + | 题解:容易证明若要最大,连续k天末尾必须要是一个月的月末,否则当我们向后移动,一定能找到更加优秀的解。那么我门枚举月份即可。注意先预处理,要不然会tle…… |
<hidden> | <hidden> |