第5场,F

智乃的算法竞赛群友

https://ac.nowcoder.com/acm/contest/120565/F

我是把他们的公约数求出来,然后求28个td的分数,7个qsjjkktd,8个qsjjkkt,比较分数大小,有人可能觉得这样比较是不是有点草率,其实从数学是,比较的是td,qsjjkkt等模式下,每个英文字母的平均得分,所以其实很合理,然后就是动态规划,要多抽出来56个字符,因为最后一段有可能会有遗漏的几块,不能拼的很完美,如果是重复的周期性的话,一定是一样的最大,最赚,但是现在要多考虑这种情况,因为确实举例子的话是可能出现这种情况的

#include<bits/stdc++.h>
using namespace std;
using ll=long long;

const int N=113;
ll dp[N];
ll c(int m,ll a,ll b){
    for(int i=1;i<=m;i++){
        dp[i]=dp[i-1];
        if(i>=2)dp[i]=max(dp[i],dp[i-2]+b);
        if(i>=7)dp[i]=max(dp[i],dp[i-7]+a);
        if(i>=8)dp[i]=max(dp[i],dp[i-8]+a+b);
    }
    return dp[m];
}
int main(){
    ios::sync_with_stdio(0);cin.tie(0);
    int T;
    cin>>T;
    while(T--){
        ll n,a,b;
        cin>>n>>a>>b;
        ll max1=max({8*a,28*b,7*(a+b)});
        ll m=n%56;
        ll p=m+56;
        ll ans=0;
        if(n>=56){
            ans+=(n-p)/56*max1;
            ans+=c(p,a,b);
        }else{
            ans+=c(n,a,b);
        }
        cout<<ans<<'\n';
    }
    return 0;
}
全部评论

相关推荐

在喝茶的杨桃很郁闷:我简单喵两句: 1.如果不是实在没东西写不要写熟悉async await这些语法层面的东西 2.也不要写熟悉HTTP,因为http内容很多,稍微深挖一点你不会的话会让人有一种“原来你简历上面的东西都没有完全掌握”的感觉,容易给自己挖坑 3.自我评价可以删了 4.我在复习明天的面试,先mark,后面再回来继续建议
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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