CCF-CSP历次考试 第一题答案合集(倒序)

终于成为了一名研究僧,学院要求CCF-CSP200分以上才能够开题,于是只好苦练自己的编程技术啦!
本文包含CCF-CSP模拟考试系统中历年考试全部第一题的答案,目前更新至202006-1,总的来说CCF-CSP考试的难度在逐年提升,近几次考试的第一题也需要动动脑子才能够做出来了。

202012-1 期末预测之安全指数

【题目背景】
期末要到了,小菜同学找到了自己的好朋友顿顿,希望可以预测一下自己这学期是否会挂科。
【题目描述】
首先,顿顿选取了如“课堂表现”、“自习时长”、“作业得分”、“社团活动参与度”等n项指标作为预测的依据。
然后,顿顿根据自己平日里对小菜的暗中观察,以百分制给每一项指标打分,即小菜同学第 i(1≤i≤n)项指标的得分 scorei 是一个 [0,100] 范围内的整数。
鉴于每一项指标的重要性不尽相同,顿顿用一个 [-10,10] 范围内的整数 wi 来表示第 i(1≤i≤n)项指标的重要程度。
最后,小菜同学期末的安全指数 定义如下:
在这里插入图片描述
其中 ReLU(x) = max(0,x) 是一种常见的激活函数。
因为使用了 ReLU 函数,安全指数一定是个非负值。
如果安全指数过低(甚至为零),则说明小菜同学这学期很可能要挂科了……
已知每一项指标的重要程度 wi 和相应的得分 scorei,快来算算小菜同学期末的安全指数吧。
【输入格式】
从标准输入读入数据。
输入的第一行包含一个正整数 n,保证 2≤n≤10^5。
接下来输入 n 行,其中第 i(1≤i≤n)行包含用空格分隔的两个整数 wi 和 scorei,分别表示第 i 项指标的重要程度和小菜同学该项的得分。
【输出格式】
输出到标准输出。
输出一个非负整数 y,表示小菜同学期末的安全指数。
【样例1输入】
6
2 60
10 100
0 70
0 0
-10 50
10 60
【样例1输出】
1220
【样例1解释】
在这里插入图片描述
【样例2输入】
2
-10 100
-1 15
【样例2输出】
0
【样例2解释】
在这里插入图片描述

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

int main() {
   
	int n;
	cin>>n;
	int w, score;
	int sum = 0;
	for(int i = 0; i < n; i++) {
   
		cin>>w>>score;
		sum += w * score;
	}
	if(sum > 0) {
   
		cout<<sum;
	} else {
   
		cout<<0;
	}
	return 0;
} 
202009-1 称检测点查询

【题目背景】
2020 年 6 月 8 日,国务院联防联控机制发布《关于加快推进新冠病毒核酸检测的实施意见》,提出对“密切接触者”等八类重点人群“应检尽检”,其他人群“愿检尽检”。
【问题描述】
某市设有 n 个核酸检测点,编号从 1 到 n,其中 i 号检测点的位置可以表示为一个平面整数坐标 (xi,yi)。
为方便预约核酸检测,请根据市民所在位置 (X,Y),查询距其最近的三个检测点。
多个检测点距离相同时,编号较小的视为更近。
【输入格式】
输入共 n+1 行。
第一行包含用空格分隔的三个整数 n、X 和 Y,表示检测点总数和市民所在位置。
第二行到第 n+1 行依次输入 n 个检测点的坐标。第 i+1 行(1≤i≤n)包含用空格分隔的两个整数 xi 和 yi,表示 i 号检测点所在位置。
【输出格式】
输出共三行,按距离从近到远,依次输出距离该市民最近的三个检测点编号。
【样例输入1】
3 2 2
2 2
2 3
2 4
【样例输出1】
1
2
3
【样例输入2】
5 0 1
-1 0
0 0
1 0
0 2
-1 2
【样例输出2】
2
4
1
【样例2解释】
在这里插入图片描述
【评测用例规模与约定】
全部的测试点满足,3≤n≤200,所有坐标均为整数且绝对值不超过 1000。
【提示】
市民到第 i 号检测点的距离 Di 可由如下公式算出:
在这里插入图片描述

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

