This way

题意:

定义合法序列:
n=a1+a2+…+am(m的大小是你自己构造的&m>=3),并且满足以下条件

定义f(n)为构造n的合法序列的情况数,然后每次问你n为l~r中所有数的f的和是多少

题解:

其实就相当于要预处理每个数有多少种构造情况。
此时画一张图就会发现:(假设m的长度为7)

也就是最下面的数的长度为5(10~14),然后12~15的长度为3,这样子左边+2,右边+1地去增加。
那么很明显我们每次枚举m,然后再枚举差分的长度的话,时间复杂度会炸,此时就需要用到差分上差分,也就是这个语句:
ad[num+3]++,ad[num+ len-1 +len-2 +2]–;
del[num+len-1 +1 +1]++,del[num+ len-1 +len-2 +2]–;
len表示底的长度,num表示构成底的值,那么ad差分序列表示最左边的增加长度,del表示减小长度。
for(int i=3;i<=n;i++)ad[i]+=ad[i-2],del[i]+=del[i-1];
这个语句就表示左边的位置每次增加2,减去的位置每次增加1(如上图)
for(int i=3;i<=n;i++)ad[i]-=del[i];
这个语句就表示差分之后的差分序列。
最后求一下前缀和就好了。有点难理解需要自行画图,脑补

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=1e5+5;
ll ad[N*3],del[N*3],sum[N*3];
int main()
{int n=1e5;for(int len=3;len<=n;len++){for(int h=1;h*len<=n;h++){int num=h*len;ad[num+3]++,ad[num+ len-1 +len-2 +2]--;del[num+len-1 +1 +1]++,del[num+ len-1 +len-2 +2]--;}}for(int i=3;i<=n;i++)ad[i]+=ad[i-2],del[i]+=del[i-1];for(int i=3;i<=n;i++)ad[i]-=del[i];for(int i=3;i<=n;i++)ad[i]+=ad[i-1];for(int i=3;i<=n;i++)sum[i]=sum[i-1]+ad[i];int t,cas=0;scanf("%d",&t);while(t--){int l,r;scanf("%d%d",&l,&r);printf("Case #%d: %lld\n",++cas,sum[r]-sum[l-1]);}return 0;
}

2020牛客暑期多校训练营(第八场)E Enigmatic Partition —— 找规律,差分上差分,有丶东西相关推荐

  1. 2020牛客暑期多校训练营(第一场)

    文章目录 A B-Suffix Array B Infinite Tree C Domino D Quadratic Form E Counting Spanning Trees F Infinite ...

  2. 2020牛客暑期多校训练营(第二场)

    2020牛客暑期多校训练营(第二场) 最烦英语题 文章目录 A All with Pairs B Boundary C Cover the Tree D Duration E Exclusive OR ...

  3. E Groundhog Chasing Death(2020牛客暑期多校训练营(第九场))(思维+费马小定理+质因子分解)

    E Groundhog Chasing Death(2020牛客暑期多校训练营(第九场))(思维+费马小定理+质因子分解) 链接:https://ac.nowcoder.com/acm/contest ...

  4. 2020牛客暑期多校训练营(第一场)A B-Suffix Array(后缀数组,思维)

    链接:https://ac.nowcoder.com/acm/contest/5666/A 来源:牛客网 题目描述 The BBB-function B(t1t2-tk)=b1b2-bkB(t_1 t ...

  5. 2020牛客暑期多校训练营(第二场)Just Shuffle

    https://ac.nowcoder.com/acm/contest/5667/J 题目大意:给你一个置换A,使得置换P^k=A,让你求出置换P. 思路:我们根据置换A再置换z次,那么就等于置换p ...

  6. 2020牛客暑期多校训练营(第一场)j-Easy Integration(思维,分数取模,沃斯利积分)

    题目链接 题意: 给你一个积分公式,给你一个n,问积分公式的值取模后的结果. 思路: 积分公式(沃利斯积分)值的结论直接就是(n!)^2/(2n+1)!,求个阶乘,再用费马小定理给1/(2n+1)!取 ...

  7. 2020 牛客暑期多校训练营(第一场)F

    题目大意: 多次输入两个a,b字符串他们可以无限次的重复变成aaa,或者bbb 比较他们的大小,相同输出 =,a<b输出 <,a>b输出 >. 输入: aa b zzz zz ...

  8. 2020牛客暑期多校训练营(第二场)未完待续......

    F. Fake Maxpooling 题目: 题目大意: 输入n,m,k.矩阵的尺寸为nm,其中每一个元素为A[i][j] = lcm( i , j ).从中找出所有kk的子矩阵中元素最大的数之和. ...

  9. 2020牛客暑期多校训练营(第一场)J、Easy Integration (数学、分部积分)

    题目链接 题面: 题意: 求给定的定积分. 题解,化成 ∫ xn (1-x)n dx 然后用分部积分法即可得. 分部积分法:∫ udv = uv - ∫ vdu 最终为 n!/((n+1)*(n+2) ...

  10. 2020牛客暑期多校训练营(第二场)题解

    废话 蒟蒻不会积分,K不会做. 文章目录 废话 A. All with Pairs B. Boundary C. Cover the Tree D. Duration E. Exclusive OR ...

最新文章

  1. Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++-4.2 failed with exit code 1问题总结及解决方案...
  2. P3758 [TJOI2017]可乐
  3. linux学习笔记(5)
  4. Linux下配置和安装VNCServer远程服务
  5. 让业务感知不到服务器的存在——基于弹性计算的无服务器化实践
  6. python源码提取_Python提取Linux内核源代码的目录结构实现方法
  7. Ripro子主题-ziyuan-zhankr资源主题 蓝色简约版
  8. 手机价格要上涨?小米和Realme确认芯片短缺:高通交付延长至30周以上
  9. SIMULATE ANNEAL
  10. mysql 生成假数据_一个好玩的假数据生成器mimesis
  11. 计算机应用专业,报软考应该选什么?
  12. 时区转换问题java编码,Java UTC ZonedDateTime转换成指定时区时间方法及使用示例代码...
  13. 手写RPC(五) 核心模块网络协议模块编写 ---- 自定义协议
  14. 洛谷P6014 斗牛
  15. 互联网日报 | 6月8日 星期二 | 华为30亿成立数字能源公司;阿里明星直播业务“天猫星选”上线;苹果WWDC 2021开幕...
  16. 企业经营中的“细节杀”:无线AP让你比别人更快一步
  17. Win11新电脑开机跳过联网解决方法
  18. java使用geotools读取shp文件
  19. 自律的程序员生活是什么样的?
  20. 机器学习算法有哪些?

热门文章

  1. java学习笔记 java编程思想 第6章 访问权限控制
  2. 11.2NOIP模拟赛
  3. 腾讯企业邮箱登录入口在哪?知名企业邮箱品牌登录方法大全!
  4. 时间在流逝——上还是不上大学?
  5. 佳佳GIS学习笔记2
  6. 人工智能在游戏领域的应用
  7. G++ 中文使用教程
  8. Regsvr 32命令的用处
  9. 如何打开 plist 文件
  10. 三跨考研浙江大学计算机,浙江大学交互设计考研经历分享(原来跨考这么受欢迎)...