思路:
只看懂了题解的写法,还有一种差分的神仙写法实在看不懂。

因为每个数字是由三个连续数字构成,然后数目不确定,所以我们枚举第一个数字l,那么就知道这三个数字是l,l+1,l+2。

我们枚举l的数目和l+1的数目,或者枚举l+1和l+2的数目。
因为两个l+1可以变成一个l和一个l+2,所以只要枚举两个就可以了。
然后又x个l,y个l+1的时候,就能得到(y-1)/2个变换情况。
x个l+2,y个l+1同理。

但是小数据的时候很慢,此时直接跑完全背包就好了。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<queue>
#include <unordered_map>
#include <map>
#include <string>using namespace std;
typedef long long ll;const int maxn = 1e5 + 7;ll sum[maxn];
ll dp[55][maxn];int main() {for(int l = 50;l < maxn;l++) {int mid = l + 1;int r = l + 2;for(int nl = 1;nl * l < maxn;nl++) { //l的数目大于r的数目for(int m = 3;m * mid + l * nl < maxn;m++) {sum[m * mid + l * nl] += (m - 1) / 2;}}for(int nr = 0;nr * r < maxn;nr++) { //l的数目小于等于r的数目for(int m = 3;m * mid + r * nr < maxn;m++) {sum[m * mid + r * nr] += (m - 1) / 2;}}}//    49 50 51for(int l = 1;l < 50;l++) { //起始数字int a[10];a[1] = l;a[2] = l + 1;a[3] = l + 2;int num = a[1] + a[2] + a[3];dp[l][0] = 1;for(int i = 1;i <= 3;i++) {for(int j = a[i];j < maxn;j++) {dp[l][j] += dp[l][j - a[i]];}}for(int j = num;j < maxn;j++) {sum[j] += dp[l][j - num];}}for(int i = 1;i < maxn;i++) {sum[i] += sum[i - 1];}int T;scanf("%d",&T);int kase = 0;while(T--) {int l,r;scanf("%d%d",&l,&r);printf("Case #%d: %lld\n",++kase,sum[r] - sum[l - 1]);}return 0;
}

牛客多校第八场 Enigmatic Partition(DP)相关推荐

  1. 2020牛客多校第八场E-Enigmatic Partition(隔项差分)

    Description Solution 由题意 ∴n=a1∗b1+a2∗b2+a3∗b3_\therefore\,\,n=a_1*b_1+a_2*b_2+a_3*b_3∴​n=a1​∗b1​+a2​ ...

  2. 2021牛客多校第八场补题 D-OR

    链接:https://ac.nowcoder.com/acm/contest/11259/D 来源:牛客网 题目描述 There are two sequences of length n−1n-1n ...

  3. 2019牛客多校第八场

    A.All-one Matrices 按行枚举(即枚举下边界) e.g.e.g.e.g. 000000000000000 001100011000110 001000010000100 0111101 ...

  4. 24dian(牛客多校第三场)

    24dian(牛客多校第三场) 题意: 给你n张牌,每张牌的大小为1 ~ 13,问这些牌与加减乘除任意组合(可以使用括号),且但所有的有效解在计算过程中都涉及到分数,即非整数,能否组成答案m,如果可以 ...

  5. 2019牛客多校第四场 I题 后缀自动机_后缀数组_求两个串de公共子串的种类数

    目录 求若干个串的公共子串个数相关变形题 对一个串建后缀自动机,另一个串在上面跑同时计数 广义后缀自动机 后缀数组 其他:POJ 3415 求两个串长度至少为k的公共子串数量 @(牛客多校第四场 I题 ...

  6. 牛客多校第四场【B-Basic Gcd Problem】

    牛客多校第四场[B-Basic Gcd Problem] 题目链接:https://ac.nowcoder.com/acm/contest/5669/B 思路:先要理解公式,多看几个数据基本就会有点想 ...

  7. 牛客多校第三场 B【Classical String Problem】

    牛客多校第三场 B[Classical String Problem] 链接:https://ac.nowcoder.com/acm/contest/5668/B 来源:牛客网 题目描述 Given ...

  8. 牛客多校第十场F-Popping Balloons

    题目连接 牛客多校F-PoppingBalloons 题意: 用枪打气球,可以横着打三次,竖着打三次,横着打可以把那一行的气球全打下来,竖着打可以把那一列的气球全打下来,但是,每两次相邻的横着打或者竖 ...

  9. 2019年牛客多校第1场 赛后总结

    A题 :Equivalent Prefixes  题意:就是给你两个有n个不同数的串,然后保证1-p区间内任选一个区间,使得区间中最小值的下标相同,找到最大的p值  思路:我的思路是设置两个单调栈,然 ...

最新文章

  1. Java中常见的异常
  2. python当型循环_对python while循环和双重循环的实例详解
  3. Winform中连接Mysql8并查询表中数据进行显示
  4. mysql读写分离有用吗_MySQL的使用中实现读写分离的教程
  5. CAN 总线 之一 总线拓扑、物理电平、发展史 详解
  6. 2012服务器文件加密,Windows Server 2012安全方面的改变_服务器评测与技术-中关村在线...
  7. 表达式 jsp_[JSTL表达式] -JSTL中的所有,都在这
  8. LINQ(LINQ to Entities)
  9. 隐马尔可夫模型(HMM)攻略
  10. haproxy编译安装以及配置文档介绍
  11. echarts嵌套饼图
  12. TS是什么?特性是什么?与JS的区别?使用ts的好处?
  13. 一句关于爱情的话...
  14. Linux下手动查杀木马
  15. 不可重复读和幻读有什么区别?
  16. lopatkin俄大神精简Windows 10 Pro 18363.1049 19H2 Release x86-x64 ZH-CN DREY[2020-08-30]
  17. java点击车次显示详情_Web项目专项训练——火车车次信息管理系统代码分享
  18. 解读 2s-AGCN 代码
  19. 2022年计算机视觉产业链全景图谱,一文读懂计算机视觉产业链全局
  20. iwatch 苹果手表无法使用一号多设备 无法使用移动网络

热门文章

  1. java基础17 模板模式
  2. 好的设计要多分享,5款优秀在线原型设计案例
  3. php正则数字是否靓号,数字靓号正则表达式
  4. JSP流浪动物收容与领养管理系统
  5. 区块链会与io域名有什么关系
  6. Python基础学习_函数数def_返回值及返回值类型_函数块
  7. 致敬全球第一CEO杰克·韦尔奇,重温其卸任演讲
  8. 这届世界杯真是谁预测谁尴尬,他却要来一次现场直播预测……
  9. ThingsBoard调试部署和性能分析
  10. 设计模式总是学不会?是时候换个姿势了