2019牛客国庆集训派对day1 F.4 Buttons(思维)
发布日期:2021-06-30 10:32:56 浏览次数:2 分类:技术文章

本文共 839 字,大约阅读时间需要 2 分钟。

首先只需要考虑能走到第一象限的哪些格子,第二,第三,第四都是类似的

第一象限的话就是使用向上的按钮,每次最多 a a a

向右每次最多 b b b

如果我们能到 ( x , y ) (x,y) (x,y)这个格子,那么 ( 0 , 0 ) (0,0) (0,0) ( x , y ) (x,y) (x,y)围成的矩形内部的格子都可以到达

所以我们选择每次都向上走 a a a步或者向右 b b b步观察一下

当按向上 1 1 1次时,向右按了 n − 1 n-1 n1次,到达 ( ( n − 1 ) ∗ b , a ) ((n-1)*b,a) ((n1)b,a)这个点

当按向上 2 2 2次时,向右按了 n − 2 n-2 n2次,到达 ( ( n − 2 ) ∗ b , 2 a ) ((n-2)*b,2a) ((n2)b,2a)这个点

画在图上,就是围成了一个个矩形,长都是 b b b,宽为 a , 2 a , 3 a a,2a,3a a,2a,3a递增的一个个矩形

等差数列算一下就好了

最后加上一种按钮自己组合的方案即可

#include 
using namespace std;#define int long longconst int mod = 1e9+7;int n,a,b,c,d;int solve(int a,int b){
return n*(n-1)/2%mod*a%mod*b%mod;}signed main(){
while( cin >> n >> a >> b >> c >> d ) {
int ans = 0; ans = solve(a,b)+solve(a,d)+solve(c,b)+solve(c,d); ans = ( ans%mod + n*(a+b+c+d)%mod )%mod; cout << ( ans+1 )%mod << endl; }}

转载地址:https://issue-is-vegetable.blog.csdn.net/article/details/116462208 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:2019牛客国庆集训派对day1 D.Modulo Nine(巧妙的dp)
下一篇:2019牛客国庆集训派对day1 H.有向图(高斯消元)

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月21日 08时44分51秒