水题堆2.S - 复习时间

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int t,i,j,m,n;
    long long s[42],q[42],f[42],u,max;
    scanf("%d",&t);
    while(t--){
        scanf("%d%d",&n,&m);
        for(i=0;i<=n-1;i++){
            scanf("%lld",&s[i]);
        }
        for(i=0;i<n-1;i++){
            for(j=i;j<=n-1;j++){
                if(s[i]>s[j]){
                    u=s[i];
                    s[i]=s[j];
                    s[j]=u;
                }
            }
        }
       // printf("%lld,%lld\n",s[0],s[1]);
        f[0]=(s[1]-s[0])*(s[1]-s[0]);
        //printf("%lld\n",f[0]);
        for(i=1;i<n-1;i++){
            f[i]=(s[i+1]-s[i])*(s[i+1]-s[i])+f[i-1];
        }
        for(i=m;i<n-1;i++){
            f[i]=f[i]-f[i-m];
        }
        q[0]=(100-s[0])*(100-s[0]);
        max=q[0];
        for(i=1;i<=n-1;i++){
            q[i]=f[i-1]+(100-s[i])*(100-s[i]);
            //printf("%lld\n",s[1]);
            max=max>q[i]?max:q[i];
        }
        printf("%lld\n",max);
    }
    return 0;
}

现在看当时写的代码感觉当时的思路是错的,而且不需要考虑那么多,(x+y)^2>x^2+y^2,所以只要找到难度最低的就行

### 三级标:CCF-S 认证考试复习资料与备考指南 CCF-S(计算机软件能力认证提高级)是信息学竞赛体系中的重要组成部分,面向具备一定编程基础的考生,考查其算法设计、程序实现和问解决能力。备考过程中,需要系统性地掌握编程语言、数据结构、常用算法和解策略。 #### 编程语言基础 CCF-S 考试通常使用 C++、Python 或 Pascal 作为编程语言,其中 C++ 在竞赛中最为常见。考生应熟练掌握基本数据类型,如整型(int)、浮点型(double/float)、字符型(char)和布尔型(bool),并理解其在不同场景下的使用方式[^4]。此外,控制结构(如条件语句、循环语句)和函数的使用也是必须掌握的内容。 #### 数据结构与算法 近年来,CCF-S 的考点逐渐向算法与数据结构倾斜。2024 年数据显示,该模块在考试中占比达到 52%[^2]。因此,考生应重点掌握线性结构(如数组、链表、栈、队列)、树结构(如二叉树、、并查集)、图结构(如最短路径、最小生成树)等基本数据结构,并熟悉常用算法,如排序、查找、动态规划、贪心算法、回溯算法等。 #### 解技巧与训练方法 在备考过程中,建议结合历年真进行训练,尤其是完善程序和边界条件分析。例如,2024 年的真中涉及循环条件 `left <= right` 的临界值验证,这要求考生具备良好的逻辑思维和调试能力。此外,建议使用在线判平台(如洛谷、牛客网、Codeforces)进行模拟练习,提升代码实现速度和调试能力。 #### 推荐复习资料 - **官方资料**:参考 CCF 官方发布的 CSP-J/S 考试大纲和样,了解考试范围和型分布。 - **书籍推荐**: - 《算法竞赛入门经典》(刘汝佳) - 《算法导论》(Thomas H. Cormen) - 《C++ Primer》 - **在线资源**:可参考 优快云 博客中的 CSP 初赛培训计划及学习要点,获取历年真解析和备考策略[^3]。 #### 模拟测试与错分析 建议考生定期进行模拟测试,模拟真实考试环境,提升时间管理和心理素质。测试后应认真分析错,总结常见错误类型,如边界条件判断错误、数据类型溢出、逻辑错误等,并通过 AI 工具进行针对性训练,提高代码质量与算法思维能力。 #### 代码示例:常用排序算法(C++) ```cpp #include <iostream> #include <vector> using namespace std; // 冒泡排序 void bubbleSort(vector<int>& arr) { int n = arr.size(); for (int i = 0; i < n - 1; ++i) { for (int j = 0; j < n - i - 1; ++j) { if (arr[j] > arr[j + 1]) { swap(arr[j], arr[j + 1]); } } } } int main() { vector<int> nums = {64, 34, 25, 12, 22, 11, 90}; bubbleSort(nums); for (int num : nums) { cout << num << " "; } return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值