Codeforces 3D. Least Cost Bracket Sequence
来源:互联网 发布:淘宝哪家买家秀有福利 编辑:程序博客网 时间:2024/05/21 11:46
题意: 每一个问号表示可以用左括号‘(’或者右括号‘)’替代, 不同的地方、不同的替代方式花费不同, 求花费最少的替代方式能组成有效的括号序列
方法: 贪心的思想,用一个count记录括号匹配是否有效, 每次遇到 ‘(’count加1, 遇到‘)’减1, 每次遇到‘?’,都把‘?’替换为‘)’, 如果count小于1了, 说明到目前为止,‘)’的替换多了, 则从前面的替换中找出一个{替换‘)’花费 - 替换‘(’花费‘}最大的, 把它的’)‘改为’(‘,count += 2
代码:
#include <stdio.h>#include <utility>#include <queue>using namespace std;const int MAXN = 50005;int main(){#ifdef _LOCAL freopen("F://input.txt", "r", stdin);#endif char str[MAXN]; scanf("%s", &str); int count = 0; long long totalCost = 0; priority_queue<pair<int, int>> que; for(int i = 0; str[i]; ++i) { if(str[i] == '(') ++count; else if(str[i] == ')') --count; else { int a, b; scanf("%d%d", &a, &b); str[i] = ')';// 选择右括号的原因是左边的括号不能增加 --count; totalCost += b; que.push(make_pair(b - a, i)); } if(count < 0) { if(que.empty()) break; count += 2; totalCost -= que.top().first; str[que.top().second] = '('; que.pop(); } } if(count != 0) printf("-1\n"); else printf("%I64d\n%s", totalCost, str); return 0;}
0 0
- CodeForces 3D Least Cost Bracket Sequence
- codeforces 3D Least Cost Bracket Sequence
- Codeforces 3D. Least Cost Bracket Sequence
- CodeForces 3D. Least Cost Bracket Sequence
- CodeForces 3D-Least Cost Bracket Sequence
- CodeForces 3D Least Cost Bracket Sequence
- Codeforces 3D Least Cost Bracket Sequence
- Codeforces 3D Least Cost Bracket Sequence 贪心
- Codeforces 3D Least Cost Bracket Sequence (贪心)
- Codeforces 3D Least Cost Bracket Sequence --- 贪心
- Codeforces Beta Round #3 D. Least Cost Bracket Sequence
- Codeforces 3D Least Cost Bracket Sequence [贪心]
- Codeforces 3D Least Cost Bracket Sequence(贪心)
- Codeforces Beta Round #3 D. Least Cost Bracket Sequence
- CF 3D Least Cost Bracket Sequence
- CF 3D Least Cost Bracket Sequence
- D. Least Cost Bracket Sequence
- CodeForces 3D Least Cost Bracket Sequence (贪心+优先队列)
- 基于配置文件的方式来配置 AOP
- 回顾过去的2014
- c++矩阵
- Java 程序 ——感想
- UVA10341解方程(二分)
- Codeforces 3D. Least Cost Bracket Sequence
- 第十五周项目三:OJ(二)
- Android Shell、SSH、GCC安装与配置 - android手机也能编程!有木有!~
- UVA10870递推关系(矩阵乘法)
- 关于RAM的一点小见解
- 一个简单的性能计数器
- plu/sql 添加运程数据库
- UVA11021麻球繁衍
- (转)一些常用接口总线整理(素材来自网络)