codeforces 508E E. Arthur and Brackets(栈模拟+贪心+构造)
来源:互联网 发布:mac qq怎么发文件夹 编辑:程序博客网 时间:2024/05/22 05:14
题目链接:
codeforces 508E
题目大意:
给出一些括号,这个括号左括号的先后顺序确定,左右括号的距离的范围确定,构造一种合法的方案。
题目分析:
- 首先对于括号的问题很容易想到栈,那么我们对于每个左括号采取的决策是栈顶的左括号能够匹配就立即匹配,因为如果栈顶的括号不匹配,其他的括号没办法匹配,栈顶括号匹配的越晚,已经构造的序列就越长,那么越有可能超过下面的左括号的右边界,所以能够匹配栈顶左括号就立即匹配的方案是保证有解的最优的方案。
#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>#include <stack>#define MAX 607using namespace std;int l[MAX],r[MAX],n,pos[MAX];char ans[MAX<<1];stack<int> s;int main ( ){ while ( ~scanf ( "%d" , &n )) { while ( !s.empty()) s.pop(); int cnt = 0,i; bool flag = true; for ( i = 0 ; i < n ; i++ ) { scanf ( "%d%d" , &l[i] , &r[i] ); s.push ( i ); pos[i] = cnt; ans[cnt++] = '('; while ( !s.empty() ) { int x = s.top(); if ( pos[x]+l[x] > cnt ) break; if ( pos[x]+r[x] < cnt ) { flag = false; break; } ans[cnt++] = ')'; s.pop(); } } ans[cnt] = 0; if ( flag && s.empty()) printf ( "%s\n" , ans ); else puts ( "IMPOSSIBLE"); }}
阅读全文
0 0
- codeforces 508E E. Arthur and Brackets(栈模拟+贪心+构造)
- codeforces 508E E. Arthur and Brackets(栈模拟+贪心+构造)
- Codeforces 508E Arthur and Brackets【贪心】
- Arthur and Brackets - CodeForces 508 E dp贪心
- Codeforces 508E Arthur and Brackets
- codeforces 508 E. Arthur and Brackets
- codeforces 508E Arthur and Brackets (stack)
- codeforces 508 E. Arthur and Brackets
- codeforces288 E. Arthur and Brackets
- Codeforces Round #288 (Div. 2) E. Arthur and Brackets 贪心 区间dp
- Codeforces Round #288 (Div. 2)E. Arthur and Brackets
- Codeforces 518E Arthur and Questions【贪心+模拟】很考量代码能力的一个题
- CF 518 E Arthur and Questions(贪心,模拟乱搞)
- CodeForces Round #288 Div.2. E-Arthur and Brackets——dp/greedy
- CF 518E(Arthur and Questions-贪心)
- Arthur and Questions - CodeForces 518 E
- codeforces #306 E 550E E. Brackets in Implications(构造)
- Codeforces Round #293 (Div. 2) -- E. Arthur and Questions (思路 + 贪心)
- web开发中 颜色名称 及 颜色代码,BGB
- 锐捷校园网:小米mini路由刷Padavan固件实现wifi上网
- MySQL5.7 大大降低了半同步复制-数据丢失的风险
- CCF 2016-12 04编码(DP+哈夫曼树)
- mysql 分组、最新数据优先于group,分页同时处理
- codeforces 508E E. Arthur and Brackets(栈模拟+贪心+构造)
- hihoCoder 1513: 小Hi的烦恼(五维偏序+bitset)
- windows下构建 HotSpot 虚拟机编译环境
- [TensorFlow实战] 图片预处理
- PLSQL语法基础
- python绘制excel数据热力图
- 面试_注意事项
- ViewRootImpl 和 DecorView 分析
- POJ 3347 Kadj Squares 复杂的线段相交问题。这个题目是计算几何的扩大数据运算的典型应用 有时候扩大数据范围避免浮点误差,这个题就是应用