int main(){
   
	int n;
	int posx, posy;
	cin>>n>>posx>>posy;
	multimap<int, int> checkPoints; 
	for(int i = 1; i <= n; i++) {
   
		int x, y;
		cin>>x>>y;
		int distance = pow(x - posx, 2) + pow(y - posy, 2);
		checkPoints.insert(make_pair(distance, i));
	}
	int count = 0;
	for(auto c : checkPoints) {
   
		if(count < 3) {
   
			cout<<c.second<<endl;
			count++;
		} else {
   
			break;
		}
	}
	return 0;
}
202006-1 线性分类器

【题目描述】
  考虑一个简单的二分类问题——将二维平面上的点分为A和B两类。
  训练数据包含n个点,其中第i个点(1≤i≤n)可以表示为一个三元组(xi,yi,typei),即该点的横坐标、纵坐标和类别。
  在二维平面上,任意一条直线可以表示为θ0+θ1x+θ2y=0的形式,即由θ0、θ1和θ2三个参数确定该直线,且满足θ1、θ2不同时为0。
  基于这n个已知类别的点,我们想要在平面上找到一条直线作为一个线性分类器。具体来说,这条线要把训练数据中的A、B两类点完美分隔开来,即一侧只有A类点、另一侧只有B类点。这样,对于任意一个的未知类别的点,我们就可以根据它是位于直线的哪一侧来预测它的类别了。
  在本题中我们仅需要处理m个如下查询:给定一条直线,判断它是否能将训练数据中的A、B两类点完美分开。
【输入格式】
  从标准输入读入数据。
  输入共n+m+1行。
  第一行包含用空格分隔的两个正整数n和m,分别表示点和查询的个数。
  第二行到第n+1行依次输入n个点的信息。第i+1行(1≤i≤n)包含用空格分隔的三项xi、yi和typei,分别表示第i个点的横、纵坐标和类别,其中坐标为整数、类别为一个大写英文字母A或B。
  第n+2行到第n+m+1行依次输入m个查询,第j+n+1行(1≤j≤m)包含用空格分隔的三个整数θ0、θ1和θ2,表示第j个查询中给定直线的三个参数。
【输出格式】
  输出到标准输出。
  输出共m行,每行输出一个字符串。
  第j行(1≤j≤m)输出的字符串对应第j个查询的结果:如果给定直线可以完美分隔A、B两类点,则输出Yes;否则输出No。
【样例1输入】
9 3
1 1 A
1 0 A
1 -1 A
2 2 B
2 3 B
0 1 A
3 1 B
1 3 B
2 0 A
0 2 -3
-3 0 2
-3 1 1
【样例1输出】
No
No
Yes
【样例1解释】
只有第3个查询给出的直线能将A、B两类点完美分隔。
在这里插入图片描述

【子任务】
·输入数据保证不存在恰好落在给定直线上的点;
·0<n≤10^3、0<m≤20,且A、B两类点的数量均不为0;
·所有点的坐标和给定直线的三个参数均为整数,且绝对值≤10^6;
·任意两个点的坐标不完全相同。
在这里插入图片描述

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

