#P6432. 「JOISC 2023 Day2」议会

「JOISC 2023 Day2」议会

题目描述

题目译自 JOISC 2023 Day2 T2 「議会 / Council

JOI 市议会有 NN 名议员,编号为 11NN。这个议会将举行一次会议,并且这些议员会对 MM 个议案进行投票,议案编号为 11MM。如果 Ai,j=1A_{i,j}=1,那么议员 i (1iN)i\ (1\le i\le N) 会给议案 j (1jM)j\ (1\le j\le M) 投赞成票。如果 Ai,j=0A_{i,j}=0,则议员 ii 会给议案 jj 投反对票。

JOI 市议会会进行如下操作:

  1. 在这 NN 名议员中,他们会通过抽签随机选择一名议长
  2. 这名议长会在除了自己以外的 N1N-1 位议员中选择一名副议长
  3. 之后进行这 MM 个议案的表决。除了议长和副议长外的 N2N-2 名议员会对每个议案投一张赞成票或反对票。如果对某个议案投赞成票的议员数量过半数(即,大于等于 N2\lfloor \frac{N}{2}\rfloor 名议员),那么这项议案将被通过。这里 x\lfloor x\rfloor 指不超过 xx 的最大整数

JOI 市市长 K 想要议会通过尽可能多的议案。市长 K 收集了每个议员的信息。市长 K 知道,对于每个议案,谁会投赞成票和谁会投反对票。

给定议员的投票信息,写一个程序计算对于每个议员,如果这个议员被选为议长的话,最多可能通过的议案数是多少。

输入格式

第一行两个整数 N,MN,M

接下来 NN 行,每行 MM 个整数 Ai,1,Ai,2,,Ai,MA_{i,1},A_{i,2},\ldots,A_{i,M}

输出格式

输出 NN 行,第 ii 行输出一个整数,表示如果议员 ii 被选为议长的情况下,最多可能通过的议案数。

3 3
1 0 0
1 1 0
1 1 1

3
3
2

4 12
1 1 1 0 1 1 0 1 0 1 1 0
1 1 0 1 1 0 1 1 1 1 1 0
0 0 1 1 1 0 0 0 0 0 1 1
1 0 0 0 1 1 1 1 1 0 0 0

5
4
6
6

16 4
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1

3
3
3
2
3
2
2
1
3
2
2
1
2
1
1
0

4 2
1 0
0 1
1 1
1 1

2
2
1
1

数据范围与提示

对于所有输入数据,满足:

  • 3N3×1053\le N\le 3\times 10^5
  • 1M201\le M\le 20
  • 0Ai,j1 (1iN,1jM)0\le A_{i,j}\le 1\ (1\le i\le N,1\le j\le M)

详细子任务附加限制及分值如下表所示。

子任务编号 附加限制 分值
11 N300N\le 300 88
22 N3 000N\le 3\ 000
33 M2M\le 2 66
44 M10M\le 10 1919
55 M14M\le 14 1515
66 M17M\le 17 2222
77 无附加限制