牛客春招刷题训练营-2025.4.28题解

1 活动地址: 牛客春招刷题训练营 - 编程打卡活动

简单题 小美的因子查询

存在某个因子是偶数等价于 有一个因子是
直接判断 能否被 整除。

#include <bits/stdc++.h>
using namespace std;
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int t;
    cin >> t;
    while (t--) {
        int x;
        cin >> x;
        cout << (x % 2 ? "NO" : "YES") << '\n';
    }
    return 0;
}

中等题 跳台阶扩展问题

递归解法:
为跳上 级台阶的方案数。
不难得到

#include <bits/stdc++.h>
using namespace std;
int f(int n) {
    if(n == 0) return 1;
    int res = 0;
    for(int i = 0; i <= n - 1; i++)
        res += f(i);
    return res;
}
int main() {
    int n;
    cin >> n;
    cout << f(n) << '\n';
    return 0;
}

更优的解法:
列出前几项:
猜测:
证:
所以从第 项开始就是等比数列。
注意
所以直接输出

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

int main() {
    int n;
    cin >> n;
    cout << (1 << (n - 1)) << '\n';
}

困难题 能量项链

又双叒叕是区间dp。

是合并了 之间合并了所有珠子的能量值。这个区间合并后的珠子的头标记是 ,尾标记是 ,注意是左闭右开区间,还有 可能小于 ,是因为区间跨越了 下标,是由 这两段拼起来的。
仍然是按长度从短到长枚举, 枚举到
枚举区间端点时,因为这是一个环,所以访问数组下标时需要对 取模,即
枚举断点 ,表示 合并了, 的取值应属于 ,再取模
因为dp表示的区间是左闭右开区间,转移方程:

注意转移过程中不要取模!long long 足够存下最大值。
最后输出 的最大值。
fun fact:本题答案不用对 取模也能通过……

#include <bits/stdc++.h>
using namespace std;
long long dp[202][202];
long long a[202];
int main() {
    int n;
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    for (int len = 2; len <= n; len++) {
        for (int i = 0; i < n; i++) {
            int l = i, r2 = i + len;
            for (int j2 = i + 1; j2 < r_; j2++) {
                int r = r2 % n;
                int j = j2 % n;
                dp[l][r] = max(dp[l][r % n], dp[l][j] + dp[j][r] + a[l] * a[j] * a[r]);
            }
        }
    }
    long long ans = 0;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            ans = max(ans, dp[i][j]);
        }
    }
    cout << ans % 1000000007 << '\n';
    return 0;
}
#牛客春招刷题训练营#
全部评论

相关推荐

09-16 17:32
门头沟学院 Java
顺顺超爱学:1.熟悉Java编程语言,熟悉集合,多线程,IO,反射等核心知识,了解线程池,ThreadLocal等进阶知识; 2.熟悉Mysql数据库,熟练使用sql,熟悉索引,存储引擎,事务原理,MVCC,锁机制,了解sql优化; 3.熟悉Redis缓存,了解常见的数据类型,了解缓存常见问题及其解决方案,了解使用Redis实现的分布式锁方案; 4.熟悉Javaweb开发框架,熟悉spring,springmvc,mybatis等,了解IOC,AOP等; 5.熟悉微服务开发框架,熟悉SpringBoot,SpringCloud,包括Nacos,OpenFeign,Gateway等核心组件; 6.熟悉Rabbitmq消息队列,熟练使用消息模型,了解架构,消息可靠性,死信队列,延迟消息等;
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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