14牡丹江现场赛K zoj3829 Known Notation

Known Notation


Time Limit: 2 Seconds      Memory Limit: 65536 KB


Do you know reverse Polish notation (RPN)? It is a known notation in the area of mathematics and computer science. It is also known as postfix notation since every operator in an expression follows all of its operands. Bob is a student in Marjar University. He is learning RPN recent days.

To clarify the syntax of RPN for those who haven‘t learnt it before, we will offer some examples here. For instance, to add 3 and 4, one would write "3 4 +" rather than "3 + 4". If there are multiple operations, the operator is given immediately after its second operand. The arithmetic expression written "3 - 4 + 5" in conventional notation would be written "3 4 - 5 +" in RPN: 4 is first subtracted from 3, and then 5 added to it. Another infix expression "5 + ((1 + 2) × 4) - 3" can be written down like this in RPN: "5 1 2 + 4 × + 3 -". An advantage of RPN is that it obviates the need for parentheses that are required by infix.

In this problem, we will use the asterisk "*" as the only operator and digits from "1" to "9" (without "0") as components of operands.

You are given an expression in reverse Polish notation. Unfortunately, all space characters are missing. That means the expression are concatenated into several long numeric sequence which are separated by asterisks. So you cannot distinguish the numbers from the given string.

You task is to check whether the given string can represent a valid RPN expression. If the given string cannot represent any valid RPN, please find out the minimal number of operations to make it valid. There are two types of operation to adjust the given string:

  1. Insert. You can insert a non-zero digit or an asterisk anywhere. For example, if you insert a "1" at the beginning of "2*3*4", the string becomes "12*3*4".
  2. Swap. You can swap any two characters in the string. For example, if you swap the last two characters of "12*3*4", the string becomes "12*34*".

The strings "2*3*4" and "12*3*4" cannot represent any valid RPN, but the string "12*34*" can represent a valid RPN which is "1 2 * 34 *".

Input

There are multiple test cases. The first line of input contains an integer T indicating the number of test cases. For each test case:

There is a non-empty string consists of asterisks and non-zero digits. The length of the string will not exceed 1000.

Output

For each test case, output the minimal number of operations to make the given string able to represent a valid RPN.

Sample Input

3
1*1
11*234**
*

Sample Output

1
0
2水贪心,一开始的时候若不够lenofstar+1,放置lenofstar+1-lenofnumber个数字在前面,然后对不满足formerlenofnumber==formerlenofstar+1的星号都调到最后面和数字交换就行,注意最后一个如果是数字再和星号换回来
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
char maz[2000];
int len,lenstar,addnum,addstar,lennum;
int main(){
    int T;
    scanf("%d",&T);
    while(T--){
        scanf("%s",maz);
        len=strlen(maz);addstar=lenstar=addnum=lennum=0;
        for(int i=0;i<len;i++){
            if(maz[i]==‘*‘)lenstar++;
            else lennum++;
        }
        if(lenstar==0){
            puts("0");
            continue;
        }
        int op=0;
        if(lennum<lenstar+1){
            addnum=lenstar+1-lennum;
        }
        op+=addnum;
        int bakpnt=len;
        for(int i=0;i<len;i++){
            if(maz[i]==‘*‘){
                if(addnum<addstar+2){
                    bakpnt--;
                    while(maz[bakpnt]==‘*‘){
                        bakpnt--;
                    }
                    swap(maz[bakpnt],maz[i]);
                    op++;
                }
            }
            if(maz[i]==‘*‘)addstar++;
            else addnum++;
        }
        if(maz[len-1]!=‘*‘)op++;
        printf("%d\n",op);
    }
    return 0;
}

  

时间: 2024-10-13 14:45:14

14牡丹江现场赛K zoj3829 Known Notation的相关文章

14牡丹江现场赛 D ZOJ 3822 Domination

Domination Time Limit: 8 Seconds      Memory Limit: 131072 KB      Special Judge Edward is the headmaster of Marjar University. He is enthusiastic about chess and often plays chess with his friends. What's more, he bought a large decorative chessboar

