工具算法
感觉自己就是个bug
这个作者很懒,什么都没留下…
展开
-
0/1背包问题 初步了解
0/1背包问题 初步了解问题描述:有n件物品,每件物品的重量为w[i],价值为c[i].现在需要选出若干物品放入一个容量为V,使得在选入背包的物品重量和不超过容量V的前提下,让背包中物品的价值之和最大 ,求其最大值。(1<=n<=20)#include<bits/stdc++.h>using namespace std;const int maxn=30;int n,V,maxValue=0;//物品件数n,背包最大容量V,c[i]为每件物品的价值int w[max原创 2020-06-04 13:49:32 · 202 阅读 · 0 评论 -
大整数的运算
大整数的运算大整数的存储:用数组存储即可:如将整数235813存储到数组中,则有d[0]=3,d[1]=1,d[2]=8,d[3]=5,d[4]=3,d[5]=2,即整数的高位存储在数组的高位,整数的低位存储在数组的低位。不反过来存储的原因是,在进行运算的时候都是从整数的低位到高位进行枚举,顺位存储和这种思维相合。但是这也会产生一个需要注意问题:把整数按字符串%s读入的时候,实际上是逆位存储,机str[0]=‘2’,str[1]=‘3’,…,str[5]=‘3’,因此在读入之后需要在另存为至d[]数组原创 2020-05-31 10:31:01 · 139 阅读 · 0 评论 -
质因子分解
质因子分解显然,由于最后要归结到若干不同质数的乘积,因此不妨先把素数表打印出来。素数表的打印在前面的文章中已经说过了,下面我们主要对质因子分解本身进行分析。如果题目要求对1进行处理,那么视题目的条件而进行特判处理。由于每个质因子都出现不止一次,因此,不妨定义结构体factor,用来存放质因子及其个数,如下所示:struct factor{ int x,cnt; //x为质因子, cnt 为其个数}fac[10];如180:fac[0].x=2;fac[0].cnt=2;fac[1].x原创 2020-05-30 14:50:39 · 140 阅读 · 0 评论 -
素数的判断
素数的判断基本代码:时间复杂度O(n*n1/2)bool isPrime(int n){ if(n<=1)return false; if(n%=2)return false; int sqr=(int)sqrt(1.0*n); for(int i=3;i<=sqr;i+=2){ if(n%i==0)return false; } /* for(int i=3;i*i<=n;i++){ if(n%i==0)return false; } */ return原创 2020-05-30 14:28:28 · 139 阅读 · 0 评论 -
分数的四则运算
分数的四则运算分数的表示:最简洁的写法就是写成假分数的形式struct Fraction{ int up,down;}三项规则:1.使down为非负数。如果分数为负,那么另分子up为负即可2.如果该分数恰为0,那么另up=0,down=1。3.分子和分母没有除了1之外的公约数分数的化简分数化简主要用来使Fraction变量满足分数表示的三项规定,因此化简步骤也分为一下三步:1.如果分母down为负,那么另分子up和分母down都变成相反数2.如果分子up为0,那么另分母down为原创 2020-05-30 13:58:58 · 359 阅读 · 0 评论 -
最大公约数和最小公倍数
最大公约数和最小公倍数欧几里得算法:int gcd(int a,int b){ return !b ? a : gcb(b, a % b);}最小公倍数:int c=gcd(int a,int b);int d=a/c*b;原创 2020-05-30 13:27:53 · 127 阅读 · 0 评论