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

Codeforces Round 970 (Div. 3)

 

#include <iostream>
#include <cmath>
using namespace std;// 函数 is 用于判断给定的字符串 s 是否表示一个满足条件的正方形数。
bool is(const string &s, int n) {// 首先计算 n 的平方根 k。int k = sqrt(n); // 如果 k 的平方不等于 n,那么 n 不是完全平方数,返回 false。if (k * k != n)return false;// 检查字符串 s 的最外层和最内层是否都是 '1'。for (int i = 0; i < k; i++)if (s[i] != '1' || s[n-k+i] != '1') return false;// 检查字符串 s 的最内层和最外层之间的位是否都是 '0'。for (int i = 1; i < k-1; i++) {// 检查第 i 行的开始和结束是否为 '1'。if (s[i*k] != '1' || s[(i+1)*k-1] != '1') return false;// 检查第 i 行除了开始和结束之外的所有位是否都是 '0'。for (int j = 1; j < k-1; j++) { if (s[i*k + j] != '0') { return false;}}}// 如果所有的检查都通过了,返回 true。return true; 
}int main() {int t;cin >> t; while (t--) {int n;string s;cin >> n >> s; // 调用函数 is 来判断 s 是否表示一个满足条件的正方形数。if (is(s, n)) {cout << "Yes" << endl; } else {cout << "No" << endl; }}return 0;
}

 

#include <iostream>
#include <cmath>
using namespace std;long long solve(long long l, long long r) {long long k = 1;  // 初始化增加量long long a = l;   // 当前构造的元素while (a + k <= r) {  // 检查是否会超出上界a += k;        // 增加当前元素k++;           // 增加增加量}return k;  
}int main() {int t;cin >> t;while (t--) {long long l, r;cin >> l >> r;cout << solve(l, r) << endl;}return 0;
}

这个问题要求找出在给定的上下界 ll 和 rr 内,可以构成的最长“好”数组的长度。一个“好”数组的定义是:

  1. 数组是递增的,即对于所有 2≤i≤n2≤i≤n,有 ai−1<aiai−1​<ai​。
  2. 相邻元素之间的差值也是递增的,即对于所有 2≤i<n2≤i<n,有 ai−ai−1>ai+1−aiai​−ai−1​>ai+1​−ai​。

思路分析

要满足上述两个条件,数组中的每个元素 aiai​ 必须比前一个元素 ai−1ai−1​ 大,并且增加的量必须比前一对相邻元素的增加量要大。这意味着,如果我们从一个给定的 ll 开始,我们每次增加的量 kk 必须比上一次增加的量要大。

算法实现

  1. 初始化:从 ll 开始,初始化 kk 为 1,表示我们首先增加 1 到 ll 得到下一个元素。
  2. 循环增加:在每一步中,我们将当前的元素 aa 增加 kk 来尝试构造下一个元素。同时,kk 也增加 1,以满足差值递增的条件。
  3. 检查边界:在每次增加后,我们需要检查新构造的元素是否超出了上界 rr。如果超出了,就不能再继续增加了。
  4. 计算长度:每次成功构造一个元素,数组的长度就增加 1。最终,这个长度就是我们要找的最长“好”数组的长度。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 什么是外卖霸王餐系统?有什么特点?
  • 怎么用golang实现一个简易版c++的FIFO队列?
  • Vue——认识day05_监视属性
  • Apifox使用学习
  • Java:正则表达式 matches
  • 如何在D盘创建虚拟环境?包括安装PyTorch和配置PyCharm
  • 服务器数据恢复—LeftHand存储中raid5阵列多块磁盘离线的数据恢复案例
  • Profinet 从站转 EtherNet/IP 从站网关
  • volatile关键字的作用
  • 爆改YOLOv8|利用yolov10的PSA注意力机制改进yolov8-高效涨点
  • C# 使用国密SM4加密解密
  • 【如何在MacOS升级ruby版本】
  • 根据子网前缀的长度计算ip范围
  • 搭建数据库启前后端环境
  • Cobalt Strike 4.8 用户指南-第六节-Payload Artifacts和反病毒规避
  • Date型的使用
  • HashMap ConcurrentHashMap
  • If…else
  • Redis学习笔记 - pipline(流水线、管道)
  • VuePress 静态网站生成
  • 前端面试总结(at, md)
  • 数据可视化之 Sankey 桑基图的实现
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • 智能合约Solidity教程-事件和日志(一)
  • 我们雇佣了一只大猴子...
  • #162 (Div. 2)
  • (BFS)hdoj2377-Bus Pass
  • (二)Kafka离线安装 - Zookeeper下载及安装
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (转)c++ std::pair 与 std::make
  • .net core 6 redis操作类
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .so文件(linux系统)
  • /3GB和/USERVA开关
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹
  • [BUG]Datax写入数据到psql报不能序列化特殊字符
  • [C#]C# winform部署yolov8目标检测的openvino模型
  • [C/C++] -- 二叉树
  • [C++] C++11详解 (一)
  • [C++]多态
  • [C++初阶]list的模拟实现
  • [imx9]DDR test Tool for imx9
  • [ios-必看] IOS调试技巧:当程序崩溃的时候怎么办 iphone IOS
  • [java]删除数组中的某一个元素
  • [Jenkins] Docker 安装Jenkins及迁移流程
  • [JS]JavaScript 简介
  • [LeetCode] 19. 删除链表的倒数第 N 个结点
  • [linux]资料收纳
  • [NISACTF 2022]level-up
  • [poj] 3974 Palindrome
  • [Python从零到壹] 六十三.图像识别及经典案例篇之图像漫水填充分割应用
  • [Python人工智能] 四十.命名实体识别 (1)基于BiLSTM-CRF的威胁情报实体识别万字详解
  • [SUCTF 2019]EasySQL1 题目分析与详解
  • [win7-oracle处理方法]--java.lang.Exception: Exception in sending Request :: null(转)