• 答题卡


    链接:https://ac.nowcoder.com/acm/contest/5389/C
    来源:牛客网

    题目描述

    牛牛即将要参加考试,他学会了填答题卡。

    可惜他竖着的答题卡填成了横着的 : (

    好奇的他想知道对于 n 道题,每道题 n 个选项的答题卡 ( n * n 的矩阵 ),满足横答题卡和竖答题卡图形一致的方案数有多少种。

    注:每道题只能选择一个选项,即 n * n 的矩阵中只能涂黑 n 个空。求横竖对称的方案数。

    题解如下:

    显然n维矩阵是关于主对角线对称的,那么我们先固定左上角,矩阵剩下了(n-1)维矩阵,满足(n-1)维矩阵对称即可,然后选取第二行第一列、第三行第一列....、第n行第一列,根据对称原则,我们也要选取相应的第一行第二列、第一行第二列、....、第一行第n列,剩下(n-2)维矩阵,也使它对称,一共有(n-1)种情况。

    故规律是dp[n] = dp[n-1]+(n-1)*dp[n-2]

    code:

    #include <bits/stdc++.h>
      
    using namespace std;
    typedef long long ll;
    const int NMAX = 1e5 + 10;
    const int MOD = 1e9+7;
    ll a[NMAX];
    int main()
    {
        int n;
        scanf("%d",&n);
        a[1] = 1;a[2] = 2;a[3] = 4;
        for(register int i = 4;i <= n;i++)
            a[i] = (a[i-1]+(i-1)*a[i-2]%MOD)%MOD;
        printf("%lld
    ",a[n]);
        return 0;
    }
    View Code
  • 相关阅读:
    redis存储session配制方法
    thanks使用注意事项;
    mongodb sort limit和skip用法
    mongoose的用法(注:连接数据库)
    mongoose查询特定时间段文档的方法
    webworker的使用案例
    js 传参数
    redis.config翻译
    Oracle keep详解
    自学之笔记总结
  • 原文地址:https://www.cnblogs.com/lemon-jade/p/12817046.html
Copyright © 2020-2023  润新知