数位DP


cxlove基础数位DP第三题

= =预处理是个很有用的东西!然后就是分类讨论!

  1. /**************************************************************
  2. Problem: 1026
  3. User: Tunix
  4. Language: C++
  5. Result: Accepted
  6. Time:0 ms
  7. Memory:1272 kb
  8. ****************************************************************/
  9.  
  10. //BZOJ 1026
  11. #include<cmath>
  12. #include<vector>
  13. #include<cstdio>
  14. #include<cstring>
  15. #include<cstdlib>
  16. #include<iostream>
  17. #include<algorithm>
  18. #define rep(i,n) for(int i=0;i<n;++i)
  19. #define F(i,j,n) for(int i=j;i<=n;++i)
  20. #define D(i,j,n) for(int i=j;i>=n;--i)
  21. #define pb push_back
  22. using namespace std;
  23. int getint(){
  24. int v=,sign=; char ch=getchar();
  25. while(!isdigit(ch)) {if(ch=='-') sign=-; ch=getchar();}
  26. while(isdigit(ch)) {v=v*+ch-''; ch=getchar();}
  27. return v*sign;
  28. }
  29. const int N=1e7+,INF=~0u>>;
  30. const double eps=1e-;
  31. /*******************template********************/
  32. int dp[][];
  33. void init(){
  34. F(i,,) dp[][i]=;
  35. F(i,,)
  36. F(j,,)
  37. F(k,,)
  38. if (abs(j-k)>=) dp[i][j]+=dp[i-][k];
  39. }
  40. int solve(int n){
  41. int len=,bit[];
  42. for(;n;n/=) bit[++len]=n%;
  43. bit[len+]=;
  44. int ans=;
  45. //长度为1~len-1的
  46. F(i,,len-)
  47. F(j,,)
  48. ans+=dp[i][j];
  49. //长度为len,但最高位没达到上界
  50. F(j,,bit[len]-) ans+=dp[len][j];
  51. //长度为len,且最高位达到上界
  52. D(i,len-,){
  53. F(j,,bit[i]-)
  54. if (abs(j-bit[i+])>=) ans+=dp[i][j];
  55. if (abs(bit[i]-bit[i+])<) break;
  56. }
  57. return ans;
  58. }
  59. int main(){
  60. init();
  61. int l,r;
  62. while(scanf("%d%d",&l,&r)!=EOF)
  63. printf("%d\n",solve(r+)-solve(l));
  64. return ;
  65. }

【BZOJ】【1026】【SCOI2009】Windy数的更多相关文章

  1. bzoj 1026 [SCOI2009]windy数 数位dp

    1026: [SCOI2009]windy数 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline ...

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

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

  3. BZOJ 1026: [SCOI2009]windy数( dp )

    dp..dp(x, t) 表示共x位, 第x位为t有多少个windy数. 对答案差分, 我们只需统计1 ~ l-1和1 ~ r的windy数数量. 考虑如何计算[1, n]的答案 : 从最高位到最低位 ...

  4. bzoj 1026 [ SCOI2009 ] windy数 —— 数位DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1026 蛮简单的数位DP,预处理 f[i][j] 表示 i 位数,以 j 开头的 windy ...

  5. BZOJ 1026: [SCOI2009]windy数 【数位dp】

    Description windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道,在A和B之间,包括A和B,总共有多少个windy数? In ...

  6. bzoj 1026: [SCOI2009]windy数 & 数位DP算法笔记

    数位DP入门题之一 也是我所做的第一道数位DP题目 (其实很久以前就遇到过 感觉实现太难没写) 数位DP题目貌似多半是问从L到R内有多少个数满足某些限制条件 只要出题人不刻意去卡多一个$log$什么的 ...

  7. BZOJ 1026: [SCOI2009]windy数

    题目 人生中的第一道数位dp,很有趣,虽然我很快推出了结构,但是过程却迟迟没有写出来,最后看别人的题解才恍然大悟 d[i][j]表示数位为i,最高位为j的方案数 DpInit非常简单,复杂度应该是O( ...

  8. bzoj 1026: [SCOI2009]windy数【数位dp】

    忘记limit不能记WA了一发-- 典型数位dp,变成work(r)-work(l-1),然后dfs的时候记录w当前位置,la上一个数选的什么,lm当前位是否有上限,ok当前位是否可以不考虑差大于等于 ...

  9. bzoj 1026 [SCOI2009]windy数——数位dp水题

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1026 迷恋上用dfs写数位dp了. #include<iostream> #in ...

  10. 数位DP BZOJ 1026 [SCOI2009]windy数

    题目链接 前面全是0的情况特判 #include <bits/stdc++.h> int dp[10][10]; int digit[10]; int DFS(int pos, int v ...

随机推荐

  1. WebService 的创建,部署和使用

    WebService,即Web服务,能使得运行在不同机器上的不同应用无须借助,专门的第三方软件或硬件,就可相互交换数据或集成. 第一次选择WebService,是为了替代数据库远程连接.我们都知道当S ...

  2. org.springframework.util.Assert

    方法入参检测工具类 Web 应用在接受表单提交的数据后都需要对其进行合法性检查,如果表单数据不合法,请求将被驳回. 类似的,当我们在编写类的方法时,也常常需要对方法入参进行合 法性检查,如果入参不符合 ...

  3. JS学习第三课

    写表格时最好自己写上<tbody>,因为在JS里面要用,要不然html里没有,但是我们在JS里面用得飞起,也说不过去啊. 获取表格元素时,tBodis[0]一定要加上,本人试过不加,然后就 ...

  4. 分享web前端七款HTML5 Loading动画特效集锦

    以前我们大部分的Loading动画都是利用gif图片实现的,这种图片实现Loading动画的方法虽然也很不错,但是作为HTML5开发者来说,如果能利用HTML5和CSS3实现这些超酷的Loading动 ...

  5. 3D球状标签云(兼容IE8)

    看见一个很有趣的标签云,3D球状,兼容 IE 8,亲测可用!其他版本没有测试.觉得挺有意思就拿来记录下来,学习学习,本文下方会放出我看的文章地址,先看一下效果: 接下来是代码,html + css + ...

  6. Codevs 1003 电话连线

    时间限制: 1 s   空间限制: 128000 K   题目等级 : 黄金 Gold 题目描述 Description 一个国家有n个城市.若干个城市之间有电话线连接,现在要增加m条电话线(电话线当 ...

  7. .NET清除Session 的几个方法[clear/removeAll/remove/Abandon]

    1.clear() 清空所有session对象的值,但保留会话   2.removeAll() 调用clear()方法   3.remove("SessionName") 删除某个 ...

  8. hidden(隐藏域)

    <input type="hidden">? 这等于是隐藏值,客户端无需显示,但提交后后台能够接受,例如你放个表单验证值在里边,这样可以拒绝来源不明的表单提交.还有判断 ...

  9. 采用Service实现本地推送通知

    在android的应用层中,涉及到很多应用框架,例如:Service框架,Activity管理机制,Broadcast机制,对话框框架,标题栏框架,状态栏框架,通知机制,ActionBar框架等等. ...

  10. 数据库连接字符串大全 资料引用:http://www.knowsky.com/339545.html

    转自:http://www.connectionstrings.com/ • SQL Server • ODBC ◦ Standard Security: "Driver={SQL Serv ...