题目名称 | 1390. [NOIP 1995]A类B类数 |
---|---|
输入输出 | abnum.in/out |
难度等级 | ★ |
时间限制 | 1000 ms (1 s) |
内存限制 | 256 MiB |
测试数据 | 10 |
题目来源 | yuan 于2013-07-23加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:258, 提交:858, 通过率:30.07% | ||||
Tpc | 100 | 0.000 s | 0.00 MiB | C++ |
[b]Heil[/b] | 100 | 0.004 s | 0.17 MiB | Pascal |
Lovelove_boii | 100 | 0.006 s | 0.36 MiB | C++ |
andy | 100 | 0.077 s | 76.61 MiB | C++ |
yrtiop | 100 | 0.091 s | 77.28 MiB | C++ |
lll | 100 | 0.105 s | 152.88 MiB | C++ |
Theresis | 100 | 0.116 s | 152.88 MiB | C++ |
liuyiche | 100 | 0.134 s | 24.65 MiB | C++ |
lihaoze | 100 | 0.152 s | 5.74 MiB | C++ |
Bennettz | 100 | 0.177 s | 152.88 MiB | C++ |
本题关联比赛 | |||
20140713上午练习 | |||
2020级再出发之位运算 |
关于 A类B类数 的近10条评论(全部评论) | ||||
---|---|---|---|---|
2500分留念
梦那边的美好ET
2018-08-24 12:24
32楼
| ||||
的确不好
joel
2017-07-06 19:38
31楼
| ||||
位运算大法好
Shirry
2017-03-24 13:49
30楼
| ||||
最终还是走上了打表的不归路
| ||||
GG
背对疾风吧
2016-09-08 20:47
28楼
| ||||
| ||||
位运算优化一下就水过去了吖....
| ||||
回复 @liu_runda :
达哥你厉害 | ||||
开个大数组递推0和1的个数,不打表稳过。。。
| ||||
最后一个点真是好卡人呀!
既然这个点如此无耻,那就用无耻的方法——if语句来对付它吧。 |
若将一个正整数转换为二进制数,在此二进制数中,我们将数字$1$的个数多于数字$0$的个数的这类二进制数称为$A$类数,否则就称其为$B$类数。
例如:
$(1)_{10}=(1)_2$
其中$1$的个数为$1$,$0$的个数为$0$,则称此数为$A$类数;
$(13)_{10}=(1101)_2$
其中$1$的个数为$3$,$0$的个数为$1$,则称此数为$A$类数;
$(10)_{10}=(1010)_2$
其中$1$的个数为$2$,$0$的个数也为$2$,称此数为$B$类数;
$(24)_{10}=(11000)_2$
其中$1$的个数为$2$,$0$的个数为$3$,则称此数为$B$类数;
编程输出$1$~$n$之中(包括$1$和$n$),全部$A$、$B$两类数的个数。
输入文件一行,为一个正整数$n$($1≤n≤2000,0000$);
输出文件一行,为空格隔开的两个整数$a$和$b$,其中$a$表示$A$类数的个数,$b$表示$B$类数的个数;
3
2 1
$1,2,3$对应的二进制数分别为$1,10,11$,故$A$类数有$2$个($1$和$3$),$B$类数有一个($2$);
$NOIP1995$普及组