#O9. [Sleeping Cup #2] Classic Counting Problem

[Sleeping Cup #2] Classic Counting Problem

注意

请严格按照提交方式进行操作。

题目描述

现有这么一道题目:

求满足以下条件的数列 {an}\{a_n\} 的数量:

  • {an}\{a_n\} 中的每一项均为正整数;
  • na1a2an1n \ge a_1 \ge a_2 \ge \ldots \ge a_n \ge 1
  • 记 $g(i,j)=\begin{cases} j&i=0 \\ \newline a_{g(i-1,j)}&i>0 \end{cases}\ (i=1,2,\ldots,n)$,则存在正整数 xx 使得 g(x,1)=g(x,2)==g(x,n)g(x,1)=g(x,2)=\ldots=g(x,n)

例如,n=3n=3{3,3,3},{3,2,2},{2,2,2},{2,2,1},{1,1,1}\{3,3,3\},\{3,2,2\},\{2,2,2\},\{2,2,1\},\{1,1,1\} 满足要求,故答案为 55

n=xn=x 时的答案为 f(x)f(x),请求出 f(x)f(x) 的解析式,并给出证明。

提交方式

$f(x)=x^2-2x+2$,证明如下。

根据 [cq_irritater](/user/2) 第二公理,$f(x)$ 显然是二次函数。

打表可知 $f(1)=1,f(2)=2,f(3)=5$,故 $f(x)=x^2-2x+2$。
  1. 以上是一份答案示例,它显然是错误的,可以得到 00 分的好成绩。
  2. 你需要在提问处(在题目列表下方)提交你的证明过程。
  3. 你需要在下面的代码中填入你的 Sleeping Cup UID,并用 C++ 提交。
  4. 本题将在赛后将进行人工批改,并更新 AC 记录,因此赛时无法 AC(显示为 00 分)。若你提交了多个证明,则以最后一个为准。请严格按照上述要求进行提交,否则后果自负。
  5. 本题共有 1010 档部分分,每档 1010 分。评分细则赛后公开。
#include <bits/stdc++.h>
using namespace std;
const int UID = /*Enter your UID here*/;
int main()
{
    freopen("proof.in", "r", stdin);
    freopen("proof.out", "w", stdout);
    cout << UID;
    return 0;
}
  1. 请不要恶意填写 UID,违者将被处以警告或封禁惩罚。
  2. 赛后提交方式如下,管理员将不定期进行批改。
#include <bits/stdc++.h>
using namespace std;
const int UID = (-1) * /*Enter your UID here*/;
int main()
{
    freopen("proof.in", "r", stdin);
    freopen("proof.out", "w", stdout);
    cout << UID;
    return 0;
}
/*
$f(x)=x^2-2x+2$,证明如下。

根据 [cq_irritater](/user/2) 第二公理,$f(x)$ 显然是二次函数。

打表可知 $f(1)=1,f(2)=2,f(3)=5$,故 $f(x)=x^2-2x+2$。
*/