简单数位DP

数位dp简单题目汇总 地址:http://acm.hdu.edu.cn/showproblem.php?pid=2089 不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 15221    Accepted Submission(s): 阅读详情

https://cn.vjudge.net/problem/HDU-4722

懒得写看,代码注释吧;主要存板子


#include <cstdio>
#include <cstring>
#include <cctype>
#include <cmath>
#include <set>
#include <map>
#include <list>
#include <queue>
#include <deque>
#include <stack>
#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
#include <stdlib.h>
#include <time.h>
using namespace std;
typedef long long LL;
const int INF=2e9+1e8;

const int MOD=1e9+7;
const int MAXSIZE=1e6+5;
const double eps=0.0000000001;
void fre()
{
    freopen("in.txt","r",stdin);
    freopen("out.txt","w",stdout);
}
#define memst(a,b) memset(a,b,sizeof(a))
#define fr(i,a,n) for(int i=a;i<n;i++)

/**
 dp[i][j] 代表从高位到i位求和余数为j的;先写dfs,最后再把dp加入就好了,
 还有爆int 需要注意。

*/

LL dp[111][20]; 
int bits[100];
LL dfs(int pos,int sum,bool flag)//pos代表位置,sum代表求和之后的余数,flag代表是否是0~9
{
    if(pos==0) return sum==0;
    if(flag&&dp[pos][sum]!=-1) return dp[pos][sum];
    int len=flag?9:bits[pos];//flag为真 0~9,
    LL res=0;
    for(int i=0;i<=len;i++)
        res+=dfs(pos-1,(sum+i)%10,i!=len||flag);//
    if(flag) dp[pos][sum]=res;
    return res;
}


LL get(LL x)
{
    if(x<0) return 0;
    int i=0;
    while(x>0) bits[++i]=x%10,x/=10;
    return dfs(i,0,false);
}
int main()
{
   // test();
    int cas=0,ncase;
    scanf("%d",&ncase);
    memset(dp,-1,sizeof(dp));
    while(ncase--)
    {
        int i=0;
        LL l,r;
        cin>>l>>r;
        printf("Case #%d: %I64d\n",++cas,get(r)-get(l-1));
    }
    return 0;
}

/**************************************************/
/**             Copyright Notice                 **/
/**  writer: wurong                              **/
/**  school: nyist                               **/
/**  blog  : http://blog.youkuaiyun.com/wr_technology  **/
/**************************************************/



matlab安装libsvm常见问题 matlab安装libsvm常见问题 libsvm的官网链接:LIBSVM -- A Library for Support Vector Machines. 阅读详情

相关推荐

第10章:位同步与Gardner环路(1)

第10章(1)内容如下:一、位同步与载波同步的区别1、采样时钟相位偏差的影响2、采样时钟频率偏差的影响二、Gardner环路算法与插值方法1、插值滤波器2、Gardner误差检查算法三、Gardner环路中环路滤波器与数字振荡器设计1、环路滤波器2、数控振荡器(NCO)四、Gardner环路的可运行MATLAB代码五、参考资料六、致谢 最近搞懂了Gardner环路的一些知识,于是更新第10章——位同步。 如果你稍不留意的话,这可能是你在网上能看到的介绍Gardner环路及其MATLAB仿真最详细的一篇文章了

weixin_44283855的博客 1万+

数位dp的简单模板

摘自https://blog.youkuaiyun.com/wust_zzwh/article/details/52100392 typedef long long ll; int a[20]; ll dp[20][state];//不同题目状态不同 ll dfs(int pos,/*state变量*/,bool lead/*前导零*/,bool limit/*数位上界变量*/)//不是每个题都要...

weixin_30852419的博客 65

2023-ICCV-隐式神经网络实现低光照图像增强(NeRCo)论文解读+代码解析

NeRCo()提出了一种名为NeRCo的隐式神经表示方法,用于合作式低光图像增强。现有的低光图像增强方法存在以下三个限制:不可预测的亮度降低和噪声、度量友好版本和视觉友好版本之间的固有差距,以及有限的配对训练数据。为了解决这些限制,论文提出了NeRCo方法,它以无监督的方式稳健地恢复感知友好的结果。具体而言,NeRCo通过一个可控的拟合函数统一了现实场景中多样的退化因素,从而提高了鲁棒性。对于输出结果,论文引入了来自预训练视觉-语言模型的先验信息,采用语义导向的监督方法。

weixin_45595504的博客 3184

简单的数位dp

hdu 2089 设dp[len][flag],flag = 1表示前一位是6,否则前一位不是6. #include #include #include #include #include #include #include #include #include #include #include #include #include #define LL __i

1342

CIC-IDS2017数据集训练和测试

