<8/24>集训日记
2017-08-24 19:37
225 查看
难得这么早写一次集训日记。
今天下午的那道有关数学的题没能A出来。
POJ3252 输入两个正整数a,b,求闭区间【a,b】内有多少个round number,RN就是把十进制转化为二进制时0的个数大于等于1的个数的数。
第一遍交这个题用的最普通的方法,计算一个数的二进制下的位数以及二进制下1的个数。
这个代码是求n的二进制下有几个1,就是每次清除最后一个1然后计数。
LL Bit1(LL n)
{
LL c =0 ;
for (c =0; n; ++c)
{
n &= (n -1) ;
}
return c ;
}
然后不出意外的TLE了,看了看其他队也都是TLE,然后意识到应该是有技巧的,然而并没有想出来…
下面这个网址就是用数学方法解决此题的一个详解,
http://www.cnblogs.com/kuangbin/archive/2012/08/22/2651730.html
竟然可以用组合数…具体代码还没尝试…准备回家了…晚上到家再看…
以上~
今天下午的那道有关数学的题没能A出来。
POJ3252 输入两个正整数a,b,求闭区间【a,b】内有多少个round number,RN就是把十进制转化为二进制时0的个数大于等于1的个数的数。
第一遍交这个题用的最普通的方法,计算一个数的二进制下的位数以及二进制下1的个数。
这个代码是求n的二进制下有几个1,就是每次清除最后一个1然后计数。
LL Bit1(LL n)
{
LL c =0 ;
for (c =0; n; ++c)
{
n &= (n -1) ;
}
return c ;
}
然后不出意外的TLE了,看了看其他队也都是TLE,然后意识到应该是有技巧的,然而并没有想出来…
下面这个网址就是用数学方法解决此题的一个详解,
http://www.cnblogs.com/kuangbin/archive/2012/08/22/2651730.html
竟然可以用组合数…具体代码还没尝试…准备回家了…晚上到家再看…
以上~
相关文章推荐
- <8/5>集训日记
- <8/2>集训日记
- <7/31>集训日记
- <8/4>集训日记
- <8/15>集训日记
- <8/23>集训日记
- <8/14>集训日记
- 日记<1>
- <9/14>集训周记
- 黑马程序员-----学习日记<2>------基础总结1
- <8/19>集训日记
- <8/8>集训日记
- 编程日记: 学习:Generic<Programming>:简化异常安全代码
- NS-3使用日记<一>
- <福州集训之旅Day5> | 数论 |
- C#学习日记 列表List<T>
- 倔强青铜编程日记<2>:windows visual studio 下opencv以及opencv-contrib、samples的安装
- <8/17>集训日记
- <24>—— Swap Nodes in Pairs
- <8/1>集训日记