博客
关于我
Codeforces round #649 1364A-XXXX(双指针)
阅读量:319 次
发布时间:2019-03-01

本文共 1044 字,大约阅读时间需要 3 分钟。

为了解决这个问题,我们需要找到一个最短的子数组,使得子数组的和不能整除给定的数x。如果不存在这样的子数组,则返回-1。

方法思路

  • 检查是否存在不能整除x的元素:如果数组中存在至少一个元素不能被x整除,那么这个元素本身就是最短子数组,长度为1。
  • 计算数组总和:如果数组中没有不能整除x的元素,计算数组总和。如果总和不能整除x,则整个数组的和不能被x整除,返回数组的长度n。
  • 处理特殊情况:如果数组总和能整除x,那么所有元素都能被x整除,返回-1。
  • 解决代码

    #include 
    #include
    using namespace std;int main() { int t; cin >> t; while (t--) { int n, x; cin >> n >> x; vector
    a(n); bool has_non_divisible = false; for (int num : a) { if (num % x != 0) { has_non_divisible = true; break; } } if (has_non_divisible) { cout << 1; continue; } long long sum_total = 0; for (int num : a) { sum_total += num; } if (sum_total % x != 0) { cout << n; } else { cout << -1; } }}

    代码解释

  • 读取输入:读取测试用例的数量t,然后逐个读取每个测试用例的n和x。
  • 检查元素:遍历数组检查是否存在不能整除x的元素。如果存在,直接输出1。
  • 计算总和:如果所有元素都能被x整除,计算数组总和。如果总和不能整除x,输出n;否则,输出-1。
  • 这种方法确保我们在O(n)的时间复杂度内解决问题,高效且直接。

    转载地址:http://cfnt.baihongyu.com/

    你可能感兴趣的文章
    Nginx 的配置文件中的 keepalive 介绍
    查看>>
    Nginx 负载均衡与权重配置解析
    查看>>
    Nginx 负载均衡详解
    查看>>
    nginx 配置 单页面应用的解决方案
    查看>>
    nginx 配置https(一)—— 自签名证书
    查看>>
    nginx 配置~~~本身就是一个静态资源的服务器
    查看>>
    Nginx 配置解析:从基础到高级应用指南
    查看>>
    Nginx下配置codeigniter框架方法
    查看>>
    nginx添加模块与https支持
    查看>>
    Nginx用户认证
    查看>>
    Nginx的Rewrite正则表达式,匹配非某单词
    查看>>
    Nginx的使用总结(一)
    查看>>
    Nginx的可视化神器nginx-gui的下载配置和使用
    查看>>
    Nginx的是什么?干什么用的?
    查看>>
    Nginx访问控制_登陆权限的控制(http_auth_basic_module)
    查看>>
    nginx负载均衡器处理session共享的几种方法(转)
    查看>>
    nginx负载均衡的5种策略(转载)
    查看>>
    nginx负载均衡的五种算法
    查看>>
    Nginx运维与实战(二)-Https配置
    查看>>
    Nginx配置ssl实现https
    查看>>