2020年河北省程序设计大赛 7-7 划分

#include<bits/stdc++.h>
#define int long long
#define x first
#define y second
using namespace std;

/**
 * 状态表示f[i]为以i结尾的数组有多少个合法数组
 * 分两个集合选和不选第i个数,如果不选 f[i] = max(f[i], f[i - 1])
 * 如果选,就从0 - i扫一遍,是否有第j个数,满足sum(i, j) 在[l, r] 之间,那么f[i] = max(f[i], f[j - 1] + 1)
 **/

void solve()
{
    int n, l, r;
    cin >> n >> l >> r;
    vector<int> a(n + 1), s(n + 1), dp(n + 1);
    for (int i = 1; i <= n; i++) cin >> a[i];
    // 处理前缀和
    for (int i = 1; i <= n; i++) s[i] = s[i - 1] + a[i];
    for (int i = 1; i <= n; i++)
    {
        // 如果选第i个数,就需要找到前面的某一个j,使得满足sum(i, j) 在[l, r] 之间
        for (int j = 1; j <= i; j++)
        {
            if (s[i] - s[j - 1] >= l && s[i] - s[j - 1] <= r) 
                dp[i] = max(dp[i], dp[j - 1] + 1);
        }
        // 如果不选,那么就是dp[i - 1];
        dp[i] = max(dp[i], dp[i - 1]);
    }
    cout << dp[n] << '\n';
}

signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int T = 1;
    cin >> T;
    while (T--) solve();
    return 0;
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 20132020,河北工程大学开设了C语言程序设计课程。这门课程旨在培养学生的计算机程序设计能力,使他们能够熟练掌握C语言编程技巧,并能够利用所学知识解决实际问题。 在这门课程中,学生将学习C语言的基本语法、数据类型、运算符、控制语句、函数等知识,并通过大量的编程实践,加深对这些知识的理解和应用能力。同时,教师会引导学生学习常见编程技巧和算法,如循环、递归、数组、指针等,以及相关的调试和优化方法,培养学生良好的编程习惯和问题解决能力。 在过程中,学生将进行课堂讲解、实验操作和编程作业等多种形式的学习模式,以帮助他们掌握C语言程序设计的基本理论和实践技能。此外,学生还有机会参与课程设计、项目开发等实践性任务,来提高他们的团队协作能力和综合实践能力。 通过这门课程的学习,学生将会获得扎实的C语言编程基础,为他们今后学习更高级的编程语言打下坚实的基础。同时,这门课程还将培养学生的逻辑思维能力、问题分析和解决能力,对他们继续深入计算机科学相关领域的学习和研究具有重要意义。 总之,河北工程大学开设的C语言程序设计课程,通过系统的教学和实践,旨在培养学生扎实的编程能力和问题解决能力,为他们今后的学习和发展提供坚实的基础。 ### 回答2: 河北工程大学是一所位于中国河北省的高校,其开设了C语言程序设计课程,涵盖了2013-2020这段时间段。C语言是一种广泛应用于计算机编程的通用程序设计语言,因其简洁、高效和可移植性而受到广泛青睐。 在河北工程大学的C语言程序设计课程中,学生将学习C语言的基本语法、数据类型、运算符、流程控制、函数、数组、指针等基础知识。同时,学生还会通过实践项目来巩固所学知识,例如编写简单的程序,解决实际问题等。 通过这门课程,学生将会培养良好的编程习惯和逻辑思维能力,提高自己的问题解决能力和创新能力。此外,C语言程序设计课程还为学生打下了良好的编程基础,为进一步学习其他高级编程语言和深入计算机科学领域打下了坚实的基础。 C语言程序设计课程的教学内容和方法可能有所不同,但大体上都会包括理论授课、实践编码、课堂讨论、实验实践等教学形式。学生需要通过自己的努力和实践来掌握C语言编程技能,提高自己的编程水平。 总之,河北工程大学的C语言程序设计课程旨在培养学生的计算机编程能力,为他们未来的职业发展和学术研究提供坚实的基础。这门课程是学生在大学期间不可或缺的一门重要专业课程,让他们能够更好地理解计算机编程的原理和方法,并能够应用所学知识解决实际问题。 ### 回答3: 2013-2020期间,河北工程大学开设了C语言程序设计课程。在这门课程中,学生将学习C语言的基础知识和程序设计技巧。 在课程中,学生首先从C语言的基本语法开始学习,包括变量、数据类型、运算符、表达式、控制语句、函数等。通过课堂讲解和实践编程作业,学生能够掌握C语言的基本语法和使用方法。 随着学习的深入,学生将接触更高级的C语言编程技巧,包括指针、结构体、文件操作、动态内存分配等。这些内容可以帮助学生解决更复杂的编程问题,并提升代码的效率和可读性。 除了理论学习,学生还将进行实践编程实践。他们将通过完成各种编程作业和项目,来巩固和应用所学知识。这些作业和项目的设计目的是让学生对C语言在实际应用中的灵活运用有更深入的理解。 此外,学生还将学习到一些软件开发的基本原理和方法,例如模块化设计、调试技巧和代码优化等。这些知识可以帮助学生在以后的软件开发中更加高效和专业。 通过学习C语言程序设计,学生可以培养良好的编程思维和解决问题的能力,为以后的学习和工作打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值