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; }