LuoguP7019 [NWRRC2017]Auxiliary Project 题解
Update
- \(\texttt{2021.6.24}\) 修改了一处格式上的错误和一处笔误。
Content
已知用 LED 灯来显示 \(0\sim9\) 这十个数字分别需要 \(6,2,5,5,4,5,6,3,7,6\) 段 LED 灯管组成,现在,你需要点亮正好 \(n\) 段 LED 灯管,使得组成的数字的和最大。
数据范围:\(2\leqslant n\leqslant 2\times 10^5\)。
Solution
我们不妨用 \(\dfrac{\text{数字}}{\text{灯管段数}}\) 来衡量点亮这些数的价值,得到的表格如下:
数字 | \(0\) | \(1\) | \(2\) | \(3\) | \(4\) | \(5\) | \(6\) | \(7\) | \(8\) | \(9\) |
---|---|---|---|---|---|---|---|---|---|---|
价值(保留 \(2\) 位小数) | \(0\) | \(0.5\) | \(0.4\) | \(0.6\) | \(1\) | \(1\) | \(1\) | \(2.33\) | \(1.14\) | \(1.5\) |
不难发现这样的话,尽可能多地组成 \(7\) 的价值是最大的,所以我们多组成 \(7\),假设组完以后的数的和为 \(ans\)。然后对剩下的灯管数量,也就是 \(n\mod 3\),进行分类讨论。
- \(n\mod 3=0\),此时的答案就是 \(ans\)。
- \(n\mod 3=1\),此时无法再组成数,然而题目限制我们要正好 \(n\) 段灯管,所以我们考虑把一个 \(7\) 给去掉,然后剩下 \(4\) 段灯管,此时可以组成一个 \(4\)。因此答案就是 \(ans-7+4=ans-3\)。
- \(n\mod 3=2\),此时可以再组成一个 \(1\),不需要再去舍弃了(舍弃了很明显不是最优方案),那么此时答案就是 \(ans+1\)。
那么这道题目就做完了。
Code
int n;
long long ans;
int main() {
scanf("%d", &n);
ans = n / 3 * 7;
n %= 3;
if(n == 1) printf("%d", ans - 3);
else if(n == 2) printf("%d", ans + 1);
else printf("%d", ans);
return 0;
}
LuoguP7019 [NWRRC2017]Auxiliary Project 题解的更多相关文章
- NEERC训练实录
听说这里可以做一些idea比较好的题.. 那就做做吧 2017-2018 ACM-ICPC, NEERC, Northern Subregional Contest A. Auxiliary Proj ...
- 2017-2018 ACM-ICPC, NEERC, Northern Subregional Contest
A. Auxiliary Project 完全背包. #include<stdio.h> #include<iostream> #include<string.h> ...
- 「题解」NWRRC2017 Joker
本文将同步发布于: 洛谷博客: csdn: 博客园: 简书. 题目 题目链接:洛谷 P7028.gym101612J. 题意概述 有一个长度为 \(n\) 的数列,第 \(i\) 个元素的值为 \(a ...
- 「题解」NWRRC2017 Grand Test
本文将同步发布于: 洛谷博客: csdn: 博客园: 简书. 题目 题目链接:洛谷 P7025.gym101612G. 题意概述 给你一张有 \(n\) 个点 \(m\) 条边的无向图,无重边无自环, ...
- 省选模拟赛 project
solution: 最小割问题. 建如下边: (S,i,Ai)代表选用A语言编写第i个项目: (i,T,Bi)代表选用A语言编写第i个项目: 其后注意要反向连边 (i,j,D)代表选用B语言编写第i个 ...
- Pintos-斯坦福大学操作系统Project详解-Project1
转载请注明出处. 前言: 本实验来自斯坦福大学cs140课程,只限于教学用途,以下是他们对于Pintos系统的介绍: Pintos is a simple operating system fra ...
- 【LeetCode题解】225_用队列实现栈(Implement-Stack-using-Queues)
目录 描述 解法一:双队列,入快出慢 思路 入栈(push) 出栈(pop) 查看栈顶元素(peek) 是否为空(empty) Java 实现 Python 实现 解法二:双队列,入慢出快 思路 入栈 ...
- project euler 169
project euler 169 题目链接:https://projecteuler.net/problem=169 参考题解:http://tieba.baidu.com/p/2738022069 ...
- ZOJ - 3946-Highway Project(最短路变形+优先队列优化)
Edward, the emperor of the Marjar Empire, wants to build some bidirectional highways so that he can ...
随机推荐
- 55张图吃透Nacos,妹子都能看懂!
大家好,我是不才陈某~ 这是<Spring Cloud 进阶>第1篇文章,往期文章如下: 五十五张图告诉你微服务的灵魂摆渡者Nacos究竟有多强? openFeign夺命连环9问,这谁受得 ...
- logname
logname命令用来显示用户名称. 语法 logname(选项) 选项 --help:在线帮助: --vesion:显示版本信息.
- 52-Linked List Cycle
Linked List Cycle My Submissions QuestionEditorial Solution Total Accepted: 102785 Total Submissions ...
- 数据库(database)介绍
0.数据定义:除了文本类型的数据,图像.音乐.声音都是数据. 数据分类:结构化数据.非结构化数据.1.数据库定义:"电子化的文件柜","数据仓库".数据库是一个 ...
- PHP识别二维码(php-zbarcode)
PHP识别二维码(php-zbarcode) 标签: php二维码扩展 2015-11-06 17:12 609人阅读 评论(0) 收藏 举报 分类: PHP(1) Linux 版权声明:本文为博 ...
- SpringBoot Logback 日志配置
目录 前言 日志格式 日志输出 日志轮替 日志级别 日志分组 小结 前言 之前使用 SpringBoot 的时候,总是习惯于将日志框架切换为 Log4j2,可能是觉得比较靠谱,也可能年龄大了比较排斥新 ...
- Ganglia 简单介绍与安装
文章来至于 http://sachinsharm.wordpress.com/2013/08/17/setup-and-configure-ganglia-3-6-on-centosrhel-6- ...
- 『学了就忘』Linux启动引导与修复 — 70、grub启动引导程序的配置文件说明
目录 1.grub中分区的表示方法 2.grub的配置文件 3.grub的配置文件内容说明 (1)grub的整体设置 (2)CentOS系统的启动设置 1.grub中分区的表示方法 在说grub启动引 ...
- Shell学习(九)——chattr与lsattr命令详解
有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了.chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,不过现在生产绝大部分跑的linux ...
- linux修改文件权限命令
先看个实例: [root@local opt]#ls -al ls -al 命令是列出目录的所有文件,包括隐藏文件.隐藏文件的文件名第一个字符为'.' -rw-r--r-- 1 root root ...