列表

详情


NC218144. 牛客推荐系统开发之静态特征获取

描述

牛客要做推荐系统了,牛客程序员牛妹负责算法部分的开发,她做了一个微服务,而很多台机器都装载着这个微服务docker,这个微服务需要从牛牛的微服务取静态特征(比如说某篇讨论区文章的属性,基本不会改变的属性)。
现在牛妹有若干个微服务,一开始这些微服务都没有任何的静态特征,取完静态特征之后会存到自己微服务的内存中以便下次使用(不用考虑这些机器的内存能不能存得下)。
取静态特征的API是由牛牛来负责的,而牛牛作为优秀的架构师需要尽可能少得减少服务间通信,同一台机器取过的静态特征就不需要再取一次了。
现在牛妹的微服务需要取次静态特征,每一次会告诉你机器ID和需要取静态特征的文章ID,作为牛牛的优秀代码,你需要判断这次取特征需不需要进行服务间通信。

输入描述

输入第一行一个整数,表示取静态特征的次数。(
接下来行,每行两个字符串,第一个字符串表示机器ID,第二个字符串表示文章ID。(机器ID和文章ID的字符串长度都不超过10且仅包含大写字母)
输入顺序和取静态特征的时间顺序是一致的。

输出描述

对于每一次取特征,如果可以需要从牛牛的微服务中取静态特征则输出YES,否则输出NO。

示例1

输入:

5
A A
B B
A B
A B
A A

输出:

YES
YES
YES
NO
NO

说明:

第1个询问:机器A没有文章A的静态特征,需要取。
第2个询问:机器B没有文章B的静态特征,需要取。
第3个询问:机器A没有文章B的静态特征,需要取。
第4个询问:机器A有文章B的静态特征,不需要取。
第5个询问:机器A有文章A的静态特征,不需要取。

原站题解

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

C++ 解法, 执行用时: 313ms, 内存消耗: 10892K, 提交时间: 2021-06-20 01:01:51

#include<bits/stdc++.h>
using namespace std;
set<string>st;
string s;
int main()
{
	int n;
	cin>>n;
	cin.get();
	while(n--)
	{
		getline(cin,s);
		if(st.count(s))
		puts("NO");
		else
		st.insert(s),puts("YES");
	}
}

pypy3 解法, 执行用时: 545ms, 内存消耗: 54876K, 提交时间: 2021-06-11 19:08:34

data = set()
for _ in range(int(input())):
    machine, paper = input().split()
    if (machine, paper) in data:
        print("NO")
    else:
        data.add((machine, paper))
        print("YES")

Python3 解法, 执行用时: 555ms, 内存消耗: 20336K, 提交时间: 2021-06-18 14:37:16

n = int(input())
d = {}
for i in range(n):
    s = input()
    if s in d:
        print('NO')
    else:
        print('YES')
        d[s] = 1

上一题