Known Notation 39届亚洲赛牡丹江站K题
题意:
题意,哎!说道题意就蛋疼啊,比赛的时候就愣是把这个题目读成数字可以随意组合,比如123 可以拆成1 23 ,12 3 ,1 2 3,结果显然,水题当神题,各种想不出来,然后就显然的悲剧了,现在说下这个题目的意思给你一个串问你最少多少步操作可以把这个串变成合格的表达式组,每个合格表达式都是AB*的形式,A,B是数字,而且是1位的数字,只能是1位<哎!比赛的时候sb了>,然后AB*可以变成一个数字,也是1位的,是谁不重要,操作有两种,一个是在任意位置上添加一个字母1-9或者是*,另一个就是可以任意交换两个字符,问你变成合格的组合的最少步数,好像没说明白题意啊,那么我在举几个例子。1*1:我们可以直接把中间的*和后面的1交换,变成11*,11*可以转换成数字了,答案是1步11*234**:我们先把11*变成数字假如是A。34*变成B,那么就是A2B*
然后2B*可以转换成一个数字了C,加上前面的A还是一个可发数字AC,所以是0步。*:要在前面加两个数字变成AB*才能转换成一个纯数字串 所以是2
思路:
首先我们要知道,假如最终的*个数为x,最终的数字个数a肯定是 a >= x + 1,这样的话我们的策略可以这样,我们先看看数字个数够不够,如果不够,那么先把数字填够,<这里当然是填到等于x+1的个数了,能剩则剩>,还有就是要知道,根本不用填*因为填*就是在为自己增加负担,填问数字我们就可以线性扫了,从前往后,对于每一个*如果前面的数字个数不满足了,那么就把当前的*和最后面的一个数字交换就行了,这样有点贪心的意思,具体看代码吧。
#include<stdio.h>
#include<string.h>
#include<queue>
int num[1100];
char str[1100];
int main ()
{
int t ,i ,Ans;
scanf("%d" ,&t);
while(t--)
{
scanf("%s" ,str);
int l = strlen(str);
int s1 = 0 ,s2 = 0;
for(i = 0 ;i < l ;i ++)
{
if(str[i] == '*') num[i+1] = 1 ,s1 ++;
else num[i+1] = 0 ,s2 ++;
}
int now = 0;
if(s2 < s1 - 1) now = s1 + 1 - s2;
Ans = now;
for(i = 1 ;i <= l ;i ++)
{
if(num[i])
{
if(now >= 2) now --;
else
{
Ans ++;
for(int j = l ;j > i ;j --)
if(!num[j])
{
int t = num[i];
num[i] = num[j];
num[j] = t;
now ++;
break;
}
}
}
else now ++;
}
if(!num[l]) Ans ++;
if(!s1) Ans = 0;
if(num[1] && l == 1) Ans = 2;
printf("%d\n" ,Ans);
}
return 0;
}
Known Notation 39届亚洲赛牡丹江站K题的更多相关文章
- Building Fire Stations 39届亚洲赛牡丹江站B题
题意: 给你一棵树,让你再里面选取两个点作为**点,然后所有点的权值是到这两个点中最近的那个的距离,最后问距离中最长的最短是多少,输出距离还有那两个点(spj特判). 思路: 现场 ...
- Average Score39届亚洲赛牡丹江站A题
题意: A班有n个人,B班有m个人,然后现在给你n-1个A班人的成绩,和m个B班人的成绩,然后题目要求求出A班剩下的没给成绩那个人的成绩范围,要求是这个人从A班转到B班后能使A,B的平均分 ...
- 2018ICPC网络赛(焦作站)K题题解
一.题目链接 https://nanti.jisuanke.com/t/31720 二.题意 给$N$种船只,第$i$种船的载重量是$V_i$,数量是$2^{C_i}-1$.接下来有$Q$次询问,每次 ...
- 2014ACM/ICPC亚洲区域赛牡丹江站汇总
球队内线我也总水平,这所学校得到了前所未有的8地方,因为只有两个少年队.因此,我们13并且可以被分配到的地方,因为13和非常大的数目.据领队谁oj在之上a谁去让更多的冠军.我和tyh,sxk,doub ...
- 2014ACM/ICPC亚洲区域赛牡丹江站现场赛-A ( ZOJ 3819 ) Average Score
Average Score Time Limit: 2 Seconds Memory Limit: 65536 KB Bob is a freshman in Marjar Universi ...
- zoj 3822 Domination 概率dp 2014牡丹江站D题
Domination Time Limit: 8 Seconds Memory Limit: 131072 KB Special Judge Edward is the headm ...
- 2014ACM/ICPC亚洲区域赛牡丹江站现场赛-K ( ZOJ 3829 ) Known Notation
Known Notation Time Limit: 2 Seconds Memory Limit: 65536 KB Do you know reverse Polish notation ...
- 2014ACM/ICPC亚洲区域赛牡丹江站现场赛-I ( ZOJ 3827 ) Information Entropy
Information Entropy Time Limit: 2 Seconds Memory Limit: 65536 KB Special Judge Information ...
- 【2017 ICPC亚洲区域赛沈阳站 K】Rabbits(思维)
Problem Description Here N (N ≥ 3) rabbits are playing by the river. They are playing on a number li ...
随机推荐
- 从客流统计到营销赋能,Re-ID加速实体商业数字化转型 | 爱分析洞见
2020年中国实体商业受到突发疫情的重大影响.以危机为契机,实体商业加速数字化转型,利用创新应用服务自身业务.在此阶段,基于Re-ID(Person Re-identification,即行人再识别) ...
- ElasticSearch(ES)使用Nested结构存储KV及聚合查询
自建博客地址:https://www.bytelife.net,欢迎访问! 本文为博客同步发表文章,为了更好的阅读体验,建议您移步至我的博客 本文作者: Jeffrey 本文链接: https://w ...
- python分离不同后缀名的文件
功能描述 根据文件后缀名处理文件,分别拷贝到对应的文件夹下 example >>> .jpg 后缀 和.mp4 后缀文件处理 代码实现 #!/usr/bin/env python # ...
- Navicat 121版本激活工具
以下是工具的链接: https://github.com/DoubleLabyrinth/navicat-keygen/blob/windows/README_FOR_WINDOWS.zh-CN.md ...
- 利用jmeter对WebRTC应用进行压力测试(java)
利用jmeter对WebRTC应用进行压力测试(java) 说明:WebRTC是一款开源的多人即时视频API,与一般的http请求不同,webrtc应用实际压力主要是码流 最近负责了一个WebRTC的 ...
- 什么是IPFS集群?IPFS集群有什么好处?
IPFS作为区块链不多的创新技术,其热度一直居高不下.IPFS挖矿效率最高的就是集群结构,那么今天我就带着大家了解IPFS的集群挖矿. 什么是集群挖矿? 集群(cluster)就是计算机集群,指在 ...
- C语言可变参函数分析
code[class*="language-"], pre[class*="language-"] { color: rgba(51, 51, 51, 1); ...
- pytest进阶之fixture函数
fixture函数存在意义 与python自带的unitest测试框架中的setup.teardown类似,pytest提供了fixture函数用以在测试执行前和执行后进行必要的准备和清理工作.但是相 ...
- .NET Core 环境变量详解
一.概述 软件从开发到正式上线,在这个过程中我们会分为多个阶段,通常会有开发.测试.以及上线等.每个阶段对应的环境参数配置我们会使用不同的参数.比如数据库的连接字符串,开发环境一般我们都是连接的测试库 ...
- Java例题_39 判断奇偶后分数累加
1 /*39 [程序 39 分数累加] 2 题目:编写一个函数,输入 n 为偶数时,调用函数求 1/2+1/4+...+1/n,当输入 n 为奇数时,调用函数 3 1/1+1/3+...+1/n 4 ...