题目连接

  • https://codeforces.com/problemset/problem/103/D

题意

  • 就是给你一个数组 a a a,多组询问,魅族询问给两个数 x x x和 y y y,求 a x + a x + y + a x + 2 ∗ y + . . . a_x+a_{x+y}+a_{x+2*y}+... ax​+ax+y​+ax+2∗y​+...一直加直到 x + k ∗ y > n x+k*y>n x+k∗y>n

题解

  • 很简单而且常见的套路题
  • 考虑分块,当 y > n y>\sqrt n y>n ​时,暴力计算结果,否则记录下这个询问【需要离线,不然空间开不下】,也就是枚举所有小于等于 n \sqrt n n ​的查询,然后O(n)处理出从所有位置开始的答案,然后更新所有相关查询
  • 所以总时间复杂度为 O ( n ) O(\sqrt n) O(n ​)

代码

#include<bits/stdc++.h>
using namespace std;
const int maxn=3e5+10;
const int smaxn=600;
int n,m,a[maxn],l,r,block;
long long sum[maxn],ans[maxn];
struct query{int id,a;};
vector<query> vec[smaxn];int main()
{scanf("%d",&n);block=sqrt(n);for(int i=1;i<=n;i++) scanf("%d",&a[i]);scanf("%d",&m);for(int i=1;i<=m;i++) {scanf("%d %d",&l,&r);if(r>block) for(int j=l;j<=n;j+=r) ans[i]+=a[j];else vec[r].push_back(query{i,l}); }for(int j=1;j<=block;j++) {if(vec[j].size()) {for(int i=n;i>=1;i--) sum[i]=a[i]+(i+j>n?0:sum[i+j]);for(auto k:vec[j]) ans[k.id]=sum[k.a];}}for(int i=1;i<=m;i++) printf("%lld\n",ans[i]);
}

「CF103D」 Time to Raid Cowavans【分块】相关推荐

  1. CodeForces 103D Time to Raid Cowavans 分块+dp

    先对b从小到大sort,判断b是不是比sqrt(n)大,是的话就直接暴力,不是的话就用dp维护一下 dp[i]表示以nb为等差,i为起点的答案,可以节省nb相同的情况 #include<bits ...

  2. 如何理性的调整「rwnd」和「cwnd」的大小

    很多人常常对TCP优化有一种雾里看花的感觉,实际上只要理解了TCP的运行方式就能掀开它的神秘面纱.Ilya Grigorik 在「High Performance Browser Networking ...

  3. 「BZOJ4763」雪辉

    「BZOJ4763」天野雪辉 题目大意:有一棵 \(n\) 个点的树,树上每一个点有权值 \(a_i \leq 30000\) ,每次询问给出若干路径,求出这些路径的并上面的不同颜色数与 \(mex\ ...

  4. 用群晖筑建音乐之「家」

    创意从业者的灵感总是随时迸发, 一段简短的旋律就有可能谱成一首经典歌曲, 而这个过程 不仅需要才华.学习.刻苦- 还需要-- 方便保存所有这些灵感的 「工具」 群晖NAS为音乐爱好者或是音乐从业者打造 ...

  5. 如何让 PowerPoint 幻灯片「高大上」?

    转自:http://www.zhihu.com/question/22718708?utm_campaign=official_account&utm_source=weibo&utm ...

  6. 「紫禁之巅」四大图神经网络架构

    近年来,人们对深度学习方法在图数据上的扩展越来越感兴趣.在深度学习的成功推动下,研究人员借鉴了卷积网络.循环网络和深度自动编码器的思想,定义和设计了用于处理图数据的神经网络结构.图神经网络的火热使得各 ...

  7. 「实战」南京房价的秘密——小区价格篇「2」

    「实战」南京房价的秘密--准备篇 「实战」南京房价的秘密--小区价格篇「1」 案例二:南京历年小区建成情况-折线图 # 计算南京历年的小区建成数量 Jianzhu_tmp = Xiaoqu[" ...

  8. linux 增加自动恩物,「4bays」窮人備份恩物! Synology DiskStation 418

    Synology DiskStation 418 處於數據幾何級增長及病毒肆虐的時代,資料備份相信對企業.家庭或個人用戶應該並不陌生,或許面對過加密病毒或硬碟磁區損壞的用家應更為深刻,而 Synolo ...

  9. 「GRUB」- 在BIOS系统上的GRUB引导 @20210221

    本文分为两部分: * BIOS + MBR + GRUB* BIOS + GPT + GRUB 这两种模式下有所区别,下面会一层层的解释这两种方式.通常GPT与UEFI一起使用,因为UEFI只能使用G ...

最新文章

  1. java aqs源码_Java-AQS源码详解(细节很多!)
  2. svn在linux上的安装
  3. Ubuntu10下MySQL搭建Amoeba_读写分离
  4. Python 【第十三章】 Django 之 FORM
  5. 区块链教程Fabric1.0源代码分析Chaincode(链码)体系总结
  6. 自己动手实现自旋锁(spinlock)
  7. vi is failed with error E382: Cannot write, 'buftype' option is set in Linux
  8. python文件路径过滤器_SUMO入门(八) - 从Python引入TraCI接口
  9. iis mysql_Windows10本地搭建IIS+PHP+MYSQL+phpMyAdmin运行环境图文教程(也可用于服务器)...
  10. 【今日CV 视觉论文速览】28 Nov 2018
  11. stm32f103c8t6 AD DMA连续采集8个通道
  12. 怎样改动、扩展并重写Magento代码
  13. 【MVC+MySQL+EntityFramework】查询性能优化笔记
  14. 谈谈金融行业的开源风险管理
  15. 重磅!!Redis 6.0.0 已发布,有史以来改变最大的版本
  16. 12. MySQL 函数
  17. 学习java能干什么?学习java能做哪些工作?
  18. 自定义加密cookie加盐密码
  19. 计算机网络——ALOHA协议
  20. Android Studio-unity腾讯TiM(即时通信)使用

热门文章

  1. 什么是激活函数?它有什么作用?
  2. vue路由跳转写法在html,详解vue 路由跳转四种方式 (带参数)
  3. 编辑距离算法和Levenshtein距离算法
  4. namenode的启动
  5. 深入Kafka-延时消息
  6. Windows系统下搭建MPI(并行计算)环境
  7. Collection里的方法
  8. 【代码阅读】Multiplicative Filter Networks (ICLR 2021)
  9. 【OpenCv】Canny算子边缘检测
  10. 移动开发免费收费api及网站收藏