B2 - Wonderful Coloring - 2
2021/8/5 23:06:05
本文主要是介绍B2 - Wonderful Coloring - 2,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
题目:https://codeforces.com/contest/1551/problem/B2
题解:用map<int, vector<int> >mp;记录下标 。然后进行遍历,每个数一次性处理。
//#include <bits/stdc++.h> #include <iostream> #include <map> #include <algorithm> #include <vector> using namespace std; typedef long long int ll; int ans[200005]; int main() { int t; cin >> t; while (t--) { map<int, vector<int> >mp; int n, k; int s = 0; cin >> n >> k; for (int i = 0; i < n; i++) { int t; cin >> t; mp[t].push_back(i);//下标标记 if (mp[t].size() <= k) { s++; } } s /= k;//每种颜色涂几次 int color = 1; int all = s * k;//可以涂的数 int t = 0;//涂了几个 for (auto it = mp.begin(); it != mp.end(); it++) { int size = it->second.size(); int tu = min(size, k); for (int i = 0; i < tu; i++) { int tpos = it->second[i];//这个数的下标 if (t >= all) { ans[tpos] = 0; break; } ans[tpos] = color; color %= k; color++; t++; } for (int i = tu; i < size; i++) { ans[it->second[i]] = 0; } } for (int i = 0; i < n; i++) { cout << ans[i] << " "; } cout << endl; } }
这篇关于B2 - Wonderful Coloring - 2的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-28易优新手必读安装教程-icode9专业技术文章分享
- 2024-06-28忘记eyoucms后台密码怎么办?-icode9专业技术文章分享
- 2024-06-26终极指南:Scrum中如何设置需求优先级
- 2024-06-26AI大模型企业应用实战(25)-为Langchain Agent添加记忆功能
- 2024-06-26小白家庭 nas 搭建方案-icode9专业技术文章分享
- 2024-06-23AI大模型企业应用实战(14)-langchain的Embedding
- 2024-06-23AI大模型企业应用实战(15)-langchain核心组件
- 2024-06-23AI大模型企业应用实战(16)-langchain核心组件
- 2024-06-23AI 大模型企业应用实战(06)-初识LangChain
- 2024-06-19EntBot.ai: AI Website Chatbot for Product Guides and Development Doc