2021-09 CCF-CSP 非零段划分 C和C++混写

本文介绍了如何使用C++实现2021年CCF-CSP非零段划分问题,涉及数据输入、排序、处理和计数非零段的步骤,并展示了关键代码段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2021-09 CCF-CSP 非零段划分 C和C++混写

前言
本次学习所用设备为微软Surface pro4,操作系统为windows10

注意事项
(1)CFF-CSP考试提交一定要使用C++编译环境 。

题目

实现代码如下

#include<cstdio>
#include<cstring>
#include<algorithm> 
#include<functional>

using namespace std;

int main()
{
	//完成第一行的输入 
	int n,i;
	scanf("%d",&n);
	int number[n+5];
	int number_temp[n+5];
	int max;
	
	//输入数据 
	for(i = 0;i < n;i++)
	{
		scanf("%d",&number[i]);
	}
	
	//对数据进行排序 
	for(i = 0;i < n;i++)
	{
		number_temp[i] = number[i];
	}
	sort(number_temp,number_temp+n,less<int>());
	
	//得到最大值 
	max = number_temp[n-1] + 1;
	 
	//得到非零段数据并且初始化 
	int not_zero_count[max+5];
	for(i = 0;i < max;i++)
	{
		not_zero_count[i] = 0;
	}
	
	//对数值进行处理 
	int p;
	int max_result;
	for(p = 1;p <= max;p++)
	{
		//对数组中的数值进行处理得到0 
		for(i = 0;i < n;i++){
			if(number[i] < p) 
			{
				number[i] = 0;
			}
		}
		
		/* 输出进行验证 
		for(i = 0;i < n;i++){
			printf("%d ",number[i]);
		}
		printf("\n");
		*/
		

		for(i = 0;i < n + 1;i++)
		{
			if((number[i] != 0) && (number[i + 1] == 0)){
				not_zero_count[p-1]++;
			}
			else if( (number[n - 2] == 0) && (number[n - 1] != 0) && (i == n - 1)){
				not_zero_count[p-1]++;
			} 
		}
		
		printf("%d\n",not_zero_count[p-1]);
	}
	
	//升序排列(默认) 
	sort(not_zero_count,not_zero_count + max,less<int>());
	max_result = not_zero_count[max - 1];
	printf("%d",max_result);
	return 0;
}
<think>好的,我现在需要回答用户关于CCF-CSP比赛规则或赛制的问题。用户已经提供了四个引用来源,我需要仔细分析这些信息,并整理出一个结构清晰的回答。 首先,我要确认用户的问题核心是CCF-CSP的赛制规则,可能包括认证级别、考试内容、评分规则、认证时间形式等方面。接下来,我需要从提供的引用中找到相关信息。 引用[1]提到CCF CSP认证是计算机软件能力认证,属于职业资格认证。引用[2]指出CSP-J/S分两个级别,不设年龄限制,面向非专业级。引用[3]补充了CSP-JS分为入门组提高组,涉及算法编程,并且提到了GESP一级认证的情况。引用[4]则强调了需要扎实的基础知识实践经验,无论是个人还是团队参赛。 接下来,我需要将这些信息整合成几个关键点。比如,认证级别分为CSP-JCSP-S,考试内容可能包括算法编程题,评分规则可能涉及题目得分等级评定,认证时间可能每年举办,形式为机试。 需要注意的是,用户提供的引用中没有详细的评分细则,比如每题分值或通过标准,所以可能需要说明具体评分规则需参考当年公告。同时,引用[2]提到了第二轮认证,可能说明赛制分为初赛复赛,但需要确认是否适用于所有级别的认证。 另外,引用[3]提到了GESP Python认证一级,这可能与CSP不同,但用户问题集中在CSP上,所以可以暂时忽略这部分,除非有直接关联。 整理时还要确保回答结构清晰,分点列出,并自然地添加引用标识。最后,生成的相关问题需要与CCF-CSP的赛制相关,比如认证难度、备考方法、与其他竞赛的区别等。 现在需要检查是否有遗漏的信息或可能的错误。例如,引用[2]提到CSP-J/S2020第二轮认证,可能意味着CSP-J/S分为两轮,但引用[4]没有明确说明,因此需要谨慎表述,指出通常分为两轮,但具体以官方公告为准。 总结下来,回答应包含以下几个部分:认证级别、考试内容、评分规则、认证时间形式,以及注意事项。每个部分引用对应的来源,并在末尾生成相关问题。</think>### CCF CSP比赛规则与赛制详解 #### 1. **认证级别与分组** CCF CSP认证分为**非专业级别(CSP-J/S)****专业级别**。其中: - **CSP-J(入门组)**:面向算法编程基础较弱的初学者。 - **CSP-S(提高组)**:面向有一定编程算法能力的学习者[^3]。 - 专业级别认证(如GESP)则针对更高级别的编程能力评估,例如Python一级认证等[^3]。 #### 2. **考试内容** - **题型**:以算法编程题为主,涵盖数据结构、动态规划、图论等计算机科学核心内容。 - **形式**:上机编程,需在限定时间内完成题目并提交代码[^4]。 - **难度分级**:CSP-J题目相对基础,CSP-S题目复杂度更高,涉及更深入的算法设计。 #### 3. **评分规则** - **得分机制**:每题按测试用例通过比例得分,例如某题有10个测试点,通过6个则得60%分数[^2]。 - **等级评定**:根据总分划分等级(如A/B/C),具体分数线由CCF官方在考试后公布[^2][^4]。 #### 4. **认证时间与形式** - **频率**:每年举办多轮认证,例如CSP-J/S通常分为初赛复赛两轮。 - **初赛**:多为笔试或在线理论考试,筛选进入复赛的选手。 - **复赛**:上机编程实践,决定最终成绩[^4]。 #### 5. **参赛资格与注意事项** - **资格**:无年龄、职业限制,学生在职人员均可报名。 - **团队参赛**:部分赛事允许团队协作,但需遵守具体规则[^4]。 - **认证用途**:CSP成绩可作为高校录取、企业招聘的参考依据[^1]。 #### 注意事项 - 具体赛制可能因年份调整,需以**CCF官方公告**为准。 - 编程语言通常支持C++、Java、Python等,需提前确认环境要求。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值