正解:数位dp

解题报告:

传送门!

这题一看就是个数位dp鸭,"不含前导零且相邻两个数字之差至少为2"这种的

然后就直接套板子鸭(板子戳总结,懒得放链接辣QAQ

然后就是套路

然后就没了,,,

昂对了这题还有一个,分块暴力做法233333

就很强,很想学

我先把数位dp的代码放上来再港分块暴力方法hhhhh

#include<bits/stdc++.h>
using namespace std;
#define il inline
#define rg register
#define ll long long
#define rp(i,x,y) for(rg ll i=x;i<=y;++i)
#define my(i,x,y) for(rg ll i=x;i>=y;--i) const ll L=,lq=-;
ll a[L],dp[L][]; il ll read()
{
rg char ch=getchar();rg ll x=;rg bool y=;
while(ch!='-' && (ch>'' || ch<''))ch=getchar();
if(ch=='-')ch=getchar(),y=;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=getchar();
return y?x:-x;
}
ll dfs(ll pos,ll last,bool limit)
{
if(!pos)return ;
if(last>)if(!limit && dp[pos][last]!=-)return dp[pos][last];
rg ll up=limit?a[pos]:,as=,tmp;
rp(i,,up){if(abs(last-i)<)continue;tmp=i;if((last==lq) && (!tmp))tmp=lq;as+=dfs(pos-,tmp,limit && tmp==a[pos]);}
if(!limit && last>)dp[pos][last]=as;
return as;
}
il ll solve(ll x)
{
rg ll pos=;
while(x){a[++pos]=x%;x/=;}
return dfs(pos,lq,true);
} int main()
{
memset(dp,-,sizeof(dp));ll x=read(),y=read();printf("%lld\n",solve(y)-solve(x-));
return ;
}

这个是数位dp的代码QwQ

分块暴力是这样儿的:

首先可以看出,2000000000不是一个很大的数,考虑用暴力

然后为了防止代码过长,可以每隔1000000打出一个数

然后就大块维护局部朴素

妙的是思想,代码很简单,就不放了

主要是懒得打辣QAQ

洛谷P2657 windy数 [SCOI2009] 数位dp的更多相关文章

  1. 洛谷 - P2657 - windy数 - 数位dp

    https://www.luogu.org/problemnew/show/P2657 不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. 这道题是个显然到不能再显然的数位dp了. 来个 ...

  2. 洛谷P2657 windy数

    传送 裸的数位dp 看这个题面,要求相邻两个数字之差至少为2,所以我们记录当前填的数的最后一位 同时要考虑毒瘤的前导0.如果填的数前面都是0,则这一位填0是合法的. emmm具体的看代码叭 #incl ...

  3. BZOJ_1026_[SCOI2009]windy数_数位DP

    BZOJ_1026_[SCOI2009]windy数_数位DP 题意:windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道, 在A和B之 ...

  4. windy数(简单数位DP)

    1026: [SCOI2009]windy数 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 6306  Solved: 2810[Submit][Sta ...

  5. 洛谷P2657 [SCOI2009]windy数 题解 数位DP

    题目链接:https://www.luogu.com.cn/problem/P2657 题目大意:找区间 \([A,B]\) 范围内 不含前导零 且 相邻两个数字之差至少为2 的正整数的个数. 题目分 ...

  6. bzoj 1026 [SCOI2009]windy数(数位DP)

    1026: [SCOI2009]windy数 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 4550  Solved: 2039[Submit][Sta ...

  7. bzoj1026: [SCOI2009]windy数(数位dp)

    1026: [SCOI2009]windy数 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 8203  Solved: 3687[Submit][Sta ...

  8. 2018.06.30 BZOJ1026: [SCOI2009]windy数(数位dp)

    1026: [SCOI2009]windy数 Time Limit: 1 Sec Memory Limit: 162 MB Description windy定义了一种windy数.不含前导零且相邻两 ...

  9. 1026: [SCOI2009]windy数(数位dp)

    1026: [SCOI2009]windy数 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 9016  Solved: 4085[Submit][Sta ...

随机推荐

  1. ASPX代码加固小结

    1.replace替换 <%@Page Language="C#"%> <% string strID=Request["id"]; strI ...

  2. C++开发--在Visual Studio2013中使用boost::split()编译过程中出现error C4996

    Visual Studio is being overly cautious.  In debug mode, visual studio uses something called "Ch ...

  3. Swift - 可选类型详解

    可选类型详解 直接上代码解释 // 类中所有的属性在对象初始化时,必须有初始化值 class Person : NSObject { var name : String? var view : UIV ...

  4. 树莓派3b配置耳机音频输出

    耳机输出 amixer cset numid=3 1 然后,播放既可,有杂音. hdmi输出 amixer cset numid=3 2

  5. 【大数据系列】hadoop单节点安装官方文档翻译

    Hadoop: Setting up a Single Node Cluster. HADOOP:建立单节点集群 Purpose Prerequisites Supported Platforms R ...

  6. 让某个软件无法被操作员最小化(C#演示)

    有一次在生产线上, 有一个显示激光轮廓的软件被操作员最小化了, 结果悲剧了, 轮廓图像都抓不到了. 原先的设想的操作流程是这个软件是不能被操作员最小化的, 但可惜不能指望员工这么能守规矩. 看来只能在 ...

  7. EGL 1.0 学习笔记

    http://hi.baidu.com/leo_xxx/item/b01b1fc29abff355ac00ef5c 基本概念 EGL是OpenGL ES与本地Window系统之间的桥梁.EGL创建渲染 ...

  8. Mycat的简易安装及测试

    1.环境 OS版本 CentOS release 6.5 (Final) 64bit DB版本 Mysql 5.6.37 Mycat 1.6 jdk1.7及以上版本 2.实战部署 1.创建用户及用户组 ...

  9. C# 给主程序签名及第三方dll强签名操作

    1.给主程序添加签名   添加完成后会自动生成一个*.pfx文件.     2.给第三方程序添加强签名方法:   本文以WAPIWrapperCSharp.dll为例,使用vs Tools下的工具命令 ...

  10. sencha touch 坑爹的Panel,数据不显示了...

    一位同学问我一个问题: sencha touch中xtype创建dataview死活不显示!!版本2.3.1,MVC模式,sencha touch创建目录程序很简单,主界面一个tabPanel,两个分 ...