zoj 3829 Known Notation The 2014 ACM-ICPC Asia Mudanjiang Regional Contest K 贪心
2014-10-16 19:55
543 查看
传送门:2014牡丹江区域赛K题
求数字与符号构成的字符串至少经过多少次操作可以变成一个合法的算术字符串。操作可以在任意位置添加数字或者交换任意两个字符的位置
贪心策略题。
首先,数字的总数至少应该比符号数多1,若不足则优先在整个字符串的开头补足这么多个数。
然后从字符串开头从头到尾扫一遍,遇到数字则当前的数字数加1,
遇到符号,如果当前数字数大于等于2,则数字数减1。否则进行一次换位操作,即当前统计的数字数加1,并且总的操作数加1。
不用担心之后遇到换位位置的数字重复统计的问题。因为优先补足了数字量,每次换位的时候都是优先把最靠后的数字换到前面,因此如果扫到某一位的数字已经是换过位的话,那么就说明当前的换位次数已经能够满足使得整个字符串合法了
求数字与符号构成的字符串至少经过多少次操作可以变成一个合法的算术字符串。操作可以在任意位置添加数字或者交换任意两个字符的位置
贪心策略题。
首先,数字的总数至少应该比符号数多1,若不足则优先在整个字符串的开头补足这么多个数。
然后从字符串开头从头到尾扫一遍,遇到数字则当前的数字数加1,
遇到符号,如果当前数字数大于等于2,则数字数减1。否则进行一次换位操作,即当前统计的数字数加1,并且总的操作数加1。
不用担心之后遇到换位位置的数字重复统计的问题。因为优先补足了数字量,每次换位的时候都是优先把最靠后的数字换到前面,因此如果扫到某一位的数字已经是换过位的话,那么就说明当前的换位次数已经能够满足使得整个字符串合法了
/****************************************************** * File Name: k.cpp * Author: kojimai * Creater Time:2014年10月16日 星期四 19时49分44秒 ******************************************************/ #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<iostream> using namespace std; #define FFF 1005 char s[FFF]; int main() { int keng; scanf("%d",&keng); while(keng--) { scanf("%s",s); int cnt=1; for(int i = 0;s[i] != '\0';i++) { if(s[i]=='*') cnt++; else cnt--; } if(cnt<0) cnt=0; int ans=cnt,num=cnt; for(int i=0;s[i]!='\0';i++) { if(s[i]=='*') { if(num>=2) { num--; } else { ans++; num++; } } else num++; } cout<<ans<<endl; } return 0; }
相关文章推荐
- zoj 3829 Known Notation (The 2014 ACM-ICPC Asia Mudanjiang Regional Contest K题) 贪心
- zoj3829 Known Notation --- 2014 ACM-ICPC Asia Mudanjiang Regional Contest
- ZOJ 3829 Known Notation(模拟+YY)——The 2014 ACM-ICPC Asia Mudanjiang Regional Cont
- The 2014 ACM-ICPC Asia Mudanjiang Regional Contest - K Known Notation
- zoj3829 Known Notation --- 2014 ACM-ICPC Asia Mudanjiang Regional Contest
- ZOJ 3819 Average Score The 2014 ACM-ICPC Asia Mudanjiang Regional Contest
- zoj 3820 Building Fire Stations The 2014 ACM-ICPC Asia Mudanjiang Regional Contest B题 树的直径
- ZOJ 3822 Domination / The 2014 ACM-ICPC Asia Mudanjiang Regional Contest
- ZOJ 3817Chinese Knot(The 2014 ACM-ICPC Asia Mudanjiang Regional First Round)
- zoj 3809 The Himalayas 水题 The 2014 ACM-ICPC Asia Mudanjiang Regional First Round
- zoj3822 Domination (The 2014 ACM-ICPC Asia Mudanjiang Regional Contest D题)概率dp
- zoj 3820 Building Fire Stations The 2014 ACM-ICPC Asia Mudanjiang Regional Contest bfs
- uva 7008 The 2014 ACM-ICPC Asia Mudanjiang Regional Contest 【部分题解】
- The 2014 ACM-ICPC Asia Mudanjiang Regional Contest(2014牡丹江区域赛)
- zoj 3811 Untrusted Patrol 图论 The 2014 ACM-ICPC Asia Mudanjiang Regional First Round
- The 2014 ACM-ICPC Asia Mudanjiang Regional Contest - D
- The 2014 ACM-ICPC Asia Mudanjiang Regional First Round C ZOj 3811
- zoj 3811 Untrusted Patrol The 2014 ACM-ICPC Asia Mudanjiang Regional First Round C
- The 2014 ACM-ICPC Asia Shanghai Regional Contest - I - Defeat the Enemy (贪心+multiset)UVALive - 7146
- The 2014 ACM-ICPC Asia Mudanjiang Regional First Round C ZOj 3811