【CSDN竞赛】第十期解题报告

这应该是站内相对详细的解题报告吧。
转载思路请@本人。

感想

关于自己

这一次想复杂了,第三题打了个较难的思路,导致时间过长。
第四题一开始读错题了,调了半天才 90 90 90分。
最终得分 97.5 97.5 97.5,痛失前五 Q A Q QAQ QAQ
自己的问题,下次时间要均匀分配一些,不要想复杂了(毕竟 C S D N CSDN CSDN的题目难度大多都不高)。
听说有人抱怨考第一就作弊,其实十几分钟打完我都不信,作弊也说得过去。

关于平台

有一个地方:每次测评和提交都有冷却时间(痛,太痛了)。
求求系统冷却快一点吧,好浪费时间的(特别是冷却 15 15 15秒)。
题目质量再次上升,但不多。
下次什么时候出点数据结构,让前几名的去水水?
其实可以向社会征集题目,然后经过查重和验题放进题库,不过提供题目的人通过就不能增加做题数量或参加比赛(我个人的建议)。

第一题 (难度:入门)

题目描述

已知存在一个长度为 n n n的整数序列 A A A A A A中所有元素按照从小到达的顺序进行排序。 现在执行操作倒置一段序列。 请找到 A A A序列里的倒置子序列。

100分做法

因为只有一段序列不同,所以找到最左边不相同的和最右边不相同的(与排序后相比),然后输出整段区间即可。

C + + C++ C++代码如下:

#include<bits/stdc++.h>
using namespace std;
int a[1005]={
   },b[1005]={
   },c[1005]={
   },n,l=1000,r=0;
int main()
{
   
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
   
		scanf("%d",&a[i]);
		b[i]=c[i]=a[i];
	}
	sort(a+1,a+n+1);
	for(int i=1;i<=n;i++)
	{
   
		if(b[i]!=a[i])b[i]=0;
		else b[i]=1;
	}
	for(int i=1;i<=n;i++)if(b[i]==0){
   l=min(l,i);r=max(r,i);}
	if(l==1000)l=0;
	printf("%d %d\n",l,r);
	return 0;
}

第二题 (难度:简单)

题目描述

现在有一截楼梯,根据你的腿长,你一次能走 1 1 1级或 2 2 2级楼梯,已知你要走 n n n级楼梯才能走到你的目的楼层,请实现一个方法,计算你走到目的楼层的方案数。

100分做法

典型的递推题,也是斐波那契数列,具体思路学了递推就知道了。

C + + C++ C++代码如下:

#include<bits/stdc++.h>
using namespace std;
long long a[100];
int n;
int main
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值