特征提取

话不多说先放题
时间限制:1秒
空间限制:32768K

小明是一名算法工程师,同时也是一名铲屎官。某天,他突发奇想,想从猫咪的视频里挖掘一些猫咪的运动信息。为了提取运动信息,他需要从视频的每一帧提取“猫咪特征”。一个猫咪特征是一个两维的vector<x, y>。如果x_1=x_2 and y_1=y_2,那么这俩是同一个特征。
因此,如果喵咪特征连续一致,可以认为喵咪在运动。也就是说,如果特征<a, b>在持续帧里出现,那么它将构成特征运动。比如,特征<a, b>在第2/3/4/7/8帧出现,那么该特征将形成两个特征运动2-3-4 和7-8。
现在,给定每一帧的特征,特征的数量可能不一样。小明期望能找到最长的特征运动。
输入描述:
第一行包含一个正整数N,代表测试用例的个数。
每个测试用例的第一行包含一个正整数M,代表视频的帧数。
接下来的M行,每行代表一帧。其中,第一个数字是该帧的特征个数,接下来的数字是在特征的取值;比如样例输入第三行里,2代表该帧有两个猫咪特征,<1,1>和<2,2>
所有用例的输入特征总数和<100000
N满足1≤N≤100000,M满足1≤M≤10000,一帧的特征个数满足 ≤ 10000。
特征取值均为非负整数。
输出描述:
对每一个测试用例,输出特征运动的长度作为一行
输入例子1:
1
8
2 1 1 2 2
2 1 1 1 4
2 1 1 2 2
2 2 2 1 4
0
0
1 1 1
1 1 1
输出例子1:
3
例子说明1:
特征<1,1>在连续的帧中连续出现3次,相比其他特征连续出现的次数大,所以输出3

解题思路

10:12
看完题目,我的解决方案已经跃然于脑海里,这个不就与是上一道题那个“刻子”的求法类似,就是求最大连续数,所以我觉得这道题对于我来说,难点,可能是输入输出这里,谁让我毕竟少写输入语句,现在让我手撕一段,输入“hello,world”,我都得先百度百度,那么今天,我还是照例跳过输入,继续往前
先列一下输入的数据,如下:
1
3
2 1 1 2 1
3 1 3 2 1
2 1 1 1 1
那么我们上面的1 ,就是最外层循环体的判断字段,就是for(x=0;x<y;x++)中的y,即第一个数是多少,就循环多少次,记这个为1号循环体,然后3,就是
打断一下,我把题目理解错误了,我以为是计算每一行中的最长连接数,然后计算出总的最长连接数。
其实不然,以第一行为例,2是代表有两个特征(特征表示为x,y),即后面四个数就是两个特征向量,所以,我们要计算的是,这样的才对,所以2才是以上例子的正确答案。
行了,走了一段歪路,我们言归正传,重新思考
我第一时间是想把这些特征向量,两两合成一个字符串,然后再用竖列排序,如果没有数就定义为“0”,然后再来我们一开始的“刻子”算法,不就可以了吗,我是不是很机智。
代码就不打了,今天有点困,顶不住了。

脑洞时刻

脑子很困时刻,我感觉这个比较像一个矩阵,但我对矩阵不是很精通,我想不出来什么法子可以计算两列中连续的最大向量,所以啊,今天的脑洞时刻由此结束,我要休息了。
给昨天晚上熬夜看发布会的我还债。
第二天语录,最近在看神经网络的一些东西,有没有发现,这一套套循环,特别像神经网络中层级的变幻

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值