算法
暮雨rainy
这个作者很懒,什么都没留下…
展开
-
0/1背包问题
问题描述:有n件物品和一个容量为c的背包。第i件物品的价值是v[i],重量是w[i]。求解将哪些物品装入背包可使价值总和最大。所谓01背包,表示每一个物品只有一个,要么装入,要么不装入。0/1背包问题有很多种解法,也有很多种变形,这里推荐一种动态规划的解法: 链接:http://www.cnblogs.com/qinyg/archive/2012/04/26/2471829.html 相关知原创 2016-03-17 12:08:46 · 183 阅读 · 0 评论 -
判断是否为素数
判断素数是数论的知识。下面是素数判断的算法: bool prime(int number) { for(int i=2;i*i<=number;i++) if(number%i==0) return false; return true; }计算n以内的素数。#include <stdio.h> #include <string.h> #in原创 2016-03-12 17:55:01 · 321 阅读 · 0 评论 -
最小公倍数和最大公约数计算
最小公倍数和最大公约数的用法很多,这里提供最简单的算法 最大公约数:int gcd(int a,int b){ return b==0?a:gcd(b,a%b); }最小公倍数int gcd(int a,int b){ return b==0?a:gcd(b,a%b); } int lcm(int a,int b){ return (a * b / gcd(a,b)); }原创 2016-03-12 18:04:50 · 304 阅读 · 0 评论 -
约瑟夫问题
约瑟夫问题非常有趣,问题是:假设n个人,编号为1到n,排成一个圈,顺时针从1开始数字m,数到m的人杀了,剩下的人继续游戏.活到最后的一个人是胜利者.一般来说需要编程求解最后一个人的编号.#include <stdio.h > main() { int n, m,i, s=0; scanf("%d%d ",&n,&m); for(i=2;i<=n;i++)s=(s+m)%i;原创 2016-03-15 01:16:50 · 203 阅读 · 0 评论 -
求解质因数
在数论里,某一正整数的质因子指能整除该数的质数整数。但是求解质数并不需要先枚举所有的质数,下面这样就行:#include <stdio.h> using namespace std; int primefactor[100000]; int enumprimefactor(int n){ //求出n的所有质因子,存在数组中 int temp=n,num=0; for(int i=2;原创 2016-07-20 13:14:26 · 474 阅读 · 0 评论 -
欧拉函数
最近做acm遇到几道互质的题,也就是欧拉函数的运用,所以就记录下来,大多都是抄来的,请见谅。。。欧拉函数在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler’s totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和8互质。 从欧拉函数引伸出来在环论方面的事实和拉格朗日定理构成了欧拉定理的证明。原创 2016-08-09 17:19:54 · 225 阅读 · 0 评论 -
埃式筛法
埃氏筛或爱氏筛,是一种公元前250年由古希腊数学家埃拉托斯特尼所提出的一种简单检定素数的算法。给出要筛数值的范围n,找出以内的素数。先用2去筛,即把2留下,把2的倍数剔除掉;再用下一个质数,也就是3筛,把3留下,把3的倍数剔除掉;接下去用下一个质数5筛,把5留下,把5的倍数剔除掉;不断重复下去。见下图: 一、利用埃式筛法打印质数: 首先是自己写的,一点都不优雅:原创 2016-08-12 21:55:53 · 919 阅读 · 0 评论 -
STL总结(持续更新)
最近写ACM用到一些STL的函数,在这里总结一下: (1) max_element(min_element) 求数组最大最小值,注意max_element(start,end)的范围是[start,end),不要混淆。测试代码: #include #include using namespace std; int main(){ int array[11]; for(int i=1;原创 2016-08-09 20:44:35 · 205 阅读 · 0 评论 -
TOJ 3363.Ellipse, again and again
题目链接:http://acm.tju.edu.cn/toj/showp3363.html 3363. Ellipse, again and again Time Limit: 1.0 Seconds Memory Limit: 65536K Total Runs: 142 Accepted Runs: 65 There is an ellips原创 2017-07-09 01:12:48 · 218 阅读 · 0 评论