Rikka with Nash Equilibrium

ps:dp[ i ][ j ][ k ]:i 个数用掉了 j 行 k 列。有三种状态:第 i + 1 个数要在原来的基础上用掉新的 1 行,或者用掉新的 1 列, 或者填在原来行列的交点上(既不用掉新的一行也不用掉新的一列),还是太单纯了,竟然在找规律。。。。

/****** 标程 *******/const int N = 85;

int n, m, mod;
int dp[2][N][N];

void update(int &k1, LL k2) {
    k1 = (k1 + k2) % mod;
}

void Solve() {
    mem(dp, 0x00);
    dp[0][1][1] = n * m;

    int now = 0;
    for (int i = 2; i <= n * m; ++i) {
        int nxt = now ^ 1;
        mem(dp[nxt], 0x00);
        for (int j = 1; j <= n; ++j) {
            for (int k = 1; k <= m; ++k) if (dp[now][j][k]) {
                int k1 = dp[now][j][k];
                update(dp[nxt][j][k], 1ll * k1 * (j * k - i + 1));
                update(dp[nxt][j + 1][k], 1ll * k1 * k * (n - j));
                update(dp[nxt][j][k + 1], 1ll * k1 * j * (m - k));
            }
        }
        now = nxt;
    }

    cout << dp[now][n][m] << endl;
}

int main()
{
    BEGIN() {
        cin >> n >> m >> mod;
        Solve();
    }
    return 0;
}

原文地址:https://www.cnblogs.com/zgglj-com/p/9510679.html

时间: 2024-10-16 10:33:53

Rikka with Nash Equilibrium的相关文章

杭电多校第九场 HDU6415 Rikka with Nash Equilibrium dp

Rikka with Nash Equilibrium Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 1251    Accepted Submission(s): 506 Problem Description Nash Equilibrium is an important concept in game theory. Ri

hdu-6415 Rikka with Nash Equilibrium dp计数题

http://acm.hdu.edu.cn/showproblem.php?pid=6415 题意:将1~n*m填入一个n*m矩阵 问只有一个顶点的构造方案. 顶点的定义是:某数同时是本行本列的最大值. 题解:考虑最大的那个数,必然是顶点.然后再考虑第二大的,它只能填在上一个数所在的行列.通过这个填法,成果摸出了第一个样例.但完全不会写程序(要分类,递归完全不会写). 后来知道是个O(n*n*m*m)的dp(搜索)orz 直播里的转移方程和代码:dp[i][j][k]代表填了i个数,j行k列已经

2018 Multi-University Training Contest 9

Rikka with Nash Equilibrium 题意: 定义pure strategy Nash equilibriums为矩阵中的一个数并且该数为所在行和列的最大值.现在要求构造一个矩阵,满足[1,n*m]中的每个数出现且只出现一次在矩阵中,并且矩阵至多只有一个pure strategy Nash equilibriums.问可以构造多少个满足上述条件的矩阵? 分析: 首先很容易想到的是从大到小放置这些值并且之后的数要放在之前的数占据的行和列上,因为在这种策略下,当前的数必定不是它所在

2018 Multi-University Training Contest 9 Solution

A - Rikka with Nash Equilibrium 题意:构造一个$n * m$的矩阵,使得$[1, n * m]$ 中每个数只出现一次,并且纳什均衡只出现一次. 思路:从大到小的放置,每一个都可以拓展一行拓展一列或者放在已经拓展的行列焦点,用记忆化搜索/dp即可 1 #include<bits/stdc++.h> 2 3 using namespace std; 4 5 typedef long long ll; 6 7 int n, m; 8 ll p; 9 ll dp[81]

hdu-6415 计数DP

Nash Equilibrium is an important concept in game theory. Rikka and Yuta are playing a simple matrix game. At the beginning of the game, Rikka shows an n×m integer matrix A. And then Yuta needs to choose an integer in [1,n], Rikka needs to choose an i

HDU 5005(Compromise-双人目标为最大化不同值的博弈)

Compromise Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 155    Accepted Submission(s): 47 Problem Description Xiaoqiang and Amoeba (AMB for short) are good friends. Friends as they are, they

[转]浅谈ACM ICPC的题目风格和近几年题目的发展

斯坦福大学 王颖 ACM ICPC的比赛形式一般是五个小时八个题目,综合考察选手的数学能力.算法能力.coding能力和debug能力,还有团队配合能力.数学方面主要强调组合数学.图论和数论这三个方面的能力:而算法的覆盖范围很广,涉及了大部分经典的算法,和少量较前沿的算法.由于每道题目都需要通过所有的测试数据才能得分,并且需要精确解,这限制了Approximation algorithm在一些NP-hard的题目中的运用,从而使得搜索和剪枝策略对于NP-hard的题目非常重要. Final的题目

(zhuan) Variational Autoencoder: Intuition and Implementation

Agustinus Kristiadi's Blog TECH BLOG TRAVEL BLOG PORTFOLIO CONTACT ABOUT Variational Autoencoder: Intuition and Implementation There are two generative models facing neck to neck in the data generation business right now: Generative Adversarial Nets

(zhuan) 一些RL的文献(及笔记)

一些RL的文献(及笔记) copy from: https://zhuanlan.zhihu.com/p/25770890  Introductions Introduction to reinforcement learningIndex of /rowan/files/rl ICML Tutorials:http://icml.cc/2016/tutorials/deep_rl_tutorial.pdf NIPS Tutorials:CS 294 Deep Reinforcement Lea