Codeforces 402 and 403 (Div. 2 and 1)

402 C

题意

给你 \(n\) ,要你构造一张有 \(n\) 个顶点的图,要求满足下列条件:

  1. 恰有 \(2n+p\) 条边
  2. 无自环和重边
  3. 对于所有的 \(k\in [1,n]\) ,任意包含 \(k\) 个节点的子图至多包含 \(2k+p\) 个节点。

\((5 ≤ n ≤ 24;p ≥ 0)\)

Examples

Input
1
6 0
Output
1 2
1 3
1 4
1 5
1 6
2 3
2 4
2 5
2 6
3 4
3 5
3 6

暴力枚举 \(1-n\) ,枚举到 \(i\) 时第 \(i\) 个节点向所有节点连边,如果超过限制,则向 \(1-\)不超过限制的第一个点 连边。

403 D

题意

一个由数对组成的序列,长度为 \(k\) ,设每个元素为 \((a_i,b_i)(1\le i\le k)\) ,满足:

  • \(1 ≤ a_1 ≤ b_1 < a_2 ≤ b_2 < ... < a_k ≤ b_k ≤ n\)\(n\) 是一个给出的正整数;
  • 所有的 \(b_1 - a_1, b_2 - a_2, ..., b_k - a_k\) 是不同的。

求满足条件的序列的个数。有 \(T\) 组测试数据。
\((1 ≤ T ≤  2·10^5,1 ≤ k ≤ n ≤ 1000)\)

Examples

Input
6
1 1
2 1
2 2
3 1
3 2
3 3
Output
1
3
0
6
2
0

设序列 \(c\)\(c_i=b_i-a_i+1\)
\(dp[i][j]\) 表示序列 \(c\) 的前 \(i\) 个元素的前缀和为 \(j\)
即从
转移: \(dp[i][j]=dp[i][j-i]+dp[i-1][j-i]\)

猜你喜欢

转载自www.cnblogs.com/BlogOfchc1234567890/p/10461597.html