- 博客(6)
- 资源 (1)
- 收藏
- 关注
原创 背包问题(1)部分背包
1.现有4个背包,已知每个物品的体积和价值,每个背包最多容纳10个体积的物品,每件物品只能拿一次,问怎么样装使背包的价值最大?分析:(1)二维数组求法:如果包的体积由0变化到10,每次物品只能放一次,则包内所放物品的价值量为:则包所放的最大价值即二维数组的最后一个值;代码如下:#include using namespace std;#define N 4/
2013-07-22 21:44:21 415
原创 递归(1)
1.现有一平面,有n条直线分割这个平面,问能分割成几个面?分析:如图所示找到的规律:代码编写如下:#include using namespace std;int function(int n){ int f; if(n==0) f=1; else f=function(n-1)+(n-1)+1; return f;}int main(){
2013-07-22 20:53:53 379
原创 贪心算法举例
1/*有m位数,要求删除n位,使得删除后的数最小例如:576397987456677811111111111,删除576998使得删除后的数最小*/原创代码:#include //#include //可以用来编写Cusing namespace std;void Read (char a[]){ char c; int i=0; int x; cout<<"
2013-07-17 16:35:33 467
原创 枚举(2)
2.1-9随意拿三个数字,组成三个三位数x,y,z,使x:y:z=1:2:3。问有多少种组合,列举出来(9个数字不能重复使用)分析:1,x的取值范围在123-333之间; 2.设置数组来限定这三个9个数字不能重复注意: 1.数组每次检验时都应重新赋初值0; 2.计数器每次要恢复为0;#includeusing namespace
2013-07-15 19:56:53 480
原创 枚举(1)
1.现有1分,2分,5分人民币,要求组成一块钱,问有多少种方法?#include using namespace std;int main(){ int i,j,m; m=0; for(i=0;i<=20;i++) for(j=0;j<=50;j++) { if(5*i+2*j<=100) m++; } cout<<"共有"<<m<<"种"<<endl; r
2013-07-15 19:00:35 341
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人