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

哏号分治,CF103D - Time to Raid Cowavans

一、题目

1、题目描述

2、输入输出

2.1输入

2.2输出

3、原题链接

103D - Time to Raid Cowavans


二、解题报告

1、思路分析

想了半天数据结构最终选择根号分治

我们考虑 大于 550 的公差直接暴力

小于550 的公差的所有询问,我们直接计算该公差后缀和,对于该公差所有询问统一处理

2、复杂度

时间复杂度: O(N\sqrt{N})空间复杂度:O(Q + \sqrt{N})

3、代码详解

 ​
#include <bits/stdc++.h>
using i64 = long long;
using i128 = __int128;
using PII = std::pair<int, int>;
const int inf = 1e9 + 7, P = 998244353;void solve() {int n;std::cin >> n;std::vector<i64> w(n);for (int i = 0; i < n; i ++ ) std::cin >> w[i];int bound = 500;int p;std::cin >> p;std::vector<std::vector<PII>> q(bound);std::vector<i64> ans(p);for (int i = 0, a, b; i < p; i ++ ) {std::cin >> a >> b;-- a;if (b >= bound) {i64& s = ans[i];for (int j = a; j < n; j += b)s += w[j];}elseq[b].push_back( { a, i } );}for (int i = 1; i < bound; i ++ ) {if (q[i].size()) {std::vector<i64> acc(n + i);for (int j = n - 1; j >= 0; j -- ) {acc[j] = acc[j + i] + w[j];}std::cout << '\n';for (auto [j, id] : q[i])ans[id] = acc[j];}}for (i64 x : ans) std::cout << x << '\n';
}int main(int argc, char** argv) {std::ios::sync_with_stdio(false), std::cin.tie(0), std::cout.tie(0);int _ = 1;// std::cin >> _;while (_ --)solve();return 0;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 秋招突击——设计模式补充——单例模式、依赖倒转原则、工厂方法模式
  • 【系统架构设计师】计算机组成与体系结构 ⑩ ( 磁盘管理 | 磁盘移臂调度算法 | 先来先服务算法 | 最短寻道时间优先 | 扫描算法 | 循环扫描算法 )
  • 溶酶体靶向嵌合体制备方法和技术
  • 2024年保安员职业资格考试题库大数据揭秘,冲刺高分!
  • LabVIEW汽车转向器测试系统
  • oracle sql语句 排序 fjd = ‘0101‘ 排在 fjd = ‘0103‘ 的前面
  • 代码随想录训练营第二十九天 134加油站 135分发糖果 860柠檬水找零 406根据身高重建队列
  • 使用 Qt 实现自定义拖动窗口
  • Effective C++ 改善程序与设计的55个具体做法笔记与心得 9
  • 7寸微型FPV无人机技术详解
  • HCIE是水证?含金量遭质疑?
  • 技术派Spring事件监听机制及原理
  • Android AlertDialog对话框
  • 初试成绩占比百分之70!计算机专硕均分340+!华中师范大学计算机考研考情分析!
  • 【JS】纯web端使用ffmpeg实现的视频编辑器-视频合并
  • co.js - 让异步代码同步化
  • Effective Java 笔记(一)
  • E-HPC支持多队列管理和自动伸缩
  • es6
  • HTTP请求重发
  • Java的Interrupt与线程中断
  • JDK 6和JDK 7中的substring()方法
  • node-glob通配符
  • Odoo domain写法及运用
  • React的组件模式
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • zookeeper系列(七)实战分布式命名服务
  • 阿里云购买磁盘后挂载
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 以太坊客户端Geth命令参数详解
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • zabbix3.2监控linux磁盘IO
  • # Panda3d 碰撞检测系统介绍
  • # windows 运行框输入mrt提示错误:Windows 找不到文件‘mrt‘。请确定文件名是否正确后,再试一次
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • ###C语言程序设计-----C语言学习(3)#
  • #stm32整理(一)flash读写
  • #每天一道面试题# 什么是MySQL的回表查询
  • (4)logging(日志模块)
  • (bean配置类的注解开发)学习Spring的第十三天
  • (ISPRS,2021)具有遥感知识图谱的鲁棒深度对齐网络用于零样本和广义零样本遥感图像场景分类
  • (SpringBoot)第七章:SpringBoot日志文件
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (十六)串口UART
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (一)Java算法:二分查找
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .cfg\.dat\.mak(持续补充)
  • .NET Framework、.NET Core 、 .NET 5、.NET 6和.NET 7 和.NET8 简介及区别