【解题报告】牡丹江现场赛之ABDIK ZOJ 3819 3820 3822 3827 3829

那天在机房做的同步赛,比现场赛要慢了一小时开始,直播那边已经可以看到榜了,所以上来就知道A和I是水题,当时机房电脑出了点问题,就慢了好几分钟,12分钟才A掉第一题... A.Average Score 题目大意:给定A序列和B序列,长度分别是n和m,告诉你A序列中的n-1个数和B序列的m个数,求剩下的那个A序列中的数满足:将这个数从A序列移除,然后添加到B序列,使得A序列的平均值变小,B序列的平均值变大.求这个数的取值范围(是整数) 解题思路:求出A序列剩下的n-1个数的平均值,和B序列的平均值

2014ACM/ICPC亚洲区域赛牡丹江现场赛总结

不知道如何说起-- 感觉还没那个比赛的感觉呢?现在就结束了. 9号.10号的时候学校还评比国奖.励志奖啥的,因为要来比赛,所以那些事情队友的国奖不能答辩,自己的励志奖班里乱搞要投票,自己又不在,真是无语了--烦得要死,然后在这些事情还没处理好之前我们就这样10号中午从地大去北京站上火车了--那时真感觉这场带着这种心情来现场赛感觉要打铁了-- 然后10号晚上队友的国奖让琦神帮答辩完了,得国奖无疑了,然后自己的励志奖也定下来一定得了,在火车上的我们也松了一口气,不能因为来比赛国奖励志奖都不得是不--

弱渣的牡丹江现场赛之旅流水账

下午就要坐卧铺赶回北京了,闲来无事,写个总结,给以后的自己看. 由于孔神要保研面试,所以只有我们队里三个人上路.我们是周五坐的十二点出发的卧铺,一路上不算无聊,恰巧邻床是北航的神犇,于是下午和北航神犇玩了一段时间的杀人游戏,晚上还旁观昂神与众神谈论职场形式,未来出路,觉得听着有豁然开朗的感觉(听说网上卖菜比搞IT赚的更多,也是醉了),无限YM中...不过虽然是卧铺,想入睡也不是那么容易,睡睡醒醒,也挺折腾 第二天七点多到的牡丹江,感觉虽然都是东北,不过这个小城显然不如我家沈阳繁华,尤其是大早上,

zoj 3819(牡丹江现场赛A题)

马上要去上海了,刷刷现场赛的题找找感觉~~~ 这题.......额,没什么好说的,太水.. ZOJ Problem Set - 3819 Average Score Time Limit: 2 Seconds      Memory Limit: 65536 KB Bob is a freshman in Marjar University. He is clever and diligent. However, he is not good at math, especially in Mat

2014ACM/ICPC亚洲区域赛牡丹江站现场赛-K ( ZOJ 3829 ) Known Notation

Known Notation Time Limit: 2 Seconds      Memory Limit: 65536 KB Do you know reverse Polish notation (RPN)? It is a known notation in the area of mathematics and computer science. It is also known as postfix notation since every operator in an expres

ZOJ 3829 Known Notation(字符串处理 数学 牡丹江现场赛)

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5383 Do you know reverse Polish notation (RPN)? It is a known notation in the area of mathematics and computer science. It is also known as postfix notation since every operator in an ex

ACM学习历程——ZOJ 3829 Known Notation (2014牡丹江区域赛K题)(策略,栈)

Description Do you know reverse Polish notation (RPN)? It is a known notation in the area of mathematics and computer science. It is also known as postfix notation since every operator in an expression follows all of its operands. Bob is a student in

zoj 3829 Known Notation(2014年牡丹江区域赛k题)

Known Notation Time Limit: 2 Seconds      Memory Limit: 131072 KB Do you know reverse Polish notation (RPN)? It is a known notation in the area of mathematics and computer science. It is also known as postfix notation since every operator in an expre