Gym 101102B The Little Match Girl(贪心+规律)
这个题目的做法不止一种,solve1:每个数字使用的火柴棒都在2~7之间,而且是连续的,就是2-7之前没有空着的数。这样就有一个结论,在下界为l,上界为r的情况下,假设有n个数,那么火柴棒总数一定在n*l 与n*r之间,首先容易想到这个问题肯定是只关心火柴棒的总数,然后就是一个重新组合的问题,假设第一个重组后的数消耗了x个火柴棒,那么剩下的sum-x如果在(n-1)*l 与 (n-1)*r之间,那么一定可以组合成n-1个数,且最后正好用光,条件是数字必须连续,为什么读者可以自己举样例。 这样从9到1枚举即可了。
solve2:观察这里的数,发现1是一个非常好的数,他是最小的数,并且消耗火柴棒最少,等等……0呢? 0直接无视掉变成9啊……最后的时候其实只会有1,9,7,4,8这几个数,我们可以让他们都变成1,然后把剩下的火柴棒加上去即可,肯定是加4根变成9最好,可以除以4看一下能出多少9,放不满余数只能是0,1,2,3讨论一下即可,放满了说明只能放8,每次加一个,从低位向高位加即可。
总之,第一个算是上下界的结论,第二个是贪心,也是我自己的做法,第二个稍微快一点~
代码如下:
#include<bits/stdc++.h>
using namespace std;
const int MAXN = 1e5+;
char a[MAXN];
int w[] = {,,,,,,,,,};
int fan[] = {,,,,,,,};
void solve1(int n) {
int sum = ,tmp;
for(int i = ; i < n; i++) {
sum += w[a[i]-''];
}
for(int i = ; i <= n; i++) {
for(int j = ; j >= ; j--) {
tmp = sum-w[j];
if(tmp>=*(n-i) && tmp<=*(n-i)) {
printf("%d",j);
sum = tmp;
break;
}
}
}
printf("\n");
}
void solve2(int n) {
int sum = ,tmp;
for(int i = ; i < n; i++) {
sum += w[a[i]-''];
a[i] = '';
}
tmp = sum-*n;
int k = tmp/;
int yu = tmp%;
for(int i = ; i<n&&i<k; i++) {
a[i] = '';
}
if(k < n) {
if(k == n-) {
a[k] = fan[+yu]+'';
} else if(k == n-) {
if(yu == ) a[k] = '';
if(yu == ) a[k] = a[k+] = '';
if(yu == ) a[k]='',a[k+] = '';
} else if(k == n-) {
if(yu == ) a[k] = '';
if(yu == ) a[k] = a[k+] = '';
if(yu == ) a[k] = a[k+] = a[k+] = '';
} else {
for(int i = ; i < yu; i++) {
a[k+i] = '';
}
}
} else {
tmp -= *n;
int ip = n-;
while(tmp--) {
a[ip--] = '';
}
}
printf("%s\n",a);
}
int main() {
// freopen("B.in.cpp","r",stdin);
int T,n;
scanf("%d",&T);
while(T--) {
scanf("%d%s",&n,a);
// solve1(n);
solve2(n);
}
return ;
}
Gym 101102B The Little Match Girl(贪心+规律)的更多相关文章
- Codeforces Gym - 101102B - The Little Match Girl
B. The Little Match Girl time limit per test 1 second memory limit per test 256 megabytes input stan ...
- Codeforces Gym 100231B Intervals 线段树+二分+贪心
Intervals 题目连接: http://codeforces.com/gym/100231/attachments Description 给你n个区间,告诉你每个区间内都有ci个数 然后你需要 ...
- codeforces Gym 100187F F - Doomsday 区间覆盖贪心
F. Doomsday Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100187/problem/F ...
- Codeforces Gym H. Hell on the Markets 贪心
Problem H. Hell on the MarketsTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vj ...
- 2019.03.25 NOIP训练 匹配(match)(贪心)
题意简述: 思路: 直接考虑把人和物品都看成二维平面上面的a,ba,ba,b两类点,然后一个aaa和bbb匹配的条件是xa≤xb&&ya≤ybx_a\le x_b\&\& ...
- GYM 101755 K.Video Reviews 【贪心】+【二分】
<题目链接> 题目大意: 一家公司想让n个人给他们的产品评论,所以依次去找这n个人,第i个人会评论当且仅当已经有ai个人评论或他确实对这个产品感兴趣,但是这n个人都不对这个产品感兴趣,问这 ...
- GYM 101173 F.Free Figurines(贪心||并查集)
原题链接 题意:俄罗斯套娃,给出一个初始状态和终止状态,问至少需要多少步操作才能实现状态转化 贪心做法如果完全拆掉再重装,答案是p[i]和q[i]中不为0的值的个数.现在要求寻找最小步数,显然要减去一 ...
- Gym - 100187A A - Potion of Immortality —— 贪心
题目链接:http://codeforces.com/gym/100187/problem/A 题解: 光题意就想了很久:在最坏情况下的最小兔子数.其实就是至少用几只兔子就一定能找出仙药(答案存在的话 ...
- Codeforces 2016 ACM Amman Collegiate Programming Contest B. The Little Match Girl(贪心)
传送门 Description Using at most 7 matchsticks, you can draw any of the 10 digits as in the following p ...
随机推荐
- Java消息队列-Spring整合ActiveMq
1.概述 首先和大家一起回顾一下Java 消息服务,在我之前的博客<Java消息队列-JMS概述>中,我为大家分析了: 消息服务:一个中间件,用于解决两个活多个程序之间的耦合,底层由Jav ...
- BootStrap 按钮组简单介绍
学会按钮组需要掌握以下几个类. btn btn-group btn-toolbar btn-group-vertical 和 下拉菜单的基本类 dropdown-toggle dropdow ...
- CentOS7--iptables的配置
在红帽RHEL7系统中firewalld服务取代了iptables服务,但依然可以使用iptables命令来管理内核的netfilter. iptables命令中则常见的控制类型有: ACCEPT:允 ...
- 【CSS学习笔记】关于有语义标签
1.哪些是单闭合标签,哪些是双闭合标签? HTML的单闭合标签有: 1.<br /> 2.<hr /> 3.<area /> 4.<base /> 5. ...
- Apache2.2下载及安装
php5.5 + apache2.4 安装配置图文步骤 http://wenku.baidu.com/link?url=8OHaJATVBHP5QrD-J2pTkmBOjY-ZG5cDngKMz7wl ...
- JQUERY 特殊字符
//替换特殊字符 $(this).val($(this).val().replace(/[~'!<>@#$%^&*()-+_=:]/g, ""));
- Objective-C运行时态消息传递--拼接方法名
做IOS开发的人都知道,Objective-C语言中方法的调用是运行时采取绑定的,在编译过程中只声明该方法的存在. 那么我们来简单说下在运行时,类的消息传递. 在运行时,每个方法如[self meth ...
- 负载均衡,最理想使用 redis实现session共享
负载均衡在多台php服务器负载均衡的情况下,第一秒请求是a服务器,第二秒请求是b服务器, session必须放在一个公共的服务器,最理想是使用 redis实现session共享.内存的速度比磁盘访问快 ...
- lua中的面向对象编程
简单说说Lua中的面向对象 Lua中的table就是一种对象,看以下一段简单的代码: 上述代码会输出tb1 ~= tb2.说明两个具有相同值得对象是两个不同的对象,同时在Lua中table是引用类型的 ...
- HDU 1045 Fire Net(DFS)
Fire Net Problem Description Suppose that we have a square city with straight streets. A map of a ci ...