Portal -->arc068E

(温馨提示:那啥。。因为各种奇怪的我也不知道的原因这题的题号在某度上面显示出来是agc007F。。。然而下面是arc068E的题解qwq给大家带来不便之处真是抱歉qwq)

Solution

​   真实智力康复==

​   考虑一个区间是否能够对\(d\)有贡献,两个关键点:

1、如果区间长度\(>=d\),那么必定包含一个\(d\)的倍数,有贡献

2、如果区间长度\(<d\),那么要么没有贡献,要么只会包含一个\(d\)的倍数

​   没了Q^Q

​   一个树状数组区间修改单点查询没了QWQ

   所以为什么我要分块。。以及为什么我会想线段树加一些奇奇怪怪的东西最后搞到要启发式合并。。

​   总的来说既然直接按照\(d\)来算会算重,那就应该从区间来想会对哪些\(d\)有贡献嗯。。而不是。。一味纠结怎么去重或者想都不想就一直往这方面优化之类的,应该尝试换个思路

   另外这题也可以反过来想(正难则反qwq),算出来每个\(d\)不可能有哪些区间直接减就好了

   这些基本思路好像现在各种想不到去用。。emmmm

  

​   代码大概长这个样子

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=3*(1e5)+10,M=1e5+10;
struct Rec{
int l,r;
friend bool operator < (Rec x,Rec y)
{return (x.r-x.l+1)<(y.r-y.l+1);}
}a[N];
int n,m,ans;
namespace BIT{/*{{{*/
int c[M];
int mx;
void init(int _n){mx=_n; memset(c,0,sizeof(c));}
void insert(int x,int delta){for (;x<=mx;x+=x&-x) c[x]+=delta;}
void update(int l,int r){insert(l,1); insert(r+1,-1);}
int query(int x){
int ret=0;
for (;x;x-=x&-x) ret+=c[x];
return ret;
}
}/*}}}*/
void solve(){
int now=1;
for (int i=1;i<=m;++i){
while (a[now].r-a[now].l+1<=i&&now<=n){
BIT::update(a[now].l,a[now].r);
++now;
}
ans=n-now+1;
for (int j=i;j<=m;j+=i){
ans+=BIT::query(j);
}
printf("%d\n",ans);
}
} int main(){
#ifndef ONLINE_JUDGE
freopen("a.in","r",stdin);
#endif
int l,r;
scanf("%d%d",&n,&m);
for (int i=1;i<=n;++i)
scanf("%d%d",&a[i].l,&a[i].r);
sort(a+1,a+1+n);
BIT::init(m+1);
solve();
}

【arc068E】Snuke Line的更多相关文章

  1. 【AtCoder - 2300】Snuke Line(树状数组)

    BUPT2017 wintertraining(15) #9A 题意 有n个纪念品,购买区间是\([l_i,r_i]\).求每i(1-m)站停一次,可以买到多少纪念品. 题解 每隔d站停一次的列车,一 ...

  2. 【HDOJ】3400 Line belt

    三分. #include <cstdio> #include <cstring> #include <cmath> typedef struct { double ...

  3. 【HDU1000】A+B Problem

    题目来源:www.acm.hdu.edu.cn 题目编号:1000  A+B Problem /*----------------------------------------原题目-------- ...

  4. 【leetcode】bash脚本练习

    [192]Word Frequency Write a bash script to calculate the frequency of each word in a text file words ...

  5. 论文阅读(Xiang Bai——【CVPR2015】Symmetry-Based Text Line Detection in Natural Scenes)

    Xiang Bai--[CVPR2015]Symmetry-Based Text Line Detection in Natural Scenes 目录 作者和相关链接 方法概括 创新点和贡献 方法细 ...

  6. 【解决】org.apache.hadoop.util.Shell$ExitCodeException: /bin/bash: line 0: fg: no job control

    [环境信息] Hadoop版本:2.4.0 客户端OS:Windows Server 2008 R2 服务器端OS:CentOS 6.4 [问题现象] 在通过Windows客户端向Linux服务器提交 ...

  7. Sublime2编译Python程序EOFError:EOF when reading a line解决方法【转】

    在Sublime2中编译运行Python文件时,如果代码中包含用户输入的函数时(eg. raw_input()),Ctrl+b编译运行之后会提示以下错误: 解决方法:安装SublimeREPL打开Su ...

  8. 【BZOJ3120】Line 矩阵乘法

    [BZOJ3120]Line Description Wayne喜欢排队……不对,是Wayne所在学校的校长喜欢看大家排队,尤其是在操场上站方阵.某日课间操时,校长童心大发想了一个极具观赏性的列队方案 ...

  9. 【网络流】Modular Production Line

    [网络流]Modular Production Line 焦作上的一道,网络流24题中的原题.... https://nanti.jisuanke.com/t/31715 给出了1e5个点,但是因为最 ...

随机推荐

  1. sqli-labs学习笔记 DAY1

    DAY 1 准备工作 安装phpstudy 安装配置sqli-labs 学习笔记 SQL语句的注释:–, # +在URL经过编码后会编码为空格 SQL语句的查询语句:SELECT column_nam ...

  2. 华为中兴借eBay出海 靠零售渠道撬动市场

    在跨境电商领域,大多数中国商家依靠“中国制造”的优势和价格战策略打拼出一条血路,在海外市场占领了自己的一席 之地.不过,山寨货纷纷出海的同时,中国本土的品牌商们也开始了探索海外市场之旅.目前,华为.中 ...

  3. javascript中的取反再取反~~

    操作符~, 是按位取反的意思,表面上~~(取反再取反)没有意义,实际上在JS中可以将浮点数变成整数. <html> <script> var myArray = new Arr ...

  4. eFPGA与FPGA SoC,谁将引领下一代可编程硬件之潮流?|半导体行业观察

    eFPGA:冉冉升起的新星 eFPGA即嵌入式FPGA(embedded FPGA),是近期兴起的新型电路IP. 随着摩尔定律越来越接近瓶颈,制造ASIC芯片的成本越来越高.因此,设计者会希望ASIC ...

  5. Scrum立会报告+燃尽图(十一月二十五日总第三十三次):展示博客

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2413 项目地址:https://git.coding.net/zhang ...

  6. Alpha发布_文案+美工

    团队名称:探路者 1蔺依铭:http://www.cnblogs.com/linym762/ 2张恩聚:http://www.cnblogs.com/zej87/ 3米赫:http://www.cnb ...

  7. 《linux内核分析》 第一周

    20135130  王川东 计算机是如何工作的? 计算机的基本原理是存储程序和程序控制.预先要把指挥计算机如何进行操作的指令序列(称为程序)和原始数据通过输入设备输送到计算机内存贮器中.每一条指令中明 ...

  8. 【每日scrum】NO.8

    (1) 在图的设计过程中掌握了图的基本运算函数的算法的理解和程序的有效吸收,包括图的深度和广度优先的遍历,对图的联通分量的求解,图的最小生成树,图的拓扑排序,图的关键路径, (2)在迪杰斯特拉算法的基 ...

  9. mininet实验 可视化界面形成拓扑

    参考博客一 参考博客二 实验目的 mininet中内置了一个mininet可视化工具:miniedit.miniedit在mininet/mininet/examples目录下提供miniedit.p ...

  10. Educational Codeforces Round 16 E. Generate a String dp

    题目链接: http://codeforces.com/problemset/problem/710/E E. Generate a String time limit per test 2 seco ...