【LGR-142-Div.4】洛谷入门赛 #13 考后分析与题解

洛谷入门赛 #Round 13


比赛分析与总结

这次考试整体来说比较简单,几乎都是暴力,模拟,没有涉及到高级一点的算法和数据结构。
我考试时得了4265分,其实每道题想一想都会做,考试时没有AC的原因在于

1.时间不够,没有充分的时间思考。
2.看到比较长的题目就有畏难情绪,没有认真分析。
3.不够细心,忘了开long long,导致在这种赛制下丢了时间分

T1 魔方

题目背景

魔方,奇妙的玩具!一次次普通的转动,竟能将杂乱无章的色块转回到初始的、完美的状态! zyl
十分喜欢魔方,并且,在班上,复原正阶魔方就属他最快。 一天,他传纸条问她:“你会复原魔方吗?” “不会。” 没过几天,在 zyl
坐在座位上玩魔方的时候,她走了过来:“你说过要教我魔方的哦!” zyl 愣了一下,因为他印象里好像没说要教她。不过,他还是爽快地答应了。
于是,zyl 开始给她上魔方的第一课——认识魔方… 然而,还没等教会她复原魔方,zyl 就离开学校了…… zyl
能够复原一个又一个魔方,却无法复原那美好的青春……

题目描述

正阶魔方的形状是正方体,每个面由相等的若干个小正方形构成。对于 n n n n ≥ 2 n \geq 2 n2)阶魔方,它的六个面中的每个面均由
n × n n\times n n×n 个小正方形构成。

魔方的六个面被染上了两两不同的颜色,被染上色的小正方形又构成一个个小正方体,这些小正方体被称为「块」。

容易发现,每个块被染色的面的数量 x x x 均满足 1 ≤ x ≤ 3 1\leq x\leq 3 1x3。根据这个性质,魔方有三个围绕块的重要概念:

  • 角块:有三个面被染色的块。一个 n n n 阶魔方的角块数总是 8 8 8
  • 棱块:只有两个面被染色的块。一个 n n n 阶魔方的棱块数为 12 × ( n − 2 ) 12 \times (n - 2) 12×(n2)
  • 中心块:只有一个面被染色的块。一个 n n n 阶魔方的中心块个数等于 6 × ( n − 2 ) 2 6\times (n-2)^2 6×(n2)2

现在给你一个正阶魔方的阶数 n n n,请你依次求出它的角块,棱块,中心块的数量。

输入格式

输入共一行一个整数 n n n,表示魔方的阶数。

输出格式

输出共一行三个整数,依次表示 n n n 阶魔方的角块,棱块,中心块的数量。

样例 #1

样例输入 #1

3

样例输出 #1

8 12 6

提示

数据规模与约定

  • 对于 40 % 40\% 40% 的数据, 2 ≤ n ≤ 17 2\leq n\leq 17 2n17
  • 对于 100 % 100\% 100% 的数据, 2 ≤ n ≤ 1 0 6 2\leq n \leq 10^{6} 2n106

分析

前面的题目背景和题目描述根本不用看,那些什么块什么涂色的直接跳过(我直到现在都还没看 ),这种题直接瞄准给出的公式即可(这道题真善良,公式都给了 )。

AC代码

#include <bits/stdc++.h>
using namespace std;
long long n;
int main(){
   
   
	cin >> n;
	cout << 8 << " " << 12 * (n - 2) << " " << 6 * (n - 2) * (n - 2);
}

注意

记得开long long.

T2 教学楼

题目背景

光阴似箭,日月如梭。去岁初秋,微风缕缕,朝阳独挂,霞光普照。
一个平凡的开学季,zyl 来到了新的学校。
当时一切充满希望,前途一片光明。

题目描述

zyl 来到新的学校。

学校很大,他很难找到自己要去哪一座教学楼。

zyl 的班主任告诉了他教室在几楼,但进入学校大门后映入眼帘的是三座教学楼:图书馆,综合楼,艺术楼。这三栋教学楼的最高楼层数分别为 3 , 5 , 9 3, 5, 9 3,5,9

现在 zyl 得知,他想要找的教室在这座三栋教学楼中的一栋中。同时,zyl 掌握了如下信息:

  • 教室所在的楼层数 n n n
  • 三栋楼的人流量 a , b , c a, b, c a,b,c(保证 a , b , c a, b, c a,b,c 两两不同)。

显然,教室所在的楼层数一定不大于其所在的教学楼的最高楼层数。在满足该条件的基础上,他又得知,教室处在所有可能的教学楼中人流量最小的一栋。

现在,请你按照上述条件,帮助他找出,他的教室处在哪栋教学楼上。

输入格式

输入共两行。

第一行一个整数 n n n,表示教室所在的楼层数。
第二行三个整数 a , b , c a, b, c a,b,c,分别代表图书馆,综合楼,艺术楼的人流量。

输出格式

输出共一行一个字符串,表示教室所在的教学楼。

其中,library 表示图书馆,comprehensive 表示综合楼,art 代表艺术楼。

样例 #1

样例输入 #1

4
20 50 100

样例输出 #1

comprehensive

样例 #2

样例输入 #2

2 
30 80 20

样例输出 #2

art

提示

样例 1 解释

教室在 4 4 4 楼,图书馆的最高楼层为 3 3 3,因此教室不可能在图书馆。而剩下两栋楼中,综合楼的人流量最小,所以教室在综合楼。

