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

全部评论
能给一下题目链接吗?
1 回复 分享
发布于 2023-10-13 21:57 四川

相关推荐

不愿透露姓名的神秘牛友
07-15 17:24
点赞 评论 收藏
分享
06-07 17:17
嘉兴学院 教师
单单人旁的佳:你是我见过最美的牛客女孩
点赞 评论 收藏
分享
Vincent777...:实习经历可以考虑放上去,对于软件使用方面可以细化一些,比如调整为:熟悉基于LSDYNA的瞬态动力学仿真分析,熟悉基于WORKBENCH的结构拓扑优化
我的简历长这样
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务