第十六届蓝桥杯_省赛B组(C).可分解的正整数

题目如下

首先理解题目;可以知道可分解的数字必须满足两个条件

第一:序列的长度至少为3

第二:序列中数字是递增的(相差为1)意思就是连在一起的

通过题目给的案例来理解一下:

第一个数字3 ->[-2 -1 -1 0 1 2 3]可以

第二个数字6->[-5,-4,-3,-2,-1,0,1,2,3,4,5,6]可以

可以发现两边可以构造出对称,从而可以约掉,最后仅剩需要的数字

那有没有条件不满足呢?有的兄弟有的

我们发现题目中给出的3可以,大于的也可以,所以尝试反向推导,再由于题目中的A[N]都为正整数,所以只需要推导一下1和2即可知道全部情况
2->[-1 0 1 2]满足
1->[0,1]只能通过0和1来构造,但是题目要求序列至少为3由此可得除了1之外的其他正整数都满足题目的情况

最终的解就是求出除1之外有多少个正整数

AC代码:

cpp 复制代码
#include<iostream>
#include<algorithm>
#include<cmath>
#include<climits>
using namespace std;
int main()
{
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	int N;cin>>N;
	int ans=0;
	for(int i=1;i<=N;i++){
		int x;cin>>x;
		if(x!=1) ans++;
	}
	cout<<ans;
	return 0;
} 
相关推荐
优秀13520 小时前
计算机基础面试重点知识
网络·面试·职场和发展
hqyjzsb21 小时前
AI培训课程怎么设计才有效?
人工智能·职场和发展·aigc·产品经理·学习方法·业界资讯·设计语言
charlie1145141911 天前
嵌入式Linux驱动开发指南02——内核空间基础与硬件访问
linux·运维·c语言·驱动开发·嵌入式硬件
少司府1 天前
C++基础入门:内存管理
c语言·开发语言·c++·内存管理·delete·new·malloc
鱼很腾apoc1 天前
【学习篇】第17期 C++入门必看——类和对象全站最详篇
c语言·开发语言·学习·算法·青少年编程
Sakuyu434681 天前
C语言基础(一)
c语言·开发语言
码农的神经元1 天前
2026 MathorCup C 题实战复盘:从高血脂风险预警到 6 个月干预优化的建模思路与 Python 落地
c语言·开发语言·python
啊哦呃咦唔鱼1 天前
LeetCode双指针合集
算法·leetcode·职场和发展
alphaTao1 天前
LeetCode 每日一题 2026/4/13-2026/4/19
算法·leetcode·职场和发展
良木生香1 天前
【C++初阶】C++编程基石:编码表&&STL的入门指南
c语言·开发语言·数据结构·c++·算法