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 ...
随机推荐
- Java 插入html字符串到PPT幻灯片
通过Java后端代码操作PPT幻灯片时,可直接在幻灯片中绘制形状,并在形状中添加文本字符串内容.本篇文章,介绍一种通过html字符串来添加内容到PPT幻灯片的的方法,可添加文字.图片.视频.音频等.下 ...
- 2021年春秋杯网络安全联赛秋季赛 勇者山峰部分wp
1.签到题-Crypto Vigenere 根据题目Vigenere可看出是维吉尼亚密码 使用在线网站破解 https://guballa.de/vigenere-solver flag:53d613 ...
- dotnet 将自动代码格式化机器人带入团队 GitLab 平台
给团队带入一个 代码格式化机器人 能提升团队的幸福度,让团队的成员安心写代码,不用关注代码格式化问题,将格式代码这个粗活交给机器人去做.同时也能减少在代码审查里撕格式化问题的时间,让更多的时间投入到更 ...
- 《python编程从入门到实践》读书实践笔记(一)
本文是<python编程从入门到实践>读书实践笔记1~10章的内容,主要包含安装.基础类型.函数.类.文件读写及异常的内容. 1 起步 1.1 搭建环境 1.1.1 Python 版本选择 ...
- SUNTANS 及 FVCOM 对流扩散方程求解简介[TBC]
最近接到一个任务,就是解决FVCOM中对流扩散计算不守衡问题.导师认为是其求解时候水平和垂向计算分开求解所导致的,目前我也没搞清到底有什么问题,反正就是让把SUNTANS的对流扩散计算挪到FVCOM中 ...
- matplotlib 画饼图
有个瑕疵,某一块儿比例过小时,文字会重叠. 1 def pizza(data,labs,title): 2 import matplotlib 3 import matplotlib.pyplot a ...
- Label -- 跳出循环的思路
let num = 0 ; outPoint: //label for (let i = 0; i < 10; i++) { for ( let j = 0; j < 10; j++) { ...
- 学习java 7.4
学习内容:遍历字符串要点:for(int i = 0;i < line.length();i++) { System.out.println(line.chatAt(i)); } 字符串拼接: ...
- 《手把手教你》系列技巧篇(四十八)-java+ selenium自动化测试-判断元素是否可操作(详解教程)
1.简介 webdriver有三种判断元素状态的方法,分别是isEnabled,isSelected 和 isDisplayed,其中isSelected在前面的内容中已经简单的介绍了,isSelec ...
- volatile原理和应用场景
volatile是java语言中的一个关键字,常用于并发编程,有两个重要的特点:具有可见性,java虚拟机实现会为其满足Happens before原则;不具备原子性.用法是修饰变量,如:volati ...