codeforces 507B. Painting Pebbles 解题报告
题目链接:http://codeforces.com/problemset/problem/509/B
题目意思:有 n 个piles,第 i 个 piles有 ai 个pebbles,用 k 种颜色去填充所有存在的pebbles,使得任意两个piles,用颜色c填充的pebbles数量之差 <= 1。如果不填充某种颜色,就默认数量为0。
这样说还是比较难理解吧~~~以第三组数据为例:
5 4
3 2 4 3 5
YES
1 2 3
1 3
1 2 3 4
1 3 4
1 1 2 3 4
第2个 pile 和 第5个 pile 的比较结果如下:
cha[1] = 1 (第2个pile用颜色1填充的数量是1,第5个pile为2)
cha[2] = 1 (第2个pile用颜色2填充的数量是0,第5个pile为1)
cha[3] = 0; cha[4] = 1
要想差尽可能少,就要使得颜色尽量分散。就是说,假如有个 pile 的 pebble 数目为5,可选颜色有4种,这样填就是尽量分散: 1 2 3 4 1。每个pile都这样处理,然后比较两两pile以颜色c填充的数量是否大于1,这样用vector排序比较第一个和最后一个元素之差即可。最后就输出结果了。
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std; const int maxn = + ;
vector<int> v[maxn], ans[maxn];
vector<int>:: iterator vp1, vp2;
int a[maxn];
int cnt[maxn]; int main()
{
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
#endif // ONLINE_JUDGE int n, k;
while (scanf("%d%d", &n, &k) != EOF) {
for (int j = ; j <= maxn; j++) {
ans[j].clear();
v[j].clear();
} for (int j = ; j < n; j++) {
scanf("%d", &a[j]);
memset(cnt, , sizeof(cnt));
for (int i = ; i < a[j]; i++) {
int tmp = ((i+) % k ? (i+) % k : k);
cnt[tmp]++;
} // 填色
for (int i = ; i <= k; i++) {
ans[i-].push_back(cnt[i]);
v[i-].push_back(cnt[i]);
}
}
bool flag = true;
for (int i = ; i < k; i++) {
sort(v[i].begin(), v[i].end());
vp1 = v[i].begin();
vp2 = v[i].end()-;
if (*vp2 - *vp1 > ) {
flag = false;
break;
}
}
if (!flag)
printf("NO\n");
else {
printf("YES\n");
for (int i = ; i < n; i++) {
for (int j = ; j < a[i]; j++) {
printf("%d ", (j+) % k ? (j+) % k : k);
}
printf("\n");
}
}
}
return ;
}
codeforces 507B. Painting Pebbles 解题报告的更多相关文章
- Codeforces Round 665 赛后解题报告(暂A-D)
Codeforces Round 665 赛后解题报告 A. Distance and Axis 我们设 \(B\) 点 坐标为 \(x(x\leq n)\).由题意我们知道 \[\mid(n-x)- ...
- Codeforces Round 662 赛后解题报告(A-E2)
Codeforces Round 662 赛后解题报告 梦幻开局到1400+的悲惨故事 A. Rainbow Dash, Fluttershy and Chess Coloring 这个题很简单,我们 ...
- Codeforces Round #277.5 解题报告
又熬夜刷了cf,今天比正常多一题.比赛还没完但我知道F过不了了,一个半小时贡献给F还是没过--应该也没人Hack.写写解题报告吧= =. 解题报告例如以下: A题:选择排序直接搞,由于不要求最优交换次 ...
- codeforces B. Simple Molecules 解题报告
题目链接:http://codeforces.com/problemset/problem/344/B 题目意思:这句话是解题的关键: The number of bonds of an atom i ...
- codeforces 591A. Wizards' Duel 解题报告
题目链接:http://codeforces.com/problemset/problem/591/A 题目意思:其实看下面这幅图就知道题意了,就是Harry 和 He-Who-Must-Not-Be ...
- codeforces 582A. GCD Table 解题报告
题目链接:http://codeforces.com/problemset/problem/582/A 网上很多题解,就不说了,直接贴代码= = 官方题解: http://codeforces.com ...
- codeforces 581C. Developing Skills 解题报告
题目链接:http://codeforces.com/problemset/problem/581/C 题目意思:给出 n 个数:a1, a2, ..., an (0 ≤ ai ≤ 100).给出值 ...
- codeforces 577B. Modulo Sum 解题报告
题目链接:http://codeforces.com/problemset/problem/577/B 题目意思:就是给出 n 个数(a1, a2, ..., an) 和 m,问能不能从这 n 个数中 ...
- codeforces 540B.School Marks 解题报告
题目链接:http://codeforces.com/problemset/problem/540/B 题目意思:给出 k 个test的成绩,要凑剩下的 n-k个test的成绩,使得最终的n个test ...
随机推荐
- MFC CStatic类动态创建
如果我使用下面风格: m_PictureCtrl.Create(NULL, WS_EX_TRANSPARENT|WS_CHILD|WS_VISIBLE|WS_TABSTOP|SS_OWNERDRAW, ...
- map 与 unordered_map
两者效率对比: #include <iostream> #include <string> #include <map> #include <unordere ...
- 【CISP笔记】操作系统安全
账号安全设置 默认管理账号Administrator更名,设置密码(字母.数字.大小写字母.特殊字符,长度在8位以上). 本地安全策略 打开方式 win+R 输入ecpol.msc 账号锁定策略 用户 ...
- 2015年12月01日 GitHub入门学习(一)GitHub简介
序:Github理念是Social Coding(社会化编程).octocat是它的吉祥物. 一.Github与Git的区别与联系 区别:GIT是仓库,Github是提供一种将代码提交到Git仓库的服 ...
- NUGet的诞生与使用
本文引用地址:http://msdn.microsoft.com/zh-cn/magazine/hh547106.aspx NuGet 使用 NuGet 管理项目库 Phil Haack 无论多么努力 ...
- springmvc 数据精准绑定
因为使用dwz 的lookup功能,回调的值通过name以 xxx.xxValue 来自动得到,而我还有些表单数据的name是没有前缀的, 到springmvc后台绑定的的话默认的绑定是有问题的.这是 ...
- 第三方网站不能调用微信公众平台里的图片了 显示"此图片来自微信公众号平台未经允许不可引用"
下午ytkah在自己小博客搜索时看到有几篇文章图片显示不了,再访问一些网站时发现有些图片无法显示出来,显示"此图片来自微信公众号平台未经允许不可引用",如下图所示,这个应该是最近微 ...
- hdu.1043.Eight (打表 || 双广 + 奇偶逆序)
Eight Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- js分页--存储数据并进行分页
//分页方法 var page = function(){ this.v = { o:null,//ul父级层 home:null, previous:null, next:null, last:nu ...
- webpack 教程 那些事儿04-webpack项目实战分析
这节主要讲解真正项目用用到的 webpack配置问题,项目实战篇 就像我们不会完全做一个项目,不用别人的轮子一样.这个配置我们借用 vue-cli 搭建的配置来研究,因为它已经足够优秀. 有了前面的基 ...