题目地址

题目链接

题解

以为这题虽然是数据随机也不至于那么水吧...

于是秉着先打部分分和暴力的原则先写了暴力和min,max为-inf和inf的特殊点,对于暴力搞了个小优化,延后的操作直接前缀和答案就好...

然后感觉数据随机的话能过\(n<=5000\)

交了发现跑的飞快,有了一点奇奇怪怪的想法,直接交暴力试试?

然后就过了。7000+ms...

效率是\(O(opt*n+final)\)的,因为数据随机所以其实也不用卡就能过去了...

我以为他的随机至少有部分构造数据来着...

然后看了官方题解居然也只是对暴力操作差分优化了一下...这个的效率也不对的其实...如果数据出到上界是过不去的...

(当时有想到这个但是算了效率是不对的于是cut掉了这个想法。还以为这题正解多高明233333)

#include <bits/stdc++.h>
using namespace std; #define ll long long
#define inf 0x3f3f3f3f
#define N 200010
int n, opt, mod, Min, Max, fin;
ll a[N], sum[N]; namespace pts_1 {
void solve() {
int l, r, x;
for(int i = 1; i <= opt; i ++) {
char ch[10];
scanf("%s%d%d", ch, &l, &r);
if(ch[0] == 'A') {scanf("%d", &x); continue;}
printf("%d\n", r - l + 1);
}
scanf("%d", &fin);
for(int i = 1; i <= fin; i ++) {
scanf("%d%d", &l, &r);
printf("%d\n", r - l + 1);
}
}
} namespace pts_2 {
void solve() {
int l, r, x;
for(int i = 1; i <= opt; i ++) {
char ch[10];
scanf("%s%d%d", ch, &l, &r);
if(ch[0] == 'A') {
scanf("%d", &x);
for(int i = l; i <= r; i ++) a[i] += x;
} else {
ll ans = 0;
for(int i = l; i <= r; i ++) {
ans += a[i] * i % mod >= Min && a[i] * i % mod <= Max;
}
printf("%lld\n", ans);
}
}
for(int i = 1; i <= n; i ++) {
sum[i] = sum[i - 1] + (a[i] * i % mod >= Min && a[i] * i % mod <= Max);
}
scanf("%d", &fin);
while(fin--) {
scanf("%d%d", &l, &r);
printf("%lld\n", sum[r] - sum[l - 1]);
}
}
} int main() {
scanf("%d%d%d%d%d", &n, &opt, &mod, &Min, &Max);
if(Min <= -inf && Max >= inf) {pts_1::solve(); return 0;}
else {
if(n <= 5000) {pts_2::solve(); return 0;}
pts_2::solve(); return 0;
}
}

LuoguP3948 数据结构的更多相关文章

  1. 多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)

    前言:刚学习了一段机器学习,最近需要重构一个java项目,又赶过来看java.大多是线程代码,没办法,那时候总觉得多线程是个很难的部分很少用到,所以一直没下决定去啃,那些年留下的坑,总是得自己跳进去填 ...

  2. 一起学 Java(三) 集合框架、数据结构、泛型

    一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...

  3. 深入浅出Redis-redis底层数据结构(上)

    1.概述 相信使用过Redis 的各位同学都很清楚,Redis 是一个基于键值对(key-value)的分布式存储系统,与Memcached类似,却优于Memcached的一个高性能的key-valu ...

  4. 算法与数据结构(十五) 归并排序(Swift 3.0版)

    上篇博客我们主要聊了堆排序的相关内容,本篇博客,我们就来聊一下归并排序的相关内容.归并排序主要用了分治法的思想,在归并排序中,将我们需要排序的数组进行拆分,将其拆分的足够小.当拆分的数组中只有一个元素 ...

  5. 算法与数据结构(十三) 冒泡排序、插入排序、希尔排序、选择排序(Swift3.0版)

    本篇博客中的代码实现依然采用Swift3.0来实现.在前几篇博客连续的介绍了关于查找的相关内容, 大约包括线性数据结构的顺序查找.折半查找.插值查找.Fibonacci查找,还包括数结构的二叉排序树以 ...

  6. 算法与数据结构(九) 查找表的顺序查找、折半查找、插值查找以及Fibonacci查找

    今天这篇博客就聊聊几种常见的查找算法,当然本篇博客只是涉及了部分查找算法,接下来的几篇博客中都将会介绍关于查找的相关内容.本篇博客主要介绍查找表的顺序查找.折半查找.插值查找以及Fibonacci查找 ...

  7. 算法与数据结构(八) AOV网的关键路径

    上篇博客我们介绍了AOV网的拓扑序列,请参考<数据结构(七) AOV网的拓扑排序(Swift面向对象版)>.拓扑序列中包括项目的每个结点,沿着拓扑序列将项目进行下去是肯定可以将项目完成的, ...

  8. 算法与数据结构(七) AOV网的拓扑排序

    今天博客的内容依然与图有关,今天博客的主题是关于拓扑排序的.拓扑排序是基于AOV网的,关于AOV网的概念,我想引用下方这句话来介绍: AOV网:在现代化管理中,人们常用有向图来描述和分析一项工程的计划 ...

  9. 掌握javascript中的最基础数据结构-----数组

    这是一篇<数据结构与算法javascript描述>的读书笔记.主要梳理了关于数组的知识.部分内容及源码来自原作. 书中第一章介绍了如何配置javascript运行环境:javascript ...

随机推荐

  1. html5-文件的基本格式

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  2. Sitecore CMS中配置模板部分

    如何在Sitecore CMS中配置模板部分. 注意: 本教程将扩展于“Sitecore CMS中创建模板”的章节. 配置折叠状态 配置模板部分的折叠状态允许用户选择默认折叠或展开哪些模板部分.此设置 ...

  3. Linux 系统管理命令

    1,uanme 查看是什么系统 uname - r 查看系统内核版本 2 cat /proc/cpuinfo 查看cpu 信息 3 cat /proc/meminfo 查看内存信息 4 date 查看 ...

  4. flask用宏渲染表单模板时,表单提交后,如果form.validate_on_submit()返回的是false的可能原因

    flask用宏渲染表单模板时,表单提交后,提交的内容符合DataRequired()校验, 但是form.validate_on_submit()返回的是False, 原因可能是表单模板中的<f ...

  5. ClassThree__HomeWork

    作业一 使用类的静态字段和构造函数,可以跟踪某个类所创建对象的个数.请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”. 代码 public class TestOne {       ...

  6. Spring boot 问题总结

    1. Spring boot 嵌入的tomcat不能启动: Unregistering JMX-exposed beans on shutdown   在官网(http://start.spring. ...

  7. WebStorm: The Smartest JavaScript IDE by JetBrains

    WebStorm: The Smartest JavaScript IDE by JetBrains https://www.jetbrains.com/webstorm/?fromMenu

  8. ESXi 嵌套KVM虚拟化 配置

    VMware ESXi5.x默认不支持嵌套虚拟化,需要修改相关配置才能支持   1.ESXi5.1主机开通ssh,修改VMware ESXi配置文件使之嵌套虚拟化. 在配置文件后面加入如下配置:vhv ...

  9. scala 操作hdfs

    获取hdfs文件下所有文件getAllFiles 遍历 spark读取 1 package com.spark.demo import java.io.IOException import java. ...

  10. hibernate自动创建表报表不存在

    在hibernate.cfg.xml配置了<property name="hibernate.hbm2ddl.auto">update</property> ...