int main()
{
   
	int n,m;
	cin>>n>>m;
	int **p=new int*[n];
	int i,j,k;
	for(i=0;i<n;i++)
	{
   
		p[i]=new int[4]; //点信息包含x坐标、y坐标、类型、与直线位置关系 
		cin>>p[i][0]>>p[i][1];	//输入点x坐标、y坐标 
		char c;
		cin>>c;	//输入点类型 
		if(c=='A')	//类型A记为0,类型B记为1 
		{
   
			p[i][2]=0;
		}
		else
		{
   
			p[i][2]=1;
		}
	}
	int **q=new int*[m];
	for(i=0;i<m;i++)
	{
   
		q[i]=new int[3];
		cin>>q[i][0]>>q[i][1]>>q[i][2];	// 输入直线系数 
	}
	for(i=0;i<m;i++)
	{
   
		for(j=0;j<n;j++)
		{
   
			if(q[i][0]+q[i][1]*p[j][0]+q[i][2]*p[j][1]>0) //将点坐标带入直线公式,若结果>0记为1,结果<0记为0 
			{
   
				p[j][3]=1;	//点位于直线上方 
			} 
			else
			{
   
				p[j][3]=0;	//点位于直线下方 
			}
		}
		int flag=0;	//判断相同类型的点位于直线同侧标志位 
		for(j=0;j<n;j++)
		{
   
			for(k=j+1;k<n;k++)
			{
   
				if(p[j][2]==p[k][2] && p[j][3]!=p[k][3]) //若两点类型相同且与直线位置关系不同 
				{
   
					cout<<"No"<<endl;
					flag=1; //标志位改变 
					break;
				}
			}
			if(flag==1) //比较出两点类型相同且与直线位置关系不同,则结束此条直线的比较 
			{
   
				break
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源来源于网络,如有侵权,私信立删。 CSP-J/S第一轮时间 CSP-J/S第一轮分为:CSP-J1和CSP-S1。和NOIP第一轮时间一样,CSP-J/S第一认证在10月份第三个星期六进行。 CSP-J/S第一轮考察重点 第一认证为笔试或机试,主要测试选手有关计算机方面的基本知识,第一轮为资格测试。从2020年开始,全部为机试。 CSP-J/S第一轮报名方式 参加CSP-S/J两组两轮认证均须在网上注册报名,注册网站为http://rg.noi.cn。参加认证者必须如实填写个人信息报名,包括但不限于姓名、身份证号、出生日期、性别、就学(学籍学校)/就职单位等,信息一旦注册,不得修改,如有错误,责任自负。 CSP-J/S第一认证考点 省认证点由CCF授权的CSP非专业级别省认证组织单位设置。 1、第一认证点:由省认证组织单位总负责人设置,每个认证点人数不应少于20人。 2、未经批准的认证点,其认证成绩不予承认。 认证费用 第一CSP-S/J组:50元/人(该费用不包括食宿及交通费)。 CSP-J/S第一认证组成 CSP-J/S第一轮在10月份第三个星期六进行,其中CSP-J1认证时间为周六9:30-11:30,CSP-S1认证时间为周六14:30-16:30。考试时长为2小时,内容为笔试或机试(从2020年开始全部为机试),满分100分。 试由三部分组成: ① 选择(共15,每2分,共计30分) CSP-S1的前10道为单选,后10道为不定项选择(只有全部选对才得分,否则不得分);CSP-J1的前15道都是单选。 ② 程序阅读理解(共3,共计40分) 目给出一段程序(不一定有关于程序功能的说明),考生通过阅读理解该段程序进行答,分为选择和判断。 ③ 程序完善(共3,共计30分) 目给出一段关于程序功能的文字说明,然后给出一段程序代码,在代码中略去了若干个语句或语句的一部分并在这些位置给出空格,要求考生根据程序的功能说明和代码的上下文,选择对应答案 。三皆为选择
### 回答1: CCF-CSP(中国计算机学会认证系统程序员)认证考试是由中国计算机学会主办的,旨在选拔高水平的系统程序员和开发人员。该认证考试包括两个级别:初级和高级。初级考试主要测试候选人的基础知识和编程能力,高级考试则主要测试候选人的系统设计和开发能力。CCF-CSP认证考试的评分标准严格,要求考生表现出扎实的计算机理论基础和熟练的编程技巧。 为了顺利通过CCF-CSP认证考试,考生需要掌握扎实的计算机基础知识和熟练的编程技巧,并且需要在考试前进行充分的准备。以下是一些复习技巧指导: 1. 确认考试大纲 考生需要仔细阅读考试大纲,了解考试范围和型。要特别注意考试大纲中的重点内容,重点复习。 2. 提前规划复习进度 准备CCF-CSP认证考试需要时间,而时间是很宝贵的,考生需要提前规划好复习进度和复习内容,尽可能利用零散时间进行复习。 3. 多做 要想掌握CCF-CSP认证考试所需的知识和技能,考生需要多做,并针对性地练习一些经典的考。在练习中,考生需要注重练习思路和解方法,该方法可以加深对知识点的理解。 4. 关注考试动态 考试动态指的是考试历年来的趋势和变化,考生需要不断关注考试动态,了解考试趋势,及时更新复习内容和方法,以便更好地应对考试。 总之,要想通过CCF-CSP认证考试,考生需要理论基础和开发经验充足,并且需要在复习时切实遵循学科规范,灵活应用知识点,较好地掌握考试技巧,这是顺利通过CCF-CSP认证考试的关键。 ### 回答2: ccf-csp认证考试是中国计算机学会(CCF认证的一个计算机软件专业技能等级考试,也是中国IT行业里非常重要的证书之一。该考试分为初级、中级和高级三个等级,其中初级考试包含了基础的程序设计和算法等内容,中级考试中主要考察了软件工程、数据结构、算法设计和网络安全等领域的知识,而高级考试则更注重的是对软件工程和软件项目管理的理解和应用,以及对复杂系统的设计和实现方法的掌握。为了能够成功通过ccf-csp认证考试,首先需要在考前充分准备,并且需要有一些好的复习技巧,这里向大家推荐以下几点: 1.学好基础知识。初级、中级和高级csp认证考试所涉及到的内容都是建立在一定的基础知识上的。由于考试的难度逐级递增,所以建议在准备考试之前先花时间学好基础知识。 2.多做练习。做练习能够帮助我们加深对知识的理解,熟悉考试形式和规则,同时也能提高我们的答速度和准确度。 3.注意时间管理。不同级别的csp认证考试都有时限,在考试过程中需要注意时间的分配。建议在每次做练习的时候都设置一个时间限制,并逐步缩短时间限制,以提高答效率。 4.了解考试规则。在考前一定要熟悉考试规则和型,知道考试时可以携带哪些资料和工具,了解考试的答和评分规则等。 总之,ccf-csp认证考试是一项非常重要的认证考试,通过这个认证不仅可以增加个人的职业竞争力,还能证明个人在软件开发和IT行业方面的专业能力。因此,我们需要认真地准备和复习,字斟句酌地做好每一个细节,以确保顺利通过考试。 ### 回答3: ccf-csp认证考试是由中国计算机学会主办的全国性计算机考试考试内容涵盖了计算机应用、技术、算法等多个方面,分为初级、中级和高级三个等级。参加此考试不仅有助于检测个人的计算机专业水平,更能提升自身的竞争力和职业发展前景。 为了通过ccf-csp认证考试,考生需要重点复习考试要求中的各个内容模块,如数据类型、运算符、控制结构、数组、函数、文件操作等程序设计相关方面;还包括计算机网络、操作系统、数据库等计算机技术类知识;另外,还需要掌握常见算法和数据结构,如排序、查找、树等。此外,考生还需要通过大量的编程练习和模拟练习,熟悉考试型和答技巧,提升自己的完成效率和准确性。 在复习过程中,需要注重细节和实践。例如,对于程序设计相关方面,需要理解每个知识点的原理和应用场景,在编写代码时要注重细节避免出现错误。对于算法和数据结构方面,需要熟悉常见算法的实现方式和优缺点,掌握好算法的时间复杂度和空间复杂度,做到熟练掌握。 总之,通过充分准备和钻研,考生有望成功通过ccf-csp认证考试,展现自己的计算机专业能力和职业素养。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值