[POJ3252]Round Number(数位dp)

题目链接:http://poj.org/problem?id=3252

题意:求范围内数字二进制下0的个数大于等于1的个数的数的个数。

数位dp,dp(l,zero,one,fz)记录当前第l位时0的个数1的个数和当前位是否是前导零中的部分,dfs转移就行。

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 #define fr first
 4 #define sc second
 5 #define cl clear
 6 #define BUG puts("here!!!")
 7 #define W(a) while(a--)
 8 #define pb(a) push_back(a)
 9 #define Rint(a) scanf("%d", &a)
10 #define Rll(a) scanf("%I64d", &a)
11 #define Rs(a) scanf("%s", a)
12 #define Cin(a) cin >> a
13 #define FRead() freopen("in", "r", stdin)
14 #define FWrite() freopen("out", "w", stdout)
15 #define Rep(i, len) for(int i = 0; i < (len); i++)
16 #define For(i, a, len) for(int i = (a); i < (len); i++)
17 #define Cls(a) memset((a), 0, sizeof(a))
18 #define Clr(a, x) memset((a), (x), sizeof(a))
19 #define Full(a) memset((a), 0x7f7f7f, sizeof(a))
20 #define lrt rt << 1
21 #define rrt rt << 1 | 1
22 #define pi 3.14159265359
23 #define RT return
24 #define lowbit(x) x & (-x)
25 #define onecnt(x) __builtin_popcount(x)
26 typedef long long LL;
27 typedef long double LD;
28 typedef unsigned long long ULL;
29 typedef pair<int, int> pii;
30 typedef pair<string, int> psi;
31 typedef pair<LL, LL> pll;
32 typedef map<string, int> msi;
33 typedef vector<int> vi;
34 typedef vector<LL> vl;
35 typedef vector<vl> vvl;
36 typedef vector<bool> vb;
37 
38 const int maxn = 34;
39 int digit[maxn];
40 LL dp[maxn][maxn][maxn][2];
41 
42 int k;
43 LL l, r;
44 
45 LL dfs(int l, int zero, int one, bool fz, bool flag) {
46   if(l == 0) return zero >= one;
47   if(!flag && ~dp[l][zero][one][fz]) return dp[l][zero][one][fz];
48   LL ret = 0;
49   int pos = flag ? digit[l] : 1;
50   Rep(i, pos+1) {
51     if(i == 0 && fz) ret += dfs(l-1, 0, one, fz, flag&&(pos==i));
52     else ret += dfs(l-1, zero+(i==0), one+(i==1), false, flag&&(pos==i));
53   }
54   if(!flag) dp[l][zero][one][fz] = ret;
55   return ret;
56 }
57 
58 LL f(LL x) {
59   int pos = 0;
60   while(x) {
61     digit[++pos] = x & 1;
62     x >>= 1;
63   }
64   return dfs(pos, 0, 0, true, true);
65 }
66 
67 signed main() {
68   //FRead();
69   Clr(dp, -1);
70   while(cin >> l >> r) {
71     cout << f(r) - f(l-1) << endl;
72   }
73   RT 0;
74 }

 

转载于:https://www.cnblogs.com/kirai/p/5895205.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/470080.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2学习率调整_学习率衰减

之前我们的优化&#xff0c;主要是聚焦于对梯度下降运动方向的调整&#xff0c;而在参数迭代更新的过程中&#xff0c;除了梯度&#xff0c;还有一个重要的参数是学习率α&#xff0c;对于学习率的调整也是优化的一个重要方面。01—学习率衰减首先我们以一个例子&#xff0c;来…

Codeforces Round #299 (Div. 2) D. Tavas and Malekas kmp

题目链接&#xff1a; http://codeforces.com/problemset/problem/535/DD. Tavas and Malekastime limit per test2 secondsmemory limit per test256 megabytes问题描述 Tavas is a strange creature. Usually "zzz" comes out of peoples mouth while sleeping, bu…

可怕的乖孩子_当今的中国,有句很可怕的话:所有的乖孩子注定不幸福!

来自soogif▼/01不知道从什么时候起&#xff0c;乖孩子被贴上了一个不幸福的标签&#xff0c; 一个表现很乖的孩子总是会被认为是因为缺乏爱和安全感&#xff0c;才表现的很乖&#xff0c;很懂事的样子的。事实真的是这样子的吗&#xff1f;No&#xff01;爸爸去哪儿5里的Jaspe…

js获取当前日期星期几

var str "今天是星期" "日一二三四五六".charAt(new Date().getDay());alert(str); 转载于:https://www.cnblogs.com/lccnblog/p/5902525.html

适用于VS C++环境的注释代码段,可以让你的代码被使用时有高可读性的注释

编码时&#xff0c;在对高级语言&#xff08;C#/VB etc&#xff09;函数的访问时&#xff0c;经常会有很明确的函数功能提示&#xff0c;参数提示&#xff0c;与返回值提示。微软的VisualStudio C集成开发环境同样有这样的功能&#xff0c;只是常见开源的代码很少按照VS的注释格…

mysql 用户管理表_Mysql—用户表详解(mysql.user)

MySQL数据库Mysql—用户表详解(mysql.user)MySQL是一个多用户管理的数据库&#xff0c;可以为不同用户分配不同的权限&#xff0c;分为root用户和普通用户&#xff0c;root用户为超级管理员&#xff0c;拥有所有权限&#xff0c;而普通用户拥有指定的权限。MySQL是通过权限表来…

