CF256D.Liars and Serge

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

有 nn 个人坐在桌子旁成一排。我们知道每个人要么总是说真话,要么总是说谎。

小 Serge 问了他们一个问题:你们当中有多少人总是说真话?每个人都清楚所有人的身份(诚实或说谎者)。诚实的人会说出正确答案,说谎者会说 1 到 nn 之间的任意一个不是正确答案的整数。每个说谎者独立选择自己的答案,因此两个不同的说谎者可能会给出不同的答案。

Serge 除了他们对这个问题的回答外,对这些人一无所知。他拿出一张纸,记下了 nn 个整数 a1,a2,...,ana_{1},a_{2},...,a_{n},其中 aia_{i} 是第 ii 个人的回答。已知 Serge 发现,正好有 kk 个人是说谎者。

Serge 想知道,有多少种 nn 个长度的答案序列(即 aa 序列),能得出正好有 kk 个人是说谎者。由于这种答案序列可能非常多,请输出答案对 777777777777777777 取余的结果。

输入格式

第一行包含两个整数 nn,kk,(1≤k≤n≤28)(1 \leq k \leq n \leq 2^{8})。保证 nn 是 2 的幂。

输出格式

输出一个整数,表示满足条件的答案序列种数,对 777777777777777777 取余。

输入输出样例

  • 输入#1

    1 1
    

    输出#1

    0
    
  • 输入#2

    2 1
    

    输出#2

    2
    

说明/提示

由 ChatGPT 5 翻译

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

首页