1.22闲话
推歌:夏虫/洛天依
生贺曲里最喜欢的一首!光与影的对白感觉对我感触都没这个更大
我最喜欢的歌之一了算是,之前比较难受的时候都会听一下,以至于这首歌的百度词条都是我编辑的,在B站买的第一个个性装扮也是这个,第一件买的周边也是九周年的(是啥忘了),所以一直比较感激LS和人形兎,不然估计就在之前那几次考崩直接 AFO 变成 whker 了
非常不好的是这个图是我传上去的,但是现在有了百度百科的水印
今天比较无意义,快期末了所以搞了搞whk
新的贪心策略被 \(jijidawang\) 给\(\textbf{hack}\)了,寄
昨天模拟赛T3真的不能贪心吗?
然后代码打完发现思路没过,但是代码过了 \(jijidawang\) 的 \(\textbf{hack}\)
所以这是一个接近正解的贪心?但是还是被 \(\text{AcWing}\) 上的数据制裁了
初版贪心思路大概就是去用一个小根堆去存长度,对应的两个括号位置,然后直接去删去所有堆顶取出来的两个括号位置之间的所有括号,让ans加上其中的长度
然后好像过了几个 hack ,又被新的 hack 给 hack 了
我的悲伤逆流成河后面忘了然后放个错误代码吧
#include<bits/stdc++.h>
using namespace std;
inline int read(){
int f=1,s=0;char ch=getchar();
while(ch<'0'||'9'<ch){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){s=s*10+ch-'0';ch=getchar();}
return f*s;
}
string S1;
signed main(){
int ans=0;
cin>>S1;
while(!S1.empty()){
string S2;
priority_queue<pair<int,pair<int,int> > > Q;
for(int i=0;i<S1.size();i++)
if(S1[i]=='('&&S1[i+1]==')')
S1[i]=' ',
S1[i+1]=' ';
else if(S1[i]=='['&&S1[i+1]==']')
S1[i]=' ',
S1[i+1]=' ';
for(int i=0;i<S1.size();i++)
if(S1[i]!=' ')
S2+=S1[i];
swap(S2,S1);
if(S1.empty())
break;
for(int i=0;i<S1.size();i++)
if(S1[i]==')')
for(int j=i;j>=0;j--)
if(S1[j]=='('){
Q.push(make_pair(-(i-j),make_pair(i,j)));
break;
}
else if(S1[i]==']')
for(int j=i;j>=0;j--)
if(S1[j]=='['){
Q.push(make_pair(-(i-j),make_pair(i,j)));
break;
}
if(!Q.empty()){
int q1=Q.top().first,tot=0;
pair<int,int> q=Q.top().second,p[105];
Q.top();
while(q1==Q.top().first){
p[++tot]=Q.top().second;
Q.pop();
}
for(int j=q.second;j<=q.first;j++){
S1[j]=' ';
}
ans+=q.first-q.second-1;
}
else{
ans+=S1.size();
break;
}
}
cout<<ans;
}
提供来自 \(jijidawang\) 和 \(AcWing\) 的几组 \(Hack\)
-
[(])
-
([[[[[[[[)]]]]]]]]
-
[(])]
-
)([[[][](])[][))(]]])(]][(]))))((]()[)[())]]]])([)[))[)))])]](()[)][[[)](][[[)[](]()](][(([)(]
这个比较长所以带个输出:36