「SCOI2014」方伯伯的商场之旅

我一开始的想法会被两个相同的集合位置去重给搞死,不过应该还是可以写的,讨论起来老麻烦。

可以先钦定在\(1\)号点集合,然后往后调整一部分。

具体一点,通过前缀和减去后缀和的正负性移动

写的时候把\(sum\)压进去搞会非常简单


Code

#include <cstdio>
#include <cstring>
#define ll long long
ll dp[25][3000];int bit[25],k;
ll dfs(int dep,int sum,int limit)
{
if(dep==0) return sum;
if(!limit&&~dp[dep][sum]) return dp[dep][sum];
ll ret=0;
for(int i=0,up=limit?bit[dep]:k-1;i<=up;i++)
ret+=dfs(dep-1,sum+(dep-1)*i,limit&i==up);
return limit?ret:dp[dep][sum]=ret;
}
ll dfs(int dep,int pos,int sum,int limit)
{
if(sum<0) return 0;
if(dep==0) return sum;
if(!limit&&~dp[dep][sum]) return dp[dep][sum];
ll ret=0;
for(int i=0,up=limit?bit[dep]:k-1;i<=up;i++)
ret+=dfs(dep-1,pos,sum+(dep<pos?-1ll:1ll)*i,limit&i==up);
return limit?ret:dp[dep][sum]=ret;
}
ll cal(ll x)
{
int cnt=0;
while(x)
{
bit[++cnt]=x%k;
x/=k;
}
memset(dp,-1,sizeof dp);
ll ret=dfs(cnt,0,1);
for(int i=2;i<=cnt;i++)
memset(dp,-1,sizeof dp),ret-=dfs(cnt,i,0,1);
return ret;
}
int main()
{
ll l,r;
scanf("%lld%lld%d",&l,&r,&k);
printf("%lld\n",cal(r)-cal(l-1));
return 0;
}

2019.2.23

「SCOI2014」方伯伯的商场之旅 解题报告的更多相关文章

  1. 「SCOI2014」方伯伯的商场之旅

    「SCOI2014」方伯伯的商场之旅 题目描述 方伯伯有一天去参加一个商场举办的游戏.商场派了一些工作人员排成一行.每个人面前有几堆石子.说来也巧,位置在 \(i\) 的人面前的第 \(j\) 堆的石 ...

  2. 「SCOI2014」方伯伯运椰子 解题报告

    「SCOI2014」方伯伯运椰子 可以看出是分数规划 然后我们可以看出其实只需要改变1的流量就可以了,因为每次改变要保证流量守恒,必须流成一个环,在正负性确定的情况下,变几次是无所谓的. 然后按照套路 ...

  3. 「SCOI2014」方伯伯的 OJ 解题报告

    「SCOI2014」方伯伯的 OJ 和列队有点像,平衡树点分裂维护即可 但是需要额外用个set之类的对编号查找点的位置 插入完了后记得splay,删除时注意特判好多东西 Code: #include ...

  4. 「SCOI2014」方伯伯的玉米田 解题报告

    #2211. 「SCOI2014」方伯伯的玉米田 发现是取一个最长不下降子序列 我们一定可以把一个区间加的右端点放在取出的子序列的最右边,然后就可以dp了 \(dp_{i,j}\)代表前\(i\)个玉 ...

  5. [BZOJ3598][SCOI2014]方伯伯的商场之旅(数位DP,记忆化搜索)

    3598: [Scoi2014]方伯伯的商场之旅 Time Limit: 30 Sec  Memory Limit: 64 MBSubmit: 449  Solved: 254[Submit][Sta ...

  6. 洛谷P3286 [SCOI2014]方伯伯的商场之旅

    题目:洛谷P3286 [SCOI2014]方伯伯的商场之旅 思路 数位DP dalao说这是数位dp水题,果然是我太菜了... 自己是不可能想出来的.这道题在讲课时作为例题,大概听懂了思路,简单复述一 ...

  7. 【bzoj3598】: [Scoi2014]方伯伯的商场之旅

    Description 方伯伯有一天去参加一个商场举办的游戏.商场派了一些工作人员排成一行.每个人面前有几堆石子.说来也巧,位置在 i 的人面前的第 j 堆的石子的数量,刚好是 i 写成 K 进制后的 ...

  8. [SCOI2014]方伯伯的商场之旅

    Description 方伯伯有一天去参加一个商场举办的游戏.商场派了一些工作人员排成一行.每个人面前有几堆石子.说来也巧,位置在 i 的人面前的第 j 堆的石子的数量,刚好是 i 写成 K 进制后的 ...

  9. 【数位DP】SCOI2014 方伯伯的商场之旅

    题目内容 方伯伯有一天去参加一个商场举办的游戏.商场派了一些工作人员排成一行.每个人面前有几堆石子. 说来也巧,位置在 \(i\) 的人面前的第 \(j\) 堆的石子的数量,刚好是 \(i\) 写成 ...

随机推荐

  1. JEECG 单点登录 SSO

    jeecg中用户登录的唯一性-CSDN问答https://ask.csdn.net/questions/656639 JEECG 集成KiSSO单点登录实现统一身份认证 - zhangdaiscott ...

  2. js判断是否是微信浏览器以及重定向

    async created () {//这个是判断是否是微信浏览器, let ua = navigator.userAgent.toLowerCase() if (ua.match(/MicroMes ...

  3. asp.net core Api配置swagger

    这个很简单的一篇文章用来记录以下使用swagger的过程,以后有用. 1.nuget 下载install-package Swashbuckle.AspNetCore 2.startup里面confi ...

  4. 理解ORM的前提:数据库中的范式和约束

    理解ORM的前提:数据库中的范式和约束 一.数据库中的范式: 范式, 英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出 ...

  5. Bootstrap知识记录:表格和按钮

    基本格式.table3.带边框的表格//给表格增加边框<table class="table table-bordered">4.悬停鼠标//让<tbody> ...

  6. [转帖]Windows 操作系统有哪些原生的工具和软件不被人了解却很有用?

    Windows 操作系统有哪些原生的工具和软件不被人了解却很有用? 蛋蛋 司马米青E1E1九木 https://www.zhihu.com/question/25343481/answer/30798 ...

  7. [转帖]Oracle 裁员史:技术人死于重组,卒于云计算

    Oracle 裁员史:技术人死于重组,卒于云计算 https://www.infoq.cn/article/tm-mcdHCPCI4eEwr6dbY 大厂裁员 我妈妈也总担心我没工作了 怎么还房贷 田 ...

  8. Chrome 浏览器的简单设置 无痕模式 暗黑模式 自定义用户目录

    1. Chrome73 新增加了暗黑模式 可以通过修改快捷方式的方式来默认开启方法如下 1.1 关闭浏览器 2.2 鼠标焦点定位到任务栏 Chrome 图标处, 并且按住shift 按键 执行右键操作 ...

  9. 4.请介绍一下c++和Java的区别

    1.指针 2.c++多重继承,Java只能继承一个父类,但是可以继承多个接口 3.数据类型及类,Java完全面向对象,所有函数和变量都必须是类的一部分.而c++允许将函数和变量定义为全局,Java取消 ...

  10. python之路-列表、元组、range

    一 . 列表 # 列表的定义 列表就是能装对象的对象 在python中用[ ]来描述列表,内部元素用逗号隔开,对数据类型没有要求 索引和切片 lst = ["天龙八部", &quo ...