数据规模与约定

  • 对于 40 % 40\% 40% 的数据, n ≤ 3 n\le3 n3
  • 对于 100 % 100\% 100% 的数据, 1 ≤ n ≤ 9 1\leq n \leq 9 1n9 0 ≤ a , b , c ≤ 20000 0\leq a,b,c\leq 20000 0a,b,c20000,且 a , b , c a,b,c a,b,c 互不相同。

分析

分类讨论,n>5,n>3,n<=3,注意最后一种情况是小于等于

AC代码

#include <bits/stdc++.h>
using namespace std;
int n,a,b,c;
int main(){
   
   
	cin >> n >> a >> b >> c;
	if(n > 5){
   
   
		cout << "art";
		return 0;
	}
	if(n > 3){
   
   
		if(b < c) cout << "comprehensive";
		else cout << "art";
		return 0;
	}
	if(n <= 3){
   
   
		if(a < b && a < c) cout << "library";
		else if(b < a && b < c) cout << "comprehensive";
		else cout << "art";
		return 0;
	}
}

T3 课桌

题目背景

各式各样的课桌,封存了青春最宝贵的东西。书本、文具都是其次,桌子里往往还会有零食,玩具,饮料……
当然,课桌能装的东西特别多,每个人的课桌都是不一样的。课桌里装的东西可能比书包里的东西还丰富。 zyl
的课桌里面十分乱,不过他总能轻松找到一本格子本……有时候,甚至还会有一个象棋的棋盘,这是为什么呢? 一切美好都起源于一次座位的调换……
让我们帮 zyl 回忆起那一幕……

题目描述

自习课上,同学们可以适当地互相换座位。zyl 想要换到她的后面一排……

可是,想要换到那里,需要依次 n n n
个同学换座位。大家都很爱学习,课桌上都摆着若干本书。与一个同学换座位,虽然不需要把整个课桌都调换位置,但需要把双方课桌上的书调换位置。

zyl 自己有 x x x 本书。他每和一个人换座位,都会把双方课桌上的书调换位置,消耗双方书数量之和的体力。

请你求出,他最后消耗的体力的数量。

输入格式

输入共两行。

第一行两个整数 n , x n, x n,x,分别表示 zyl 换座位的路上需要经过的课桌数量和 zyl 自己课桌上的书的数量。 第二行 n n n 个整数
a 1 , a 2 , ⋯   , a n a _ 1, a _ 2, \cdots, a _ n a1,a2,,an,表示 zyl 换座位路上遇到的课桌上书本的数量。

输出格式

共一行一个整数,表示 zyl 消耗的体力值。

样例 #1

样例输入 #1

4 3 1 3 2 4

样例输出 #1

22

提示

样例 1 解释 和第一个同学换座位,花费 3 + 1 = 4 3+1=4 3+1=4 体力值, 和第二个同学换座位,花费 3 + 3 = 6 3+3=6 3+3=6 体力值, 和第三个同学换座位,花费 3 + 2 = 5 3+2=5 3+2=5 体力值, 和第四个同学换座位,花费 3 + 4 = 7 3+4=7 3+4=7 体力值。

总共花费 4 + 6 + 5 + 7 = 22 4+6+5+7=22 4+6+5+7=22 体力值。

数据范围与约定 设同学桌上书本的总数为 s s s,即 s = a 1 + a 2 + a 3 + … a n s = a_1 + a_2 + a_3 + \dots a_n s=a1+a2+a3+an

  • 对于 60 % 60\% 60% 的数据, n ≤ 1000 n\leq 1000 n1000 x ≤ 100 x \leq 100 x100 a i , s ≤ 1 0 7 a_i,s \leq 10^7 ai,s107
  • 对于 100 % 100\% 100% 的数据, 1 ≤ n ≤ 2 × 1 0 6 1\leq n\leq 2\times10^{6} 1n2×106 1 ≤ x ≤ 1 0 4 1\leq x \leq 10^{4} 1x104 1 ≤ a i , s ≤ 2 × 1 0 9 1\leq a_i,s\leq 2\times10^{9} 1ai,s2×109

那一天是周日,zyl 成功地换到了她的后面,放学的时候,他们下了一把五子棋……

分析

直接n*x加a数组的和,不用多说。

AC代码

#include <bits/stdc++.h>
using namespace std;
long long n,x,s,a;
int main(){
   
   
	cin >> n >> x;
	s=n*x;
	while(n--){
   
   
		cin >> a;
		s+=a;
	}
	cout << s ;
}

T4 教室

题目背景

教室很小,小到只能装下几十个人。 教室很大,大到容下我们的整个青春。 一场故事就要开始了…

题目描述

zyl 来到了新教室,数学老师想让他帮忙安排一下座位。

老师要求桌子的总数和学生的总数一样多,但是 zyl 不知道班级中一共有多少名学生。不过,在教室的后面有 n n n 个柜子,编号为 1 ∼ n 1\sim n 1n,第 i i i 个柜子由 a i × b i a_i\times b_i ai×bi 个格子组成,且每个格子都被 c i c_i ci
个学生共同使用。一个学生会且只会使用一个柜子中的一个格子。通过这些信息,zyl 就能够算出学生的总数了。

现在要把桌子排成 m m

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来自八中的小鹿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值