CF1210E.Wojtek and Card Tricks

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Wojtek 刚刚在 Byteland 赢得了一场数学竞赛!奖品非常棒——一本名为《人人都能玩的纸牌戏法》的书。“太好了!”他想,“我终于可以用上那副一直闲置在桌子上的旧扑克牌了!”

书的第一章是“如何将 kk 张牌以任意顺序洗牌”。这实际上是 nn 种复杂洗牌方法的列表,每种方法都能以确定性的方式对 kk 张牌进行洗牌。具体来说,第 ii 种方法可以用一个排列 $ (P_{i,1}, P_{i,2}, \dots, P_{i,k}) $ 来描述,这个排列是 11 到 kk 的整数的一个排列。如果我们将牌从上到下编号为 11 到 kk,那么 Pi,jP_{i,j} 表示洗牌后第 jj 张牌来自原来牌堆中的第 Pi,jP_{i,j} 张。

时间有限,Wojtek 今天只想学习其中的一部分戏法。他会选择两个整数 l,rl, r(1≤l≤r≤n1 \le l \le r \le n),然后记住从第 ll 个到第 rr 个(包括两端)的所有戏法。接着,他会拿出一副已经排好序的 kk 张牌,不断随机应用他记住的戏法,直到他觉得无聊为止。他依然喜欢数学,所以他开始思考:在他停止洗牌后,他最多能得到多少种不同的牌堆?

Wojtek 还没有选定 ll 和 rr,但他已经很好奇了。因此,他定义 f(l,r)f(l, r) 表示如果他记住了第 ll 到第 rr 个戏法(包括两端),他最多能得到多少种不同的牌堆。请你计算:

∑l=1n∑r=lnf(l,r)\sum_{l=1}^n \sum_{r=l}^n f(l, r)

的值。

输入格式

第一行包含两个整数 nn 和 kk(1≤n≤200 0001 \le n \le 200\,000,1≤k≤51 \le k \le 5),分别表示戏法的数量和牌堆中的牌数。

接下来的 nn 行,每行描述一种戏法,由 kk 个互不相同的整数 Pi,1,Pi,2,…,Pi,kP_{i,1}, P_{i,2}, \dots, P_{i,k} 组成(1≤Pi,j≤k1 \le P_{i,j} \le k)。

输出格式

输出题目中所描述的总和的值。

输入输出样例

  • 输入#1

    3 3
    2 1 3
    3 1 2
    1 3 2

    输出#1

    25
  • 输入#2

    2 4
    4 1 3 2
    4 3 1 2

    输出#2

    31

说明/提示

考虑第一个样例:

  • 第一个戏法交换了最上面的两张牌。
  • 第二个戏法把最下面的一张牌放到牌堆顶。
  • 第三个戏法交换了最下面的两张牌。

第一个或第三个戏法都只能让 Wojtek 得到两种不同的牌堆(即两张牌交换或不交换)。因此,f(1,1)=f(3,3)=2f(1,1) = f(3,3) = 2。

第二个戏法可以让他以循环的方式洗牌,因此 f(2,2)=3f(2,2) = 3。

事实证明,前两个戏法或后两个戏法都足以让他以任意方式洗牌。因此,f(1,2)=f(2,3)=f(1,3)=3!=6f(1,2) = f(2,3) = f(1,3) = 3! = 6。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页