
ACM
Jason-Cai
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
并查集!
前天学了一些简单的并查集。 并查集是对一些集合的合并。可以快速确实某个元素属于哪个集合。 基本操作如下: const int MAX = 10000;int Father[MAX];int rank[MAX];//初始化所有集合void Init(){ for(int i = 0; i memset(rank,0,sizeof(rank));}原创 2008-07-28 00:07:00 · 620 阅读 · 0 评论 -
求从1到N之间所有数字出现的0,1,2....9这些数字的和。
前天TC的500分题,是一个组合数学的题。 主要思路是每一位一位算,0的时候特殊处理。 //返回n的位数int bits(int n){ int ret = 0; while(n) { ret++; n/=10; } return max(1,ret);}//x^ylong long Pow(int x,int y){原创 2009-03-02 14:14:00 · 1487 阅读 · 0 评论 -
判断一个数是2的幂数的最快方法!
if(n&(n-1)) then n不是2的幂数;else n是2的幂数; 原理:如果n=2^K,那么n = 1000...0(k个0),则n-1 = 111...0(k个1);相与之后则为0如果 n!=2^k,那么 n跟(n-1)第一位都为1,则相与这后然后第一位为1,则不为0.【更正】上面当n==0也会误判成2的幂数,所以应该更正为:if(原创 2009-08-09 15:20:00 · 1911 阅读 · 1 评论 -
判断24点算法,是否有解
先将24点直接转化为浮点型来运算,这样可以省去除0的处理。本文中是归一思路,4个数求24点--> 3个数求24点-- 2个数求24点-->1个数是不是24点。bool chk(double a[],int n){if(n == 1)原创 2011-10-04 11:28:09 · 3495 阅读 · 0 评论 -
一道挺好玩的题,可用来作面试题【来自20111224 Topcoder DIVI 250题】
一道挺好玩的题,可用来作面试题【来自20111224 Topcoder DIVI 250题】有N个数,编号1到n。按照以下规则进行删除数,求最后剩下的那个数。【1规则:1 . 如果当前序列的个数大于1,则删除所有序列中第平方数的位置的数。2. 将进行1操作剩下的数,重新排在一起,重复操作1,直接当前序列数为1个数时,这个数就是结果。 例子: 如果翻译 2011-12-24 23:29:05 · 1054 阅读 · 2 评论