题目名称 | 2177. Or Link |
---|---|
输入输出 | or.in/out |
难度等级 | ★★★☆ |
时间限制 | 10000 ms (10 s) |
内存限制 | 256 MiB |
测试数据 | 20 |
题目来源 | Zayin 于2016-03-14加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:4, 提交:7, 通过率:57.14% | ||||
WangYenJen | 100 | 12.970 s | 38.46 MiB | C++ |
Zayin | 100 | 16.858 s | 76.65 MiB | C++ |
Zayin | 100 | 26.025 s | 38.46 MiB | C++ |
zhengtn03 | 100 | 26.202 s | 36.54 MiB | C++ |
Zayin | 30 | 1.257 s | 4.17 MiB | C++ |
WangYenJen | 10 | 12.898 s | 38.46 MiB | C++ |
WangYenJen | 0 | 132.772 s | 38.46 MiB | C++ |
关于 Or Link 的近10条评论(全部评论) |
---|
给定两个整数 N 和 K。
请你计算有多少长度为 K 的序列 A1, A2, ..., AK,(0<=Ai) 满足:
A1+ A2+ ...+ AK = N。
并且对于任意的 i = 1, ..., k - 1 有 Ai Or Ai + 1 = Ai + 1。
Or 是按位或操作。
Pascal 为 or ,C 和 C++为 |。
此题有多组数据。
第一行包含一个整数 T ,表示测试数据组数。
接下来有 T 行,每行包括两个整数 N 和 K ,意义如题目所述。
对于每组测试数据,输出一行表示对应的答案。考虑答案可能很大,输出模 1000000009 后的结果。
3
2 3
2 4
3 3
2
2
2
对于第一个数据,有两种方案:(0,1,1),(0,0,2);
对于第二个数据,有两种方案:(0,0,1,1),(0,0,0,2);
对于第三个数据,有两种方案:(1,1,1),(0,0,3)。
对于10%的数据,N<=10,K<=10 ;
对于30%的数据,N<=100,K<=1000 ;
对于50%的数据,N<=10000,K<=100000 ;
对于70%的数据,N<=1000000,K<=10000000 ;
对于100%的数据,N<=10000000,K<=1000000000,T<=100 。
改编自 hihoCoder Challenge 5 .