ACM算法
i_fuqiang
这个作者很懒,什么都没留下…
展开
-
前辈给的:.ACM常用算法及练习
第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打出来. 1.最短路(Floyd、Dijstra,BellmanFord) 2.最小生成树(先写个prim,kruscal要用并查集,不好写) 3.大数(高精度)加减乘除 4.二分查找. (代码可在五行以内) 5转载 2012-11-29 13:24:13 · 1689 阅读 · 0 评论 -
HDU 1420 蒙哥马利幂模算法
Prepared for New Acmerhttp://acm.hdu.edu.cn/showproblem.php?pid=1420蒙哥马利幂模思想: 在幂模运算中,通常是用幂模运算转换为乘模运算。有以下两个公式:1)a*b%n=(a%n)*(b%n)%n2)(a+b)%n=(a%n+b%n)%n当我们计算D=C^15%N时,有:原创 2013-03-21 15:18:13 · 2073 阅读 · 0 评论 -
2013腾讯马拉松编程初赛3月22日1001
1001 小Q系列故事——为什么时光不能倒流Time Limit: 0.1Seconds Memory Limit: 65536K 我以为我会是最坚强的那一个 我还是高估了自己我以为你会是最无情的那一个 还是我贬低了自己 就算不能够在一起 我还是为你担心就算你可能听不清 也代表我的心意 那北极星的眼泪 闪过你曾经的眼角迷离那玫瑰花的葬礼 埋葬的却原创 2013-03-22 19:33:07 · 1317 阅读 · 3 评论 -
2013腾讯马拉松编程初赛3月23日1001
1001 小Q系列故事——世界上最遥远的距离Time Limit: 0.2Seconds Memory Limit: 65536K 世界上最遥远的距离不是生与死而是我就站在你面前你却不知道我爱你 世界上最遥远的距离不是我就站在你面前你却不知道我爱你而是明明知道彼此相爱却不能在一起 世界上最遥远的距离不是明明知道彼此相爱却不能在一起原创 2013-03-23 19:24:58 · 1561 阅读 · 10 评论 -
2013腾讯马拉松编程初赛3月25日1001(HDU4525)
/*坑爹的以为什么k,k1,k2,啥子的都是整数类型;没想到居然会有小数;难怪张大牛wa了那么多次硬是没过;怪就怪自己审题不注意吧;一般题目对数据类型说的还是会比较清楚的,这次对题目类型的描述是 每组数据的第一行包含4个数字n,k1,k2,k,除了n以外,其他的都可能为小数,所以还是定义为double为妙(事实证明不这样做是会贡献WA 的);其实函数就是 sum = (k1+k2)原创 2013-03-26 15:21:05 · 644 阅读 · 0 评论 -
2013编程之美全国挑战赛 初赛第一场 题目2
时间限制: 4000ms 内存限制: 256MB描述对于两个长度相等的字符串,我们定义其距离为对应位置不同的字符数量,同时我们认为距离越近的字符串越相似。例如,“0123”和“0000”的距离为 3,“0123”和“0213”的距离则为 2,所以与“0000”相比,“0213”和“0123”最相似。现在给定两个字符串 S1 和 S2,其中 S2 的长度不大于 S1。请在原创 2013-04-13 16:28:59 · 886 阅读 · 2 评论 -
二进制位运算在算法中的巧妙运用
通过在网上查找,整理的:#include using namespace std;bool is_pow2(int x) //判断是否2的n次方 { x &= x-1; if(!x) return true; return false;}void Binary(int num)//十进制转二进制 { int a[32]; int i = 0; while(nu原创 2013-05-12 00:46:38 · 1167 阅读 · 0 评论 -
UVA 11039 模拟
题目输入 -999999 - 999999将负数变为正数,并且在num中标记为负数(true)从后往前取,一正一负(一负一正)#include #include #include #include #include #include using namespace std;#define maxn 1000000int arr[maxn];bool num[m原创 2013-07-11 19:06:46 · 772 阅读 · 0 评论 -
HDU 1088 (模拟)使用<sstream>模版库
#include 你的编译器支持吗?库是最近才被列入C++标准的。(不要把与标准发布前被删掉的弄混了。)因此,老一点的编译器,如GCC2.95,并不支持它。如果你恰好正在使用这样的编译器而又想使用的话,就要先对它进行升级更新。库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。另外,每个类都原创 2013-07-16 15:53:48 · 806 阅读 · 0 评论 -
HDU 3273 二分
不一样的二分;思路: *二分的上限下限是:MAX(最大的数字),SUM (总和); *其中一定有一个数字满足,将N分成M份; *求最小的;只要当它达到M份时,依然减小上届值;算法不难,思路想到了就 水到渠成了;/* *problem ID: POJ 3273 * Author ID: fuqiang * TIME: 2013原创 2013-07-17 16:15:06 · 625 阅读 · 0 评论 -
CodeForces 272B
题目不是很难的题目;但是想到前几天看的一个快速计算 一个十进制数 转换为 二进制 包含 1 的个数但是到今天又忘了;计算某个数二进制中1的个数int CountBits(int v){ int num = 0; while(v) { v &= (v-1); num++; } return num;}原创 2013-07-20 19:29:49 · 625 阅读 · 0 评论 -
2013腾讯马拉松编程初赛3月21日1002
1002小明系列故事——师兄帮帮忙Time Limit: 1.0Seconds Memory Limit: 32768K小明自从告别了ACM/ICPC之后,就开始潜心研究数学问题了,一则可以为接下来的考研做准备,再者可以借此机会帮助一些同学,尤其是漂亮的师妹。这不,班里唯一的女生又拿一道数学题来请教小明,小明当然很高兴的就接受了。不过等他仔细读题以后,发现自己也不会做,这下小明原创 2013-03-21 22:23:22 · 1152 阅读 · 6 评论 -
2013腾讯马拉松编程初赛3月20日1001
1001 小Q系列故事——屌丝的逆袭Time Limit: 0.1Seconds Memory Limit: 65536K 毕业于普通本科的小Q一直自称是资深屌丝,不仅学校不知名,甚至他自己在这个普通学校也是默默无闻——直到临近毕业的时候,班里5朵金花中的2位甚至从没和他说过话!谁又能想到,如此不起眼的小Q在历经重重面试环节后,竟然如愿以偿加入了心仪已久的腾讯公司!消息原创 2013-03-21 20:42:40 · 968 阅读 · 3 评论 -
校赛 倒咖啡 扩展欧几里得
开始用完全背包写,过不去,不知道思路错在哪儿了;扩展欧几里德定理 对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b 的最大公约数,必然存在整 数对 x,y ,使得 gcd(a,b)=ax+by。使用扩展欧几里德算法解决不定方程的办法 对于不定整数方程pa+qb=c,若 c mod Gcd(a, b)=0,则该方程存在整数解,否原创 2012-12-01 20:43:40 · 877 阅读 · 0 评论 -
HDU1250 大整数问题
/*按照大整数的模版来;这个类型的斐波纳数列是前四项和,那么我们就讲其称为s1,s2,s3,s4,那么四项和即为s1+s2与s3+s4的和;运用一个知识点,就是二维数组str[n][m] 的第i行的起始地址为str[i];代码如下:*/#include#includeint F[7061][550],c[550]; //7060时位数为2012 const原创 2013-01-10 21:19:19 · 1025 阅读 · 0 评论 -
大整数运算之 大整数加法、减法、乘法
其实大整数的问题都是在像我们打草稿的时候列竖式一样的,不要告诉我你不知道什么叫竖式~!其实我开始也不知道它叫这个名字;所谓竖式,就是你打草稿算算术的方法,小学知识;比如你写 11+9:11+ 9----------20数A,B,求和,求差;数的长度不超过1000;贴个代码,先输入一个数,代表数据的组数n,然后输入n组A B#inc原创 2013-01-10 17:29:41 · 5184 阅读 · 1 评论 -
catalan 卡特兰 卡塔兰 大数
/*Cn = C(2n,n) / (n+1)或者 Cn = (4*n - 2 ) *C(n-1)/(n+1);或者 Cn = C(zn,n)-C(2n,n+1);以下代码是将大数处理为一位一位的数,比如12345存储为a[0] = 1; a[1] = 2; a[2] = 3; a[3] = 4; a[4] = 4;*/#include #include原创 2013-01-13 16:54:02 · 761 阅读 · 0 评论 -
catalan数的应用 变形 HDU1133
http://acm.hdu.edu.cn/showproblem.php?pid=1133查看维基百科,对卡特兰数公式证明是这样的:http://zh.wikipedia.org/wiki/%E5%8D%A1%E5%A1%94%E5%85%B0%E6%95%B0令1表示进栈,0表示出栈,则可转化为求一个2n位、含n个1、n个0的二进制数,满足从左往右扫描到原创 2013-01-14 15:12:00 · 2553 阅读 · 1 评论 -
HDU 1234 开门人和关门人
/*今天发现自己是基地做题几乎最少的人水几道题吧;*/#include #include #include #include #include #include #include using namespace std;int main(int argc, char *argv[]){ int n,m,hh1,hh2,mm1,mm2,ss1,ss2;原创 2013-03-05 22:05:57 · 695 阅读 · 0 评论 -
HDU 1236 排序
/*再水一题sort()应用+strcmp()应用;*/http://acm.hdu.edu.cn/showproblem.php?pid=1236点击打开链接#include #include #include #include #include #include #include #define maxn 1005struct stud原创 2013-03-06 19:07:01 · 568 阅读 · 0 评论 -
HDU 2203 strstr()函数应用
http://acm.hdu.edu.cn/showproblem.php?pid=2203/*char* strstr(const char* a,constchar* b) 在a中寻找第一次出现b的位置如果出现,返回位置,如果不出现,返回空指针;利用这一特点,我们将s1字符串长度加长一部分(s2的长度),加长的内容为s1的前strlen(s2)个字符;最后用函数判断s原创 2013-03-08 13:37:37 · 709 阅读 · 0 评论 -
HDU 1431 素数回文 打表
const int MAX = 100000001;const int SQRT =sqrt(MAX);bool prime[MAX] = {1,1};int arr[MAX], len = 0;求素数:void set_prime(){ int i, j; for (i = 2; i < SQRT; ++ i) if (!prime[i]) for原创 2013-03-21 16:50:43 · 640 阅读 · 0 评论 -
2013腾讯马拉松编程初赛3月21日1001
1001 小Q系列故事——电梯里的爱情Time Limit: 0.1Seconds Memory Limit: 65536K 细心的同事发现,小Q最近喜欢乘电梯上上下下,究其原因,也许只有小Q自己知道:在电梯里经常可以遇到他心中的女神HR。电梯其实是个很暧昧的地方,只有在电梯里,小Q才有勇气如此近距离接近女神,虽然觉得有点不自在,但次数多了,女神也习惯了小Q的存在,甚至原创 2013-03-21 21:08:45 · 783 阅读 · 0 评论 -
POJ 3070 矩阵快速幂
矩阵幂模;可以参考: HDU 1420 蒙哥马利幂模算法不同之处,在于,一个是 数字,一个是矩阵;原理都一样;/* *problem ID: POJ 3070 * Author ID: fuqiang * TIME: 2013-07-17 * Algorithm: 幂模 * Status: (Accep原创 2013-07-17 13:11:56 · 668 阅读 · 0 评论