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 ...
随机推荐
- vue 数据单项绑定
提供get方法,修改数据不改原来数据,进行单向绑定,还可以做数据缓存,减少服务器压力. 提供单独的set方法.
- Spring扩展点-v5.3.9
Spring 扩展点 **本人博客网站 **IT小神 www.itxiaoshen.com 官网地址****:https://spring.io/projects/spring-framework T ...
- Java异常与错误
Java错误与异常 三种类型的异常 检查性异常:用户错误或问题引起的异常,这是程序员无法预见的.例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单的忽略 运行时异常:运行时异常是 ...
- Pollard-Rho 算法
Pollard-Rho 一种复杂度大概在 $ O(n^{\frac 1 4} \log n) $ 的分解质因数方法. Miller-Rabin 给定一个 $ 10^{18} $ 范围的数,判断质数 由 ...
- P5509 派遣
题面传送门. 数论小杂烩( 由题意,对于每个士兵 \(i\),要么选,对答案产生 \(a_i(\frac{x}{i-x})\) 倍的贡献,要么不选,对答案产生 \(1\) 倍的贡献. 由此可知每个士兵 ...
- DTOJ 4030: 排列计数
[题目描述] 求有多少个1到n的排列满足恰有$k$对在排列中相邻的数满足前小于后,答案对2012取模. [输入] 一行2个正整数$n,k$. [输出] 输出一个整数表示答案. [样例输入] 5 2 ...
- C++ and OO Num. Comp. Sci. Eng. - Part 2.
本文参考自<C++ and Object-Oriented Numeric Computing for Scientists and Engineers>. 1. Basic Types ...
- NextDenovo 组装基因组
NextDenovo 是有武汉未来组团队开发出来用于组装ONT,Pacbio, HIFI (默认参数可对60-100X数据更有效),可通过correct--assemble对其进行组装.组装后,每个碱 ...
- 端口TCP——简介
cmd命令:telnet 如果需要搭建外网可访问的网站,可以顺便勾选HTTP,HTTPS端口:
- C#gridview尾部统计
protected void gridSettlement_RowDataBound(object sender, GridViewRowEventArgs e) { if (dtSettlement ...