#5283. USACO 2014 December Contest, Bronze Learning by Example
USACO 2014 December Contest, Bronze Learning by Example
题目描述
农夫约翰一直在阅读关于机器学习这个令人兴奋的领域的资料,在这个领域中,人们可以通过分析大量数据来发现有趣且有时出乎意料的模式(他甚至开始把他农场里的一块地称为“机器学习田”!)。约翰决定利用他现有牛群的数据来构建一个自动分类器,用于判断一头牛是否有斑点。
不幸的是,约翰在记录奶牛的数据方面做得不太好。对于他的头奶牛(1 <= <= 50,000),他只知道每头奶牛的体重以及是否有斑点。每头奶牛的体重都是不同的。基于这些数据,他构建了一个所谓的“最近邻分类器”。为了判断一头新奶牛是否有斑点,约翰首先在他的牛群中找到体重与最接近的奶牛。如果有斑点,那么约翰就猜测也有斑点;如果没有斑点,约翰对的猜测也是如此。如果没有唯一的最近邻,而是与约翰的两头奶牛距离相同,那么只要这两头最近邻中有一头或两头有斑点,约翰就猜测有斑点。
约翰想在一群刚到农场的新奶牛身上测试他的新自动斑点预测器。称完这些奶牛的体重后,他发现这批新奶牛的体重涵盖了从到(包含和)的每一个整数。请使用约翰的新分类器,确定这些奶牛中会被分类为有斑点的数量。注意,分类器只使用约翰现有的头奶牛的数据,而不使用任何新奶牛的数据。另外,由于和可能都很大,如果程序从循环到逐个计数,可能运行速度不够快。
输入格式
- 第1行:输入包含三个整数、和(1 <= <= <= 1,000,000,000)。
- 接下来行:每行描述一头奶牛。每行包含要么是“S W”,表示一头体重为的有斑点奶牛,要么是“NS W”,表示一头体重为的无斑点奶牛。体重均为1到1,000,000,000之间的整数。
输出格式
- 一行:一个整数,表示约翰的算法将分类为有斑点的新奶牛数量。
样例
样例输入
3 1 10
S 10
NS 4
S 1
样例输出
6
数据范围
1 <= <= 50,000,1 <= <= <= 1,000,000,000,奶牛体重为1到1,000,000,000之间的整数