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 ...
随机推荐
- 六. SpringCloud网关
1. Gateway概述 1.1 Gateway是什么 服务网关还可以用Zuul网关,但是Zuul网关由于一些维护问题,所以这里我们学习Gateway网关,SpringCloud全家桶里有个很重要的组 ...
- 剑指 Offer 41. 数据流中的中位数 + 堆 + 优先队列
剑指 Offer 41. 数据流中的中位数 Offer_41 题目详情 题解分析 本题使用大根堆和小根堆来解决这个寻找中位数和插入中位数的问题. 其实本题最直接的方法是先对数组进行排序,然后取中位数. ...
- Shiro 反序列化漏洞利用
环境搭建 docker pull medicean/vulapps:s_shiro_1 docker run -d -p 80:8080 medicean/vulapps:s_shiro_1 # 80 ...
- 自己挖的坑自己填-- maven打jar包部署服务器报错
1.今天 mvn install 后把 jar 包部署到服务器上,执行 java -jar xx.jar 报 "no main manifest attribute,in xx.jar&qu ...
- nginx使用-1(源码安装nginx)
Nginx概述 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Ramb ...
- 09、集合set
集合(set) 集合是一个无序.可变.不允许数据重复的容器 s = {11,22,33,'ccc'} 无序,无法通过索引取值 可变,可以添加和删除元素 s = {11,22,33,44} s.add( ...
- x64dbg 条件断点相关文档
输入 字符格式 条件断点 Input When using x64dbg you can often use various things as input. Commands Commands ha ...
- C# 8 - Nullable Reference Types 可空引用类型
在写C#代码的时候,你可能经常会遇到这个错误: 但如果想避免NullReferenceException的发生,确实需要做很多麻烦的工作. 可空引用类型 Null Reference Type 所以, ...
- Vue中的Xss构造
首发tools:https://www.t00ls.net/thread-59512-1-1.html 存储型XSS 最近做测试的时候碰到了一个前端页面使用了Vue框架的项目 在测试XSS漏洞的过程中 ...
- Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第一篇(内附开发 demo)
简介 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系. 系列 云原生 API 网关,gRPC-Gateway V2 初探 业务流程 官方开发接入文档 ...