$$ \newcommand{\seq}[2]{{#1}_{1},{#1}_{2},\cdots,{#1}_{#2}} \newcommand{\num}[1]{1,2,\cdots,#1} \newcommand{\stra}[2]{\begin{bmatrix}#1 \\ #2\end{bmatrix}} \newcommand{\strb}[2]{\begin{Bmatrix}#1 \\ #2\end{Bmatrix}} \newcommand{\dw}[1]{\underline{#1}} \newcommand{\up}[1]{\overline{#1}} $$

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\)
即要么将 \(i\) 个元素加 \(1\) ,要么将 \(i\) 个元素加 \(1\) 之后新添加一个 \(1\) ,使序列长度增加 \(1\)
转移: \(dp[i][j]=dp[i][j-i]+dp[i-1][j-i]\)
统计答案: \(ans[k][n]=\sum_{i=k}^{n}dp[k][i]*C[n-i+k][k]*k!\)

402 E

题意

有一个 \(n×n\) 的矩阵,满足以下条件:

  • \(a[i][j]≥0\)
  • \(\sum_{i=1}^n a[i][i]>0\)

问该矩阵能否经过若干次乘法,使得每个元素都为正数。
\((2\le n\le 2000)\)

Examples

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

首先明确矩阵可以等价地转化为01矩阵。
然后我们把矩阵看成有向图的邻接矩阵,那么设 \(b=a^k,b[i][j]\) 就表示从节点 \(i\)\(j\)\(k\) 步是否能到达。由 \(\sum_{i=1}^n a[i][i]>0\) 可知该图有自环。
我们发现如果图是强连通的,那么必定满足题意。
于是tarjan一遍即可。

403 E

题意

$$\color{white}{???}$$

Examples

Input
5
1 1 1 1
4 2 1 1
3
Output
Blue
3
Red
1 3
Blue
1 2
Red
2

posted @ 2019-03-02 16:23  chc_1234567890  阅读(143)  评论(0编辑  收藏  举报