感觉数据有点水 代码怎么看都是错的结果过了
查看原帖
感觉数据有点水 代码怎么看都是错的结果过了
613384
TheNorthRem楼主2023/2/22 22:27
    #include<bits/stdc++.h>
    using namespace std;

    const int MX=3e5+5;

    int dp[MX];

    int M,S,T;

    int main(){
        memset(dp,0,sizeof(dp));

        cin>>M>>S>>T;

        if(S==0){
            cout<<"Yes\n";
            cout<<0<<'\n';
            return 0;
        }

        for(int i=1;i<=T;i++){
            if(M>=10){
                dp[i]=dp[i-1]+60;
                M-=10;
            }else{
                int w=(13-M)/4;
                if(w*17<60&&(i+w<=T)&&(dp[i-1]+(w+1)*17<=S)){
                    dp[i]=dp[i-1];
                    M+=4;
                }else{
                    dp[i]=dp[i-1]+17;
                }
            }
        }

        for(int i=1;i<=T;i++){
            // cerr<<i<<' '<<dp[i]<<'\n';
            if(dp[i]>=S){
                cout<<"Yes\n";
                cout<<i<<'\n';
                return 0;
            }
        }

        cout<<"No\n";
        cout<<dp[T]<<'\n';

        return 0;
    }
2023/2/22 22:27
加载中...