Codeforces Round #282 (Div. 1) A. Treasure (贪心)
2015-11-26 22:59
323 查看
题目链接
题意:给你一个序列,要变为完美序列,完美序列是这样的,每个位置的i左括号的个数要大于等于右括号的个数,最后左括号和有括号的数量必须相同,#可以变为1个或者多个右括号,多组解的话输出一个就可以啦。
解法:贪心,除了最后的一个#,其他的都变为1个右括号,然后检查一下。
题意:给你一个序列,要变为完美序列,完美序列是这样的,每个位置的i左括号的个数要大于等于右括号的个数,最后左括号和有括号的数量必须相同,#可以变为1个或者多个右括号,多组解的话输出一个就可以啦。
解法:贪心,除了最后的一个#,其他的都变为1个右括号,然后检查一下。
#define CF #ifndef CF #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #else #include<bits/stdc++.h> #endif // CF using namespace std; #define LL long long #define pb push_back #define X first #define Y second #define cl(a,b) memset(a,b,sizeof(a)) typedef pair<long long ,long long > P; const int maxn=100005; const LL inf=1LL<<50; const LL mod=1e9+7; string s; int a[maxn],b[maxn]; int main(){ cin>>s; int left=0,right=0,t=0; for(int i=0;i<s.length();i++){ if(s[i]=='(')left++; else if(s[i]==')')right++; else t++; } if(t+right>left)return puts("-1"); int last=left-(t-1)-right; for(int i=s.length()-1;i>=0;i--){ if(s[i]=='#'){ s[i]='@';break; } } int sum=0; for(int i=0;i<s.length();i++){ if(s[i]=='(')sum++; a[i]=sum; } sum=0; for(int i=0;i<s.length();i++){ if(s[i]==')'||s[i]=='#')sum++; else if(s[i]=='@')sum+=last; b[i]=sum; } // for(int i=0;i<s.length();i++){ // printf("%d ",a[i]); // } // puts(""); // for(int i=0;i<s.length();i++){ // printf("%d ",b[i]); // } for(int i=0;i<s.length();i++){ if(a[i]<b[i])return puts("-1"); } if(a[s.length()-1]!=b[s.length()-1])return puts("-1"); for(int i=0;i<s.length();i++){ if(s[i]=='#')printf("1\n"); else if(s[i]=='@')printf("%d\n",last); } return 0; }
相关文章推荐
- 注解:@Autowired
- colspan和rowspan
- 【(Yahoo Labs)可扩展分解机(FM)】《Birds, Apps, and Users: Scalable Factorization Machines》By Erheng Zhong and
- bzoj4071【APIO2015】巴邻旁之桥
- python下 list/dictionary
- 技术人员学习新技术的 10 个建议
- 智能家居的无线方案zigbee,z-wave,nRF24L01无线模块,各种方案的优劣势?
- [leetcode]Implement Queue using Stacks
- codeforces 584C Marina and Vasya
- iptables 应用
- MXNet Data Loading模块的设计文档(高速IO)
- Linux下GDB远程调试技术
- 4. 尚硅谷_佟刚_JavaWEB_第一个 Servlet 程序.wmv
- Oracle数据的存取与操作(与Java的对应类型)
- ios即时通讯客户端开发之-mac上搭建openfire服务器
- 前端3
- IOS图层Layer学习笔记(五)—— CATextLayer
- UIAlertView弹出框
- socket相关函数中断后重试
- 網站滲透測試實務入門--工具清單