FZU 1896 神奇的魔法数 dp
网上都说是数位dp 但是虽然在队伍里负责动态规划 但是数位dp还不会……
百度了一下 发现和最大子序列思路差不多……
最大子序列的dp[i][j]是表示两个序列前i项和前j项的最大子序列……
dp[i][j]表示前i位 尾数是j的魔法数的个数……
也不是特别不好理解……
但是还要好好理解一下……
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
using namespace std; int dp[][];
int a,b,m; long long func(int x){
int number[],len=;
long long sum=;
number[]=;
while(x){
number[++len]=x%;
x/=;
}
for(int i=;i<len;i++)
for(int j=;j<;j++)
sum+=dp[i][j];
for(int i=;i<number[len];i++)
sum+=dp[len][i];
for(int i=len-;i>;i--){
for(int j=;j<number[i];j++){
if(abs(j-number[i+])>=m) sum+=dp[i][j];
}
if(abs(number[i]-number[i+])<m) break;
}
return sum;
} int main(){
int T;
scanf("%d",&T);
while(T--){
scanf("%d%d%d",&a,&b,&m);
for(int i=;i<;i++)
dp[][i]=;
for(int i=;i<;i++)
for(int j=;j<;j++)
for(int k=;k<;k++)
if(abs(j-k)>=m)
dp[i][j]+=dp[i-][k];
printf("%lld\n",func(b+)-func(a));
memset(dp,,sizeof(dp));
}
return ;
}
FZU 1896 神奇的魔法数 dp的更多相关文章
- FZU 2129 子序列个数 (递推dp)
题目链接:http://acm.fzu.edu.cn/problem.php?pid=2129 dp[i]表示前i个数的子序列个数 当a[i]在i以前出现过,dp[i] = dp[i - 1]*2 - ...
- [bzoj1187][HNOI2007]神奇游乐园_插头dp
bzoj-1187 HNOI-2007 神奇游乐园 题目大意:经历了一段艰辛的旅程后,主人公小P乘坐飞艇返回.在返回的途中,小P发现在漫无边际的沙漠中,有一块狭长的绿地特别显眼.往下仔细一看,才发现这 ...
- 百练2755:神奇的口袋(简单dp)
描述有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40.John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an.John可以从这些物品中选择一些 ...
- FZU 2093 找兔子 状压DP
题目链接:找兔子 n的范围是[1, 15],可以用0 到 (1<<n)-1 的数表示全部状态,用dp[i] = t表示到达状态i的最少时间是t,对于每个点,如果它能到达的所有点在t秒时都已 ...
- BZOJ1187 [HNOI2007]神奇游乐园(插头dp)
麻麻我会写插头dp了! 推荐陈丹琦论文:https://wenku.baidu.com/view/3e90d32b453610661ed9f4bd.html 破题调一年 #include <cs ...
- [HNOI2007]神奇游乐园(插头DP)
题意:n*m的矩阵内值有正有负,找一个四连通的简单环(长度>=4),使得环上值的和最大. 题解:看到2<=m<=6和简单环,很容易想到插头DP,设f[i][j][k]表示轮廓线为第i ...
- BZOJ 3790 神奇项链(manacher+DP+树状数组)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3790 [题目大意] 问最少用几个回文串可以构成给出串,重叠部分可以合并 [题解] 我们 ...
- [BZOJ1187]神奇游乐园(插头DP)
Description 题意给定一个矩阵,每个格子有权值,在[-1000.1000]内,求一条回路使得回路经过权值和最大,每个格子最多经过一次 2≤n≤100,2≤m≤6 Code #include ...
- 洛谷P3190 [HNOI2007]神奇游乐园(插头dp)
传送门 大概是算第一道自己做出来的插头dp? (虽然都是照着抄板子的) (虽然有个地方死活没调出来最后只能看题解才发现自己错在哪里的) 我就当你们都会插头dp了…… 因为必须得是一条路径,所以扫描线上 ...
随机推荐
- svn用Cornerstone上传项目丢失静态库.a问题的解决
最近电脑重装系统后,装上Cornerstone上传项目后,发现又有丢失.a文件的问题,这里说一下解决办法,打开Preferences-->Subversion-->General,将Use ...
- 关于wkwebview
一.引入库 #import <WebKit/WebKit.h> 二.初始化有两种方式 // 默认初始化 - (instancetype)initWithFrame:(CGRect)fram ...
- 邂逅python
你很美 幸运遇见你 很幸运,能在现在这么多繁杂的语言中选择python.初识python是在2016年的七月.大二学期刚刚结束,留在学校准备学点东西.刚好听同学说下学期要学习python,所以决定要学 ...
- android平台短视频技术之 视频编辑的经验分享.
android平台短视频技术之 视频编辑的经验分享. 提示一: 各位看官,这里分享的是视频编辑,即剪切/拼接/分离/合并/涂鸦/标记/叠加/滤镜等对视频的编辑操作.不是流媒体网络播放等功能,请注意. ...
- magento里get与post传值如何接收
$this->getRequest()->getParam('customer_id');这个方法就是获取post和get的值就不用$_POST['']了.$this->getReq ...
- SAP HANA中创建计算视图(Calculation View)
[Step By Step]SAP HANA中创建计算视图(Calculation View) Demo Instruction: 该视图将两个表AUDIOBOOKS和BOOKS中的数据进行连接,并作 ...
- 8、关于viewWithTag
1.viewWithTag检索tag的方法问题viewWithTag方法会对当前View和其子View进行搜索,查找符合tag的对象,但如果view和其多个子view中都含有相同tag值对象时,该方法 ...
- javascript语言学习笔记。
js类创建方法 var DogKing = function(dogName){ this.dogName = dogName; }; var myDogKing = new DogKing(&quo ...
- android studio的lib和jniLibs
在android studio 中添加jar和so时,将jar文件直接拷贝到 项目目录\app\libs下即可,将so文件按照平台分类目录放到 项目目录\app\src\main\jniLibs\平台 ...
- HDU 2177 取(2堆)石子游戏 (威佐夫博弈)
题目思路:威佐夫博弈: 当当前局面[a,b]为奇异局时直接输出0 否则: 1.若a==b,输出(0 0): 2.将a,b不停减一,看能否得到奇异局,若有则输出: 3.由于 ak=q*k(q为黄金分割数 ...