列表

详情


NC50796. 精准预测

描述

题目背景
JYY和他的火星探险队再次登录火星小镇,并且打算把机器学习的知识传授给火星人,从而提高火星人的生活效率。但智力有限的火星人纷纷表示不相信计算机科学。为了让火星人彻底信服,JYY的探险队找到了他们之前关于火星详细的数据记录,并且训练了一个预测模型,这个模型能准确地预测出火星人在未来的生死情况。
题目描述
目前,火星小镇上有n个居民(编号)。机器学习算法预测出这些居民在接下来T个时刻(编号)的生死情况,每条预测都是如下两种形式之一:
  • 难兄难弟:在t时刻,如果x是死亡状态,那么在t+1时刻,y是死亡状态。(注意,当x在t时刻是生存状态时,该预测也被认为是正确的);
  • 死神来了:在t时刻,如果x是生存状态,那么在t时刻,y是死亡状态。(注意,当x在t时刻是死亡状态时,该预测也被认为是正确的)。注意本题是对某个时刻进行生死状态的预测,如果某个人在t时刻是生存状态,在t+1时刻是死亡状态,你可以认为是在t到t+1这段时间内发生了某个事件导致其死亡。
虽然JYY对自己从大数据中统计得到的模型非常自信,但火星人看到这些预测吓了一跳,表示实在难以接受这种设定,更是认为计算机科学是可怕的邪教,打破了他们平静的生活。为了安抚火星人的情绪,JYY打算从这些预测结果中推导出一些火星人更容易接受的事实,从而安抚火星人的情绪。
具体来说,JYY首先假设对火星人生死的预测全部正确,在此基础上,JYY希望为小镇上的每个居民k分别计算有多少个火星人有可能和他一起活到第T+1时刻,换言之,JYY希望为每个火星人k计算

其中表示编号为i和j的火星人有可能同时在第T+1时刻处于生还状态,否则
注意火星人是不能够复活的。一个火星人可能在时刻1就处于死亡状态,也有可能有预测未覆盖的死亡情况发生(火星人在任何时候都可能死亡,但任意时刻观察到火星人的状态要么活着,要么死亡)。最后,注意到是为每一对火星人分别独立计算的,因此并不意味着

输入描述

输入第一行包含三个整数T,n,m。
接下来有m行,每行表示一条预言,每条预言第一个整数c表示预言的类型:

c=0:接下来读入t,x,y;

c=1:接下来读入t,x,y。

输出描述

输出n个数表示答案,用空格分割。

示例1

输入:

3 3 2
0 2 1 3
1 1 2 3

输出:

2 1 1

说明:

如果编号为2的火星人活到T+1时刻,意味着在1时刻他也是活着的,由于第二条预言,会观察到编号为3的火星人在时刻1是死亡状态,所以编号为2和3的火星人不能同时活到T+1时刻,所以\text{Live}(2,3)=0
而编号为1的火星人能和其他两人的某一个活到T+1时刻。注意当1和3同时活着的时候,第一条预言是正确的。所以有\text{Live}(1,2)=1, \text{Live}(1,3)=1

示例2

输入:

10 10 20
0 7 1 10
0 9 8 3
0 7 8 9
0 1 6 9
1 3 8 3
1 2 4 1
1 10 7 6
1 5 9 7
0 9 8 7
1 2 7 9
1 1 2 4
1 4 1 4
0 6 3 1
0 6 3 4
1 6 3 7
0 1 7 9
0 8 2 9
1 6 3 1
0 6 1 1
1 8 5 4

输出:

0 5 0 1 5 5 3 5 4 0

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

上一题