
ACM知识
文章平均质量分 81
power721
这个作者很懒,什么都没留下…
展开
-
什么是P问题、NP问题和NPC问题
这或许是众多OIer最大的误区之一。 你会经常看到网上出现“这怎么做,这不是NP问题吗”、“这个只有搜了,这已经被证明是NP问题了”之类的话。你要知道,大多数人此时所说的NP问题其实都是指的NPC问题。他们没有搞清楚NP问题和NPC问题的概念。NP问题并不是那种“只有搜才行”的问题,NPC问题才是。好,行了,基本上这个误解已经被澄清了。下面的内容都是在讲什么是P问题,什么是NP问题,什么是转载 2009-08-30 23:10:00 · 525 阅读 · 0 评论 -
ACM实用C语言函数
函数名: abs功 能: 求整数的绝对值用 法: int abs(int i);程序例:#include stdio.h>#include math.h>int main(void){ int number = -1234; printf("number: %d absolute value: %d/n", number, abs(number)); return 0;}函数名:原创 2010-02-12 19:23:00 · 1755 阅读 · 1 评论 -
ACM基本算法分类、推荐学习资料和配套poj习题
一.动态规划参考资料:刘汝佳《算法艺术与信息学竞赛》《算法导论》推荐题目:http://acm.pku.edu.cn/JudgeOnline/problem?id=1141 简单http://acm.pku.edu.cn/JudgeOnline/problem?id=2288 中等,经典TSP问题http://acm.pku.edu转载 2009-09-11 13:39:00 · 1696 阅读 · 1 评论 -
漫话二分
二分思想真的是无所不在,即使在中文系的专业课中我们也能见到这个词。在语言学概论中我们提到,一个音位可以由一组区别特征确定下来,这些区别特征总是以只具有“是/否”、“有/无”等两种对立属性的“二元偶分组”形式存在,因为这样可以最方便最快捷地确定出一个元素。这有点像猜数字一样,我想一个数字后让你来猜,我告诉你你的猜测是大了还是小了。只是在这里,回馈的信息不再是大小,而是“辅音/元音”、“口音/鼻音转载 2009-09-07 19:22:00 · 1039 阅读 · 0 评论 -
位运算简介及实用技巧(三):进阶篇(2)
n皇后问题位运算版 n皇后问题是啥我就不说了吧,学编程的肯定都见过。下面的十多行代码是n皇后问题的一个高效位运算程序,看到过的人都夸它牛。初始时,upperlim:=(1 shl n)-1。主程序调用test(0,0,0)后sum的值就是n皇后总的解数。拿这个去交USACO,0.3s,暴爽。procedure test(row,ld,rd:longint);var pos,p:lo转载 2009-08-31 11:31:00 · 817 阅读 · 0 评论 -
位运算简介及实用技巧(二):进阶篇(1)
二进制中的1有奇数个还是偶数个 我们可以用下面的代码来计算一个32位整数的二进制中1的个数的奇偶性,当输入数据的二进制表示里有偶数个数字1时程序输出0,有奇数个则输出1。例如,1314520的二进制101000000111011011000中有9个1,则x=1314520时程序输出1。var i,x,c:longint;begin readln(x); c:=0; for i转载 2009-08-31 11:30:00 · 511 阅读 · 0 评论 -
素数与素性测试
一个数是素数(也叫质数),当且仅当它的约数只有两个——1和它本身。规定这两个约数不能相同,因此1不是素数。对素数的研究属于数论范畴,你可以看到许多数学家没事就想出一些符合某种性质的素数并称它为某某某素数。整个数论几乎就围绕着整除和素数之类的词转过去转过来。对于写代码的人来说,素数比想像中的更重要,Google一下BigPrime或者big_prime你总会发现大堆大堆用到了素数常量的程序代码。平转载 2009-08-31 14:53:00 · 956 阅读 · 0 评论 -
同余运算及其基本性质
100除以7的余数是2,意思就是说把100个东西七个七个分成一组的话最后还剩2个。余数有一个严格的定义:假如被除数是a,除数是b(假设它们均为正整数),那么我们总能够找到一个小于b的自然数r和一个整数m,使得a=bm+r。这个r就是a除以b的余数,m被称作商。我们经常用mod来表示取余,a除以b余r就写成a mod b = r。 如果两个数a和b之差能被m整除,那么我们就说a和b对模数m转载 2009-08-31 14:53:00 · 1037 阅读 · 0 评论 -
位运算简介及实用技巧(四):实战篇
下面分享的是我自己写的三个代码,里面有些题目也是我自己出的。这些代码都是在我的Pascal时代写的,恕不提供C语言了。代码写得并不好,我只是想告诉大家位运算在实战中的应用,包括了搜索和状态压缩DP方面的题目。其实大家可以在网上找到更多用位运算优化的题目,这里整理出一些自己写的代码,只是为了原创系列文章的完整性。这一系列文章到这里就结束了,希望大家能有所收获。 Matrix67原创,转贴请注转载 2009-08-31 11:31:00 · 826 阅读 · 0 评论 -
位运算简介及实用技巧(一):基础篇
什么是位运算? 程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6 and 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理): 110转载 2009-08-31 11:29:00 · 922 阅读 · 0 评论 -
信息学竞赛中可能有用的概率学知识
说到概率,有些好玩的东西不得不提。比如,你知道吗,23个人中至少两个人生日相同的概率竟然超过了1/2;假如你们班上有50个人的话,那更不得了,至少两人生日相同的概率达到97% !如果你会计算这个概率问题的话,你可以亲自证实这一点。本文适宜的读者是知道上述问题怎么算的高中朋友,上述问题也是高中阶段学的一些基本概率知识。 上面的问题都是简单概率,它包含了一个最基本的原则,即使没有系统地学习过,平转载 2009-08-31 11:28:00 · 1406 阅读 · 0 评论 -
什么是生成函数?
我们年级有许多漂亮的MM。一班有7个左右吧,二班大概有4个,三班最多,16个,四班最可怜,一个漂亮的MM都没有,五班据说有1个。如果用一个函数“f(班级)=漂亮MM的个数”,那么我们可以把上述信息表示成:f(1)=7,f(2)=4,f(3)=16,f(4)=0,f(5)=1,等等。 生成函数(也有叫做“母函数”的,但是我觉得母函数不太好听)是说,构造这么一个多项式函数g(x),使得x的n转载 2009-08-31 11:27:00 · 687 阅读 · 0 评论 -
ACM的小技巧
ACM做题过程中的一些小技巧。1.一般用C语言节约空间,要用C++库函数或STL时才用C++;cout、cin和printf、scanf最好不要混用。大数据输入输出时最好不要用cin、cout,防止超时。2.有时候int型不够用,可以用long long或__int64型(两个下划线__)。值类型表示值介于 -2^63 ( -9,223,372,036,854,775,808)原创 2009-08-31 13:06:00 · 8516 阅读 · 10 评论