1、数据集预处理 1.1整合数据并剔除脏数据 如上图所示,整个数据集是分开的,想要训练,必须要整合在一起,同时在数据集中存在Nan和Infiniti脏数据(只有第15列和第16列存在)需要剔除: 具体代码如下: ```python importpandasaspd #按行合并多个Dataframe数据 defmergeData(): monday=writeData("data\MachineLearningCVE\Monday-W...

蓝亚之舟的博客 2万+

关于VS2019调试问题:进程已退出,代码为-1073741819(已解决)

关于VS2019调试问题:进程已退出,代码为-1073741819(已解决) 详情:上一篇发了这个进程问题,在我翻阅了《c语言程序设计第四版》和《算法与数据结构》两本书对照代码加上调试终于找到了解决方法 解决方法: 首先找到项目的源文件右击找到属性 然后选择从生成中排除选择是! 重新生成解决方案,发现代码问题: 之前的代码: #include <stdio.h> #include <stdlib.h> #include <malloc.h> #include &lt

qq_51553982的博客 1万+

简单数位DP总结

数位DP

CrystalDavid的博客 448

PLSQL 14.0.6 下载使用教程

众所周知,PLSQL 只是一个oracle第三方开发测试工具,它依赖oracle 客户端搭配使用,但是oracle 客户端有2G,相当庞大,不建议安装。所以我们如果下载安装好PLSQL,再下载好轻量级的支持远程链接的oracle客户端,这样搭配使用可以的话就最好了,答案是可以的。 第一步: PLSQL 下载与安装 PLSQL 14.0.6 下载地址 : https://www.allroundautomations.com/registered-plsqldev/ 下载下来,除了安装路径更改一下,

qq976511508的博客 2134

简单数位dp

如:34 与 345 , 由于前面的数都贴合,所以当我们枚举下一位的时候,我们枚举的选择只能是 0~5. 也就是0~N在这一位的数位。我们第一个数枚举的是1,显然,不管后面五个数是什么,我们都不会超过N,所以,在不受限制的情况下,后面五个数能产生的1的总和是固定的。枚举完以1开头的数后,当我们枚举到以2开头的数,发现此时后面五个数仍然不受限制,所以,这与上一种的答案是一样的。如果我们枚举的数,从某一位开始不贴合的话,那么从这一位之后,每一位的枚举范围,将不受限。// 如果枚举完了,直接返回sum。

louisdlee的博客 586

SAP CO实战:如何用KKA2/CJ88结果分析码搞定项目收入成本匹配(附真实案例)

本文深入解析了SAP CO模块中结果分析码KKA2/CJ88的核心应用,通过真实案例详细阐述了如何在成本波动剧烈的销售型项目中,运用结果分析实现收入与成本的精准匹配。文章重点拆解了不同结果分析方法的适用场景与财务影响,并提供了从配置、操作到问题排查的完整实战指南,帮助财务顾问提升项目财务管理能力。

qsc9012345的博客 607

手把手教你用Cesium和RayMarching实现逼真体积云(附完整Shader代码)

本文详细介绍了如何利用Cesium和RayMarching技术实现逼真的体积云效果,包括环境准备、核心逻辑、云层建模和光照增强等关键步骤,并提供了完整的Shader代码。通过噪声函数选型、动态风场模拟和多重散射近似等技术,开发者可以在数字地球可视化项目中创建沉浸式天气效果,显著提升场景的真实感。

weixin_29230649的博客 415

数位dp入门,简单dp

通常我们会遇到这样的一类问题:给定一个上下限,求这个区间内满足某个条件的数的个数。一般最简单的解法就是暴力枚举了:for(int i = low;i &lt;= up;i++) { if(right(condition)) count++; }//low为下限,up为上限,right(condition)为给定的条件 但是往往区间会开的很大,这时候就会超时,...

zhouzzz000的博客 508

订餐平台餐厅信息抓取:使用Python爬虫获取商家信息和用户评价

在这篇博客中,我们展示了如何使用Python爬虫抓取订餐平台上的餐厅信息和用户评价数据。通过使用requests和Selenium,我们能够有效地从静态和动态网页中提取数据,并使用pandas和matplotlib对数据进行存储和分析。未来,您可以根据需求进一步扩展功能,例如增加错误处理、增加抓取多个页面的能力,或者使用高级技术如分布式爬虫来抓取更大规模的数据。

2201_76125261的博客 1651

数位dp简单总结

洛谷日报原文 一些总结: 数位dp的用法 求出在给定区间[A,B]内,符合条件f(i)的数i的个数。条件f(i)一般与数的大小无关,而与数的组成有关。 最高位标记limit的理解 若当前位limit=1而且已经取到了能取到的最高位时,下一位limit=1; 若当前位limit=1但是没有取到能取到的最高位时,下一位limit=0; 若当前位limit=0时,下一位limit=0。 当limit=0时,当前位可取0~9中的任一数字 当limit=1时,当前位pos只可取能取到的最高位(即上界数字的pos位

群山中的菜鸡 202

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Dp练习 -Sakura数 简单数位DP

思路:简单数位DP,dp[pos][pre]表示枚举到pos位时前一位为pre。 考虑前导0以及数据范围自然溢出。 Code: #include &lt;bits/stdc++.h&gt; #define LL unsigned long long using namespace std; const int AX = 20+2; int a[AX]; LL dp[AX][15]; L...

Dave_lzw的博客 458

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【算法小讲堂】数位dp(简单入门)

数位打牌 爷爷,你没有关注的博主又更新博客啦!!   数位dp(打牌),这是一个相当深刻的话题。在不会这个内容的时候就是一脸懵逼。这里我们主要介绍的是dfs模式实现的数位打牌模式   当然博主也不是说自己会这个高深的算法了,只是看(抄)完别人的代码,突有所悟。又厚颜无耻的出一期博客啦! 先来个简单点的问题吧。 给出一个数n,1~n有多少数不包含49,测试数据1<=T<=10000,1...

生姜也想变好吃的博客 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

数位dp的简单使用

题目:给出不多1000位的数,每一位由0、1、2、3组成。 条件:所有的0都在1之前,所有的2都在3之前,0不能在首位,另外0、1、2、3必须出现至少一次。由于数较大所以结果对1000000007取余。 问题:求满足条件的数的数量。 分析:明显这类题目是无法通过暴力遍历解决的。所以需要通过数位dp解决。 #include #include #include using namespace

koobee1的博客 384

简单数位dp及对前导0的理解

数位dp的实质: 一种快速枚举的方式,它满足dp的性质,然后进行记忆化搜。 例题 :牛客-数位小孩 题目描述: 九峰最近沉迷数位dp,这天他又造了个数位dp题: 给出一个区间[l,r][l,r][l,r],求这个区间内有多少个数字满足如下条件: 1.每相邻两个数位和为素数。 2.其中至少一个数位为1。 3.没有前导0。 请你编写程序帮他该题。 输入描述: 一行两个整数l,r(1 <= l <= r <= ),表示给出的区间为[l,r]。 输出描述: 一行一个整...

weixin_52193673的博客 4844

bzoj 1026--windy数 简单数位DP

简单数位DP。 dp[len][start]相当于长度为len,首位数为start符合情况的数的个数,转移方程很容易想得到。 #include&amp;lt;cstdio&amp;gt; #include&amp;lt;cstdlib&amp;gt; using namespace std; long long dp[20][10]; void init(){ for(int i=0;i&amp;lt;10;i++) ...

kaven 1485

HDU 3555 Bomb 简单数位DP

题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=3555

Angry Grass 602

数位dp模板简单解析

数位dp

404 Not Found 809

数位dp,区间dp,状压dp简单笔记

1数位dp主要用于寻找区间[l,r]中满足一定条件的数的数量 2先找到[1,r]中满足条件的数的数量,再减去[1,l-1]满足条件的数的数量,类似于前缀和 3dp的数据一般由一个二维数组构成,第一个一般为当前的位数,第二个记录状态,比如前一位的数字(可以用于寻找某些不允许某数字在一起的情况),用一个flag记录每次选取的数是否贴着r的当前位上的数走,主要是为了保证选出来的数小于r,比如r=785,如果一个三位数前两位是78,那么个位数必然小于5,如果前两位为77,那么各位就可以随便取......

佯设的博客 500

HDU3555 Bomb——简单数位DP

点这里 题意: 统计n以内含49的数的个数。 题解: 定义状态dp[i][] dp[i][0]表示i位数里不含49的个数。 dp[i][1]表示i位数里不含49,但首位是9的个数。 dp[i][2]表示i位数里含49的个数。 过程中犯的错: dig数组忘记初始化,影响下一次数据的答案。 一般DP #include<bits/stdc++.h> using namespace std; typedef long long ll; int t, dig[65]; ll n, dp[6

lllllan 185

数位dp 的简单入门

时间紧张,就不讲那么详细了。 之前一直被深搜代码误解,以为数位dp 其实就是记忆化深搜...(虽说爆搜确实很舒服而且还好想) 但是后来发现数位dp 的标准格式其实是 预处理 + dp ...... 数位dp 的介绍 数位 dp 其实就是让你处理出某一区间范围内满足条件的数的个数,但是一般这个区间范围都是令人绝望的大...比如 1e9 都算良心了,常规的都是 1e18 甚至是...

weixin_30677617的博客 194
上一篇: 主席树学习--入门
下一篇: 值域线段树 bzoj 4627
Code--Dream
博客等级 码龄11年 53粉丝 100原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值