本文主要是介绍Codeforces Round #282 (Div. 1) A,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题意:给出一个串,包含'(',')','#'(至少有一个)三种字符。你需要在'#'处替换为一个或多个')',使得这个串从开头到任何位置,左括号数量不少于右括号,最终左右括号数量相等。
思路:贪心,前面的'#'可以只替换一个右括号,最后一个替换为还需要的数量。难点在于判断不合法的情况,容易坑在最后一个'#'后面出现了不平衡的情况。代码写的比较挫。。。
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
#include <queue>
#include <stack>
#include <string.h>using namespace std;#define INF 2e9char str[100010];int main(){while(~scanf("%s",str)){int len=strlen(str);int cntl=0;int cntr=0;int ok=1;int cnt=0;int last=-1;for(int i=0;i<len;
这篇关于Codeforces Round #282 (Div. 1) A的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!