美文网首页
2110_积木画

2110_积木画

作者: lzyprime | 来源:发表于2022-11-07 13:28 被阅读0次

题目描述

2110_积木画.1.png

2110_积木画.2.png

code

递推。

dp[i] 存画布尺寸为 2 * i时, 一共有几种方式。

1. 先考虑只有 I型积木。 有两种情况:

  • i - 1 已经放好,再放一个竖向I型积木
  • i - 2 已经放好,再放两个横向I型积木。(不存在放两个竖向I型积木的情况,因为已经包含在第一种情况里)

所以 dp[i] = dp[i - 1] + d[i - 2]

2. 增加L型积木

L型积木 必须成对出现,至少需要2 * 3的空间,如样例说明 图3 图5,所以,在i - 3已经放好的基础上,有dp[i - 3] * 2种方式摆满画布

如果空间为 2*4, 2*5, 2*6 ..., 也可以摆满:

2x4画布 2x5画布

如图所示只要两头为 L型积木, 中间填充横向I型积木,都可以填满画布。 所以只要画布尺寸不小于2*3: dp[i] += dp[i - 1] + d[i - 2] + 2 *(dp[i - 3] + d[i - 4] + ... + dp[1])

ps:

  • 此时 dp[0] 是空闲的,所以可以用来记dp[1] ~ dp[i - 3]之和。
  • 膜运算:
    • (a + b) % mod = (a % mod + b % mod) % mod
    • (a * b) % mod = (a % mod * b % mod) % mod
    • a ^ b % mod = ((a % mod)^b) % mod

c++

#include <bits/stdc++.h>
using namespace std;

const long long MOD = 1e9 + 7;

int main() {
    int n;
    cin >> n;
    vector<int> dp{1, 1, 2};
    for (int i = 3; i <= n; i++) {
        dp.emplace_back(((dp[i - 1] + dp [i - 2]) % MOD + dp[0] * 2 % MOD) % MOD);
        dp[0] += dp[i - 2];
        dp[0] %= MOD;
    }
    cout << dp[n] << endl;
    return 0;
}

c

#include <stdio.h>

const long long MOD = 1e9 + 7;

int main() {
    int n;
    scanf("%d", &n);
    int dp[10000002] = {1, 1, 2};
    for (int i = 3; i <= n; i++) {
        dp[i] = ((dp[i - 1] + dp [i - 2]) % MOD + dp[0] * 2 % MOD) % MOD;
        dp[0] += dp[i - 2];
        dp[0] %= MOD;
    }
    printf("%d\n", dp[n]);
    return 0;
}

相关文章

  • 2110_积木画

    题目描述 [https://www.lanqiao.cn/problems/2110/learning/] [ht...

  • 今天他把我当成玩伴了

    今天孩子画完了一本曼陀罗彩绘。他要玩积木,我回应了。然后,写绘本后面的后记。孩子拿着积木在等我,见我还坐在椅子上,...

  • 2019|11周|周末时光

    时间:2019年11周末(2019.3.17) 事件:禅绕画、美食、积木、维修 【01.每天一幅禅绕画】 从201...

  • 自说自画

    王小仙自说自画@2020.4.7在一个小朋友的家里,堆着好多积木,旁边还有四个云朵娃娃️。小朋友用一些积木搭了一个...

  • 教育孩子,你要做到这几点

    1 昨天晚上,我在床上给七个月的儿子念小画书,他小胖手里拿着一块积木,听得津津有味。 突然,我看到他的积木掉了。 ...

  • 快乐搭、搭、搭——海南幼儿园中1班建构活动

    积木宽,积木长,我用积木盖楼房,老师阿姨看见了,都说房子真漂亮。积木方,积木圆,我用积木造花园,桃树李树都...

  • 【原创】小儿

    素画一尺有世界,彩泥三两满乾坤。 积木泥偶今日画,科技精尖未来人。

  • 2016年Java方向C组第七题

    搭积木 小明最近喜欢搭数字积木,一共有10块积木,每个积木上有一个数字,0~9。 搭积木规则:每个积木放到其它两个...

  • 蓝桥杯:搭积木

    小明最近喜欢搭数字积木,一共有10块积木,每个积木上有一个数字,0~9。搭积木规则:每个积木放到其它两个积木的上面...

  • 自责

    晚上,墨墨在积木桌上玩积木,小汽车掉到了积木桌下。 积木桌在客厅中间放置,他在积木桌西边,我在积木桌东边。小汽车掉...

网友评论

      本文标题:2110_积木画

      本文链接:https://www.haomeiwen.com/subject/qkibtdtx.html