codeforces 581C. Developing Skills 解题报告
题目链接:http://codeforces.com/problemset/problem/581/C
题目意思:给出 n 个数:a1, a2, ..., an (0 ≤ ai ≤ 100)。给出值 k,可以把它加到任意的 ai 中,成为ai',对每个ai 加多少随你定,但是不能超过 100,k也不一定需要用完。现在需要求得最终的和⌊a1'⌋+⌊a2'⌋ + ... + ⌊an'⌋,使其最大。
比赛的时候真的很中规中矩地做,有那么一点思路:将 k 中的某些unit 加入到每个数中(而且优先需要处理那些(个位+x)越靠近 x 的那些数(x mod 10 == 0),这样才能保证 floor(ai) 至少增加 1。所以需要排序啦。。。那时出现一点点小故障,赛后才发现排序排错了,我是从大到小排每个数的,其实是个位排序。还有就是我又将问题复杂化了,竟然用到平均数,汗~~ [-_-|||
大家请看题解吧~~浅显易懂

最后讲讲代码中为什么最后的ans 有个 n*10。这是因为最大的ans是不超过 n * 10 的(序列形式为:100 100 100 100...100);
k/10 是因为 加完之后,有可能剩下的 k 值还比较多,于是随便加入到某个 ai 中,最终的和是多少视乎 k / 10 还有多少(不考虑 ai 已经为100的情况, n*10 已经有约束)
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
using namespace std; const int maxn = 1e5 + ;
int a[maxn]; int main()
{
int n, k;
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
#endif // ONLINE_JUDGE while (scanf("%d%d", &n, &k) != EOF) {
int sum = ;
for (int i = ; i < n; i++) {
scanf("%d", &a[i]);
sum += a[i]/;
a[i] %= ;
} sort(a, a+n);
reverse(a, a+n); for (int i = ; i < n; i++) {
if (-a[i] <= k) {
sum++;
k -= (-a[i]);
}
}
printf("%d\n", min(*n, sum + k/));
}
return ;
}
C 题还是要继续努力才能做得出来啊,啊,啊~~~
codeforces 581C. Developing Skills 解题报告的更多相关文章
- 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 489B. BerSU Ball 解题报告
题目链接:http://codeforces.com/problemset/problem/489/B 题目意思:给出 n 个 boys 的 skills 和 m 个 girls 的 skills,要 ...
- 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 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 ...
随机推荐
- SQL笔记 - CTE递归实例(续):显示指定部门的全称
前一篇文章中已经可以取得所有部门的全称,但现在又有个新的需求: 只想得到某一个部门的部门全称,虽然可以用where条件来过滤,但是会有点小浪费. 这时我们可以从后往前找,先看下效果: 最后一条就是,行 ...
- webapp中fixed问题解决方案
主要问题: 1,头部输入框固定后,只要再滑动内容的话,输入框会随着滑动内容而滑动. 2,在低端机:2.3以下的安卓机,你会发现怎么解决都不行的,系统浏览器是不会支持的,头部底部固定的话会滑动内容而滑动 ...
- 懒加载的用处和赋nil操作[iOS开发教程]
懒加载的用处和赋nil操作 1:数据,清空操作: self.array = nil; 2:归档从新从本地获取数据 self.archive = nil; ##id = nil的用处 block当参数, ...
- Java多线程初学者指南(7):向线程传递数据的三种方法
在传统的同步开发模式下,当我们调用一个函数时,通过这个函数的参数将数据传入,并通过这个函数的返回值来返回最终的计算结果.但在多线程的异步开发模式下,数据的传递和返回和同步开发模式有很大的区别.由于线程 ...
- Hadoop之Storm安装
nimbus:主节点,负责分发代码,分配任务(只能有一个)supervisor:从节点,负责执行任务(可以有多个) jdkzookeeper(192.168.1.170/171/172)建议在zook ...
- VS2013 Community配置OpenCV3.0.0
配置环境:32位win7系统+VS2013 Community版本 1.首先从OpenCV官网上下载最新版本的OpenCV for Windows. 2.直接双击打开下载得到的opencv-3.0.0 ...
- WordPress文章浏览历史插件
选自:http://www.ludou.org/wordpress-recently-viewed.html 最近有很多网友问我,露兜博客右边栏底部的 您刚刚看过 栏目是怎么实现.其实我也是参考的这篇 ...
- HNU 12906 Battleship
题目链接:http://acm.hnu.cn/online/?action=problem&type=show&id=12906 解题报告:题目意思看了很久都没懂,就是一个10*10的 ...
- PC-BSD 换名 TrueOS
导读 PC-BSD 重大更新:面向私人电脑的PC-BSD操作系统开发者.Lumina桌面环境创造者Ken Moore今天宣布系统迎来重大改变. 首先,PC-BSD更名为TrueOS,用户依然能够在PC ...
- unity3d 关于断点下载和整个下载(用于更新)
转自:http://blog.csdn.net/yutyliu/article/details/24346459 string t = ""; //整体下载 IEnumerator ...