首页 > 其他 > 详细

UVA 12902 Reverse Polish Notation

时间:2015-07-20 12:25:04      阅读:1043      评论:0      收藏:0      [点我收藏+]
//跟wyr学的
//其实是贪心
//题解稍后补上
技术分享
 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cmath>
 4 #include<algorithm>
 5 #include<cstring>
 6 #include<cstdlib>
 7 #include<queue>
 8 #include<vector>
 9 #include<map>
10 #include<stack>
11 #include<string>
12 #define LL long long
13 
14 const int MAXN=0;
15 const int MAXM=0;
16 const int INF=2000000000;
17 
18 using namespace std;
19 
20 int T;
21 char s[100007];
22 
23 int solve(){
24     int len=strlen(s);
25     int MIN=INF;
26     int now=0;
27     int flag=0;
28     for (int i=0;i<len;i++){
29             if (s[i]==a)
30                 now++;
31             else
32                 now--;
33             if (now==MIN) flag=0;
34             if (now<MIN){
35                     MIN=now;
36                     flag=1;
37             }
38     }
39     if (MIN>=1) return now-1;
40     if (MIN==now) return 1+abs(now);
41     return 1+now-MIN*2-flag;
42 }
43 
44 int main(){
45     scanf("%d",&T);
46     for (int cas=1;cas<=T;cas++){
47             scanf("%s",s);
48             int ans=solve();
49             if (s[0]==+ && s[1]==a && s[2]==a){
50                     s[0]=a;
51                     s[1]=a;
52                     s[2]=+;
53                     ans=min(ans,solve()+2);
54             }
55             printf("Case %d: %d\n",cas,ans);
56     }
57     return 0;
58 }
59 /*
60 4
61 a
62 a+a
63 +aa
64 aa++++a
65 */
View Code

 

UVA 12902 Reverse Polish Notation

原文:http://www.cnblogs.com/baby-mouse/p/4661023.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!