D题为啥不能根据括号对数的奇数偶数情况直接求呢?
如果有偶数对括号(n/2)%2==0,我一定能凑n/4组a,b交替的组合,如果a==b,那么就是max(a,b)和不染色的组合。
奇数也同理。
但按这个思路,只能过40分。DP的思路确实能过,但没有想通为啥这样不能过。
#include<bits/stdc++.h>
using namespace std;
stack<char> s;
int dp[1005];
int n,a,b;
string line;
int main(){
cin>>n>>a>>b;
int max_num, min_num;
max_num=max(a,b);
min_num=min(a,b);
int ans=0;
if(a!=b){
if((n/2)%2==0){
ans = n/4*(a+b);
}else{
ans = ((n/4))*(a+b)+ max_num;
}
}else{
if((n/2)%2==0){
ans = n/4*(a);
}else{
ans = ((n/4))*(a+0)+ max_num;
}
}
cout<<ans;
return 0;
}
腾讯成长空间 5981人发布