当前位置: 首页 > news >正文

AtCoder AT_abc413_d [ABC413D] Make Geometric Sequence

题目大意

给定一个长度为 N N N 的序列 A A A,判断是否存在一个排列使其为等比数列。

思路

观察等比数列,发现其每一项的绝对值都是有序的,所以考虑对绝对值进行从小到大的排序,然后判断邻项比是否相等。但是,当我们把代码交上去时,会发现无法通过。

于是,我举出了一个样例:

1
5
-1 -1 -1 1 1

正确的输出应是 Yes,然而程序输出了 No,因为代码不能处理公比为 -1 的一些情况。既然如此,我们加上一段特判代码:

if (绝对值都相等)
{计算正数和负数的个数if (全是正数 || 全是负数 || abs(正数 - 负数) <= 1)Yeselse No
}

顺便说一下,作者考场上写代码时 abs 那三个字母神奇地消失了,代码怎么也调不过……

代码

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;int t, n;
long long a[200010];bool cmp(long long x, long long y)
{return abs(x) < abs(y);
}bool check()
{for (int i = 2; i <= n; i++)if (abs(a[i]) != abs(a[1]))return false;return true;
}int main()
{cin >> t;while (t--){cin >> n;for (int i = 1; i <= n; i++)cin >> a[i];if (check()){int cnt1 = 0, cnt2 = 0;for (int i = 1; i <= n; i++){if (a[i] > 0)cnt1++;else cnt2++;}if (cnt1 == n || cnt2 == n || abs(cnt1 - cnt2) <= 1)cout << "Yes" << endl;else cout << "No" << endl;continue;}sort(a + 1, a + n + 1, cmp);bool flag = true;for (int i = 3; i <= n; i++)if (a[i] * a[1] != a[2] * a[i - 1]){flag = false;break;}if (flag) cout << "Yes" << endl;else cout << "No" << endl;}return 0;
}
http://www.xdnf.cn/news/1084735.html

相关文章:

  • 【Godot4】正则表达式总结与测试
  • 操作系统【2】【内存管理】【虚拟内存】【参考小林code】
  • 使用Scapy构造OSPF交互报文欺骗网络设备与主机建立Full关系
  • 20250706-12-Docker快速入门(下)-容器数据持久化_笔记
  • Redis集群和 zookeeper 实现分布式锁的优势和劣势
  • 桥梁桥拱巡检机器人cad+【4张】设计说明书+绛重+三维图
  • React 英语单词消消乐一款专为英语学习设计的互动式记忆游戏
  • 20250706-11-Docker快速入门(下)-构建Nginx镜像和Tomcat镜像_笔记
  • DTW模版匹配:弹性对齐的时间序列相似度度量算法
  • 计算机网络实验——互联网安全实验
  • 【C++】C++四种类型转换操作符详解
  • 如何使用xmind编写测试用例
  • Docker容器中安装MongoDB,导入数据
  • electron中的IPC通信
  • WebRTC 的 ICE candidate 协商
  • 深度学习图像分类数据集—蘑菇识别分类
  • axios笔记
  • Monorepo+Turborepo+Next常问问题详解
  • Git使用教程
  • Win11 安装 Visual Studio(保姆教程 - 更新至2025.07)
  • 《Redis》缓存与分布式锁
  • 零基础 “入坑” Java--- 八、类和对象(一)
  • 2025.7.6总结
  • 【字节跳动】数据挖掘面试题0011:介绍下时间序列分析常用知识点
  • 9. 【Vue实战--孢子记账--Web 版开发】-- 账户账本管理(二)
  • 5种高效解决Maven依赖冲突的方法
  • C 语言指针与作用域详解
  • Clion中stm32开发烧录出现“monitor“ command not supported by this target.解决方法
  • 微服务基础:Spring Cloud Alibaba 组件有哪些?
  • 数据结构---链表结构体、指针深入理解(三)