Orchard商城模块(Commerce)设计与后台部分

前言&#xff1a;使用CMS开发网站为目标&#xff0c;编写一个扩展性比较好的商城模块。 首先是整体流程图&#xff0c;大概介绍功能与设计。 接下来我们逐个模块功能介绍。 一。商品管理模块 商品模块中可发布需要在线售卖的商品 (套餐商品) 1.1 添加一个商品 1. 商品正常价&…

mysql数据库架构_MySQL数据库之互联网常用架构方案

一、数据库架构原则高可用高性能可扩展一致性二、常见的架构方案方案一&#xff1a;主备架构&#xff0c;只有主库提供读写服务&#xff0c;备库冗余作故障转移用jdbc:mysql://vip:3306/xxdb高可用分析&#xff1a;高可用&#xff0c;主库挂了&#xff0c;keepalive(只是一种工…

mysql数据库恢复策略_MySQL 备份和恢复策略(一)

在数据库表丢失或损坏的情况下&#xff0c;备份你的数据库是很重要的。如果发生系统崩溃&#xff0c;你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态。本文主要对MyISAM表做备份恢复。备份策略一&#xff1a;直接拷贝数据库文件(不推荐)备份策略二&#xff1…

laravel方法汇总详解

1.whereRaw() 用原生的SQL语句来查询&#xff0c;whereRaw(select * from user) 就和 User::all()方法是一样的效果 2.whereBetween() 查询时间格式 whereBetween(problem_date, [2016-10-05 19:00:00, 2016-10-05 20:35:10]) 这种可以查到&#xff0c;时间格式类似这种, 查询日…

输入输出优化

被各种变态的出题者出的数据坑到了这里/sad 1 int read() 2 { 3 int num0; char chgetchar(); 4 while(ch<0&&ch>9) chgetchar(); //过滤前面非数字字符 5 while(ch>0&&ch<9) {num*10;numch-0;chgetchar();} 6 return num…

mysql整数索引没用到_MYSQL 索引无效和索引有效的详细介绍

1、WHERE字句的查询条件里有不等于号(WHERE column!...)&#xff0c;MYSQL将无法使用索引2、类似地&#xff0c;如果WHERE字句的查询条件里使用了函数(如&#xff1a;WHERE DAY(column)...)&#xff0c;MYSQL将无法使用索引3、在JOIN操作中(需要从多个数据表提取数据时)&#x…

Qt词典搜索

Qt词典搜索 采用阿凡达数据-API数据接口及爱词霸API数据接口实现词典搜索功能&#xff0c;实例字符串搜索接口分别为&#xff1a;中文词组采用“词典”&#xff0c;中文单个字采用“中华字典”&#xff0c;英文或其他字符采用“爱词霸”&#xff1b; 对应的API接口&#xff1a;…

mysql8.0.13 rpm_Centos7 安装mysql 8.0.13(rpm)的教程详解

yum or rpm&#xff1f;yum安装方式很方便&#xff0c;但是下载mysql的时候从官网下载&#xff0c;速度较慢。rpm安装方式可以从国内镜像下载mysql的rpm包&#xff0c;比较快。rpm也适合离线安装。环境说明•操作系统&#xff1a;Centos7.4 (CentOS-7-x86_64-Minimal-1804.iso)…

如何参与一个GitHub开源项目

Github作为开源项目的著名托管地&#xff0c;可谓无人不知&#xff0c;越来越多的个人和公司纷纷加入到Github的大家族里来&#xff0c;为开源尽一份绵薄之力。对于个人来讲&#xff0c;你把自己的项目托管到Github上并不表示你参与了Github开源项目&#xff0c;只能说你开源了…

mysql数据库的多实例_MySQL数据库多实例应用实战 - 橙子柠檬's Blog

本文采用的是/data目录作为mysql多实例总的根目录&#xff0c;然后规划不同 的MySQL实例端口号来作为/data下面的二级目录&#xff0c;不同的端口号就是不同实例目录&#xff0c;以区别不同的实例&#xff0c;二级目录下包含mysql数据文件&#xff0c;配置文件以及启动文件的目…

微信企业号开发[二]——获取用户信息

注&#xff1a;文中绿色部分为摘自微信官方文档 在《微信企业号开发[一]——创建应用》介绍了如何创建应用&#xff0c;但是当用户点击应用跳转到我们设定的URL时&#xff0c;其实并没有带上用户的任何信息&#xff0c;为了获取用户信息&#xff0c;我们需要借助微信提供的OAut…

mysql全套基础知识_Mysql基础知识整理

MySQL的查询过程 (一条sql语句在MySQL中如何执行)&#xff1a;客户端请求 ---> 连接器(验证用户身份&#xff0c;给予权限) ---> 查询缓存(存在缓存则直接返回&#xff0c;不存在则执行后续操作) ---> 分析器(对SQL进行词法分析和语法分析操作) ---> 优化器(主要对…

渗透思维导图

转载于:https://www.cnblogs.com/DonAndy/p/5914747.html

mysql数据库用户的创建_mysql创建用户及数据库

登陆mysql[rootdn210120 conf]# mysql -uroot创建用户及密码mysql> grant usage on *.* to hive14localhost identified by 123456 with grant option;创建数据库mysql> create database hive14 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;赋予新用户操作新数据…