题干:1129 Recommendation System (25 分)
- 题解:这做了应该有1个小时,拿了18分
- 我现在总结一句话:宁可程序运行超时,扣个几分,也不要程序在规定时间内没有写完,最后一分都没有
- debug part的注释是要你留心的地方,也继续提醒你vs有多强大!!!
-
// A1129.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <bits/stdc++.h> using namespace std; #define max 110 struct info { int id; int cnt; }; unordered_map<int, int> cnt;//debug part vector<info> bn; //vector<int> cnt(max,0);//debug part bool cmp(info x, info y) { if (x.cnt != y.cnt) { return x.cnt > y.cnt; } else if (x.id != y.id) { return x.id < y.id; } } int main() { #ifndef ONLINE_JUDGE FILE* s; freopen_s(&s, "in.txt", "r", stdin); #endif // !ONLINE_JUDGE int n, k; int query; cin >> n >> k; for (int i = 0; i < n; i++) { cin >> query; if (bn.size() != 0) { printf("%d:", query); for (auto e : bn) { cout << " " << e.id ; } cout << endl; } cnt[query]++;//debug part //an.clear(); vector<info> an;//debug part for (auto it = cnt.begin(); it != cnt.end(); it++) { if (it->second != 0) { an.push_back({ it->first,it->second });//debug part } } //for (int j = 1; j < max; j++) { // an.push_back({j,cnt[j]}); //} sort(an.begin(), an.end(), cmp);//debug part bn.clear(); for (int j = 0; j < an.size(); j++) { if (bn.size()!=k) { //debug part bn.push_back({an[j].id,an[j].cnt });//debug part } } } return 0; }