首页 > 其他分享 >【洛谷】P5728 【深基5.例5】旗鼓相当的对手

【洛谷】P5728 【深基5.例5】旗鼓相当的对手

时间:2024-11-14 22:17:13浏览次数:3  
标签:同学 洛谷 换行 代码 深基 P5728 旗鼓相当 90 成绩

题目描述

现有 N 名同学参加了期末考试,并且获得了每名同学的信息:语文、数学、英语成绩(均为不超过 150 的自然数)。如果某对学生 〈i,j〉 的每一科成绩的分差都不大于 5,且总分分差不大于 10,那么这对学生就是“旗鼓相当的对手”。现在想知道这些同学中,有几对“旗鼓相当的对手”?同样一个人可能会和其他好几名同学结对。

输入格式

第一行一个正整数 N。

接下来 N 行,每行三个整数,其中第 i 行表示第 i 名同学的语文、数学、英语成绩。最先读入的同学编号为 1。

输出格式

输出一个整数,表示“旗鼓相当的对手”的对数。

输入输出样例

输入 #1

3
90 90 90
85 95 90
80 100 91

输出 #1

2

说明/提示

数据保证,2 ≤ N ≤ 1000 且每科成绩为不超过 150 的自然数。

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
	//定义二维数组A,则同学数量(行数)为N,列数为3
	int N, A[1001][3] = {0}, i, j, n, sum = 0;
	cin >> N;		//输入同学数量(行数)
	for (i = 1; i <= N; i++)		//依题目要求,舍弃第0行,从第一行开始输入成绩
	{
		for (j = 0; j <= 2; j++)		//从第0列开始
		{
			cin >> n;		//输入每名同学的三科成绩(三列)
			A[i][j] = n;
		}
	}
	for (i = 1; i <= N; i++)		//自上而下分别对每名同学讨论
	{
		for (j = 1; j <= N - i; j++)		//将该同学与ta下方的每名同学比较
		{
			if (abs(A[i][0] - A[i + j][0]) <= 5		//若满足每科分差和总分差条件
				&& abs(A[i][1] - A[i + j][1]) <= 5
				&& abs(A[i][2] - A[i + j][2]) <= 5
				&& abs(A[i][0] + A[i][1] + A[i][2] - A[i + j][0] - A[i + j][1] - A[i + j][2]) <= 10)
				sum++;		//则“旗鼓相当的对手”数量+1
		}
	}
	cout << sum;		//输出“旗鼓相当的对手”数量
	return 0;
}

———————————————————————————————————————————

———————————————————————————————————————————

对代码中函数的介绍:abs()函数

头文件为cmath,用于整数的取绝对值。

举个栗子:

cin >> a;
a = abs(a);
cout << a;

//若输入-1,则输出1

———————————————————————————————————————————

注:编写代码时遇到代码超长的情况,为了代码的美观及方便调试,需要涉及到代码的换行问题。

本代码中使用关键字的换行

关键字换行支持:+ - * / % = , | & ^ ~ || && == !=以及括号等,均能作为换行符号。

标签:同学,洛谷,换行,代码,深基,P5728,旗鼓相当,90,成绩
From: https://blog.csdn.net/2401_86982397/article/details/143694295

相关文章

  • 【题解】洛谷P11186: 三目运算
    不好玩!!!这是个树形结构,直接暴力模拟,但过不去,但是需要发现答案是个区间,我们对字符串处理时记录最大值最小值,然后到叶子节点时我们将此时的区间存起来,查询时直接二分查询这个数对于的区间就可以了。总结:不好玩!!!#include<bits/stdc++.h>usingnamespacestd;#definelllonglon......
  • 洛谷P11183 [ROIR 2018 Day2] 大数据处理
    涉及知识点:动态开点线段树,贪心前言很妙很感性直观的贪心,做完神清气爽。题意Link有一个长为\(2^k\)的序列,编号从\(0\)开始,你要在上面染色,每次只能染色\([k2^i,(k+1)2^i-1]\)的区间(\(0\leqi<k\)),问最少要染色多少次才能变成给定的目标序列。目标序列以形如\((x_1,y_1),(......
  • 【题解】洛谷P1712: [NOI2016] 区间
    P1712[NOI2016]区间我对尺取法并不敏感,所以感觉有点难度,我们想到按照区间长度排序加入使得满足单调性,直到有一个区间的覆盖次数达到了m就可以计算了,而这个就是尺取法,单调性使得我们答案总是最优的。覆盖次数就可以用线段树做,而且数据范围很大需要离散化,计算答案时注意把答案带......
  • 洛谷P1182 数列分段 Section II
    洛谷P1182数列分段SectionIIP1182数列分段SectionII数列分段SectionII题目描述对于给定的一个长度为的正整数数列,现要将其分成()段,并要求每段连续,且每段和的最大值最小。关于最大值最小:例如一数列要分成段。将其如下分段:第一段和为,第段和为,第段和为,和......
  • 洛谷P11228的C++题解
    题目分析题目题目让我们算出机器人走步后经过了多少个不重复的点这道题不是搜索!直接按照题意模拟就行了。遇到墙就向右转,不是就直行。特别注意:向右转也是一步!一个格子最多算一遍!我们可以用一个标记数组 st,走过的点就打上标记。判断走道的点有没有打上标记,有就不......
  • 洛谷题单 算法2-2 常见优化技巧
    洛谷题单算法2-2常见优化技巧单调栈单调栈最经典的应用,就是在一个数列里寻找距离元素最近的比其大/小的元素位置。模板题,寻找每个元素右边第一个比它大的元素下标。stack<int>s;for(inti=n;i>=1;i--){while(s.size()&&a[s.top()]<=a[i])s.pop();f[i]=s.......
  • 洛谷P1784.数独
    P1784数独思路这个题目最麻烦的是如何判断我们需要判断每一行,每一列,每一个九宫格这里有个小技巧,把每一行,每一列,每一个九宫格哪个数有没有被用过用数组存起来哪个数字属于哪个九宫格也可以先先存起来intid[10][10]={{0,0,0,0,0,0,0,0,0,0},{0,1,1,1,2,......
  • 洛谷题单指南-二叉堆与树状数组-P1878 舞蹈课
    原题链接:https://www.luogu.com.cn/problem/P1878题意解读:n个男女排列一行,每人舞蹈技术是ai,每次找到相邻男女舞蹈技术差值绝对值最小的一对出列,输出每对出列的人员编号。解题思路:设初始有8人编号为:12345678将12,23,34,45,56,67,78中是男女的配对编号以及a......
  • 洛谷P3654
    P3654FirstStep(ファーストステップ)-洛谷|计算机科学教育新生态FirstStep(ファーストステップ)题目背景我们Aqours,要第一次举办演唱会啦!虽然学生会长看上去不怎么支持我们的样子,可是有了理事长的支持,我们还是被允许在校内的篮球场里歌唱!歌曲也好好地准备过了,名......
  • 【题解】洛谷P7287: 「EZEC-5」魔法
    P7287「EZEC-5」魔法感觉好题有思维,但是我没认真读题,看到样例就我以为了,他让任意一个区间满足大于\(S\)即可不是全部。我们手搓一下样例就可以发现,对于加法我们不加白不加的话肯定全部的数都加上,乘法肯定要等到加完后才开始,这些都是贪心思路。然后就是开始搭配操作了,我遇到......