CF#282 Div 2 C Treasure
来源:互联网 发布:java初学书籍 编辑:程序博客网 时间:2024/04/29 22:31
题意很好理解 #字符可以替换为若干个)字符 问字符串中每个#字符应该替换为多少个)字符 满足它设定的条件
条件有 (1) 前i个字符中 (字符的数量不能少于)字符的数量 包括#替换之后!!!
(2)替换之后的字符串中 (字符的个数与)字符的个数相等
贪心的思路:
除了最后一个#字符之外 每个#字符替换一个) 最后一个#字符 来满足整个字符串中 (字符与)字符相等的条件
遇到一个(字符+1 遇到一个)字符 -1 #字符替换多少个)字符就减多少
每次循环判断 值是否小于0 是否满足条件(1)
#include <cstdio>#include <iostream>#include <cstring>#include <cmath>#include <algorithm>#include <string.h>#include <string>#define eps 1e-8#define op operator#define MOD 10009#define MAXN 100100#define INF 0x7fffffff#define MEM(a,x) memset(a,x,sizeof a)#define ll __int64using namespace std;char ch[MAXN];int num[MAXN];int main(){//freopen("ceshi.txt","r",stdin); while(scanf("%s",ch)!=EOF) { int a=0,b=0,c=0; int len=strlen(ch); int last; for(int i=0;i<len;i++) { if(ch[i]=='(') a++; if(ch[i]==')') b++; if(ch[i]=='#') { c++; last=i; } } if(a<b+c) { puts("-1"); continue; } int n=0; int flag=1; for(int i=0;i<len;i++) { if(ch[i]=='(') n++; if(ch[i]==')') n--; if(ch[i]=='#') { if(i==last) { n-=a-(b+c-1); } else n--; }// cout<<i<<" "<<n<<endl; if(n<0) { flag=0; puts("-1"); break; } } if(flag) { for(int i=1;i<c;i++) puts("1"); printf("%d\n",a-(b+c-1)); } } return 0;}
0 0
- CF#282 Div 2 C Treasure
- CF 282C Treasure
- CF#494C Treasure
- Codeforces Round #282 (Div. 2) B. Modular Equations&C. Treasure
- Codeforces Round #282 (Div. 2) C. Treasure 贪心
- CF#257 (Div. 2) C.
- CF#FF (Div. 2) C.
- CF#266 (Div. 2) C
- Codeforces Round #282 (Div. 2) Treasure
- CF 495C. Treasure 模拟(括号配对)
- Codeforces Round #282 (Div. 2) A - Digital Counter B - Modular Equations C - Treasure
- **Codeforces Round #282 (Div. 2) C. Treasure ACM解题报告(构造难题)
- #286 (Div. 2) C. Mr. Kitayuta, the Treasure Hunter
- cf Round #202 (div.2) C ------------ Mafia
- CF Round #240 (Div. 2) C
- CF#274 (Div. 2) C.(贪心+排序)
- CF#280 (Div. 2) C.(贪心)
- CF #363 C (div.2) Vacations
- PHP配置
- Linux Python找不到Tkinter模块
- VS2010通过ADO链接SQL Server的方法体会
- 学习笔记:CString封装
- 学习笔记:CString
- CF#282 Div 2 C Treasure
- listview长按事件setOnItemLongClickListener的用法
- 今日笔记:Ubuntu配置的几个坑
- 修正的KMP算法
- String、StringBuilder、StringBuffer全面解析
- RamDisk Plus内存虚拟硬盘软件
- CStdioFile的用法
- POJ 1330 解题报告
- 操作系统进程调度算法图解(FCFS、轮转、SPN、SRT、HRRN、反馈)