1楼:
你说的那个,应该是张震岳等人创立的吧。叫like black仿的貌似不少。。
2楼:驹令於薇歌
说应该张震岳等人创立吧叫like
black仿貌似少
有一个标志像w或m的背包是什么牌子?
3楼:dj伽倻
你说的应该是木村井泓吧~那个logo是两个m连在一起,看上去不知道是m还是w。
mcjh&twj 创立于1971年,2002年正式推出成名之作环保广告布潮流街包系列,当年此系列包款风行国际红遍亚洲,就此 mcjh&twj 真正的被亚洲乃至国际潮流设计圈认可,奠定了潮流街包的领导品牌地位。
话说现在的mcjh&twj没有刚出道时那种里原宿的风格了,变得很俗,货品质量也一般。
4楼:匿名用户
标志像w的背包是万里马品牌。
求这背包什么牌子,中间是个跟m一样的标志
5楼:
迪卡侬旗下登山品牌quechua
6楼:匿名用户
你这张**真清晰。。
7楼:兵兵有你
木村井泓 日本牌子,谢谢!
0-1背包问题的多种解法**(动态规划、贪心法、回溯法、分支限界法)
8楼:匿名用户
一.动态规划求解0-1背包问题
/* 0-1背包问题:
计算机上的背包问题是什么,怎么解决,能不能说一下思路,最好有c或者
9楼:匿名用户
下面是引用的一段说明,有背包问题的描述以及各种算法的**,当然有些是vb的,有些是c++的,我觉得听全面的,希望对你有所帮助。
1)登山算法
用登山算法求解背包问题 function =dengshan(n,g,p,w) %n是背包的个数,g是背包的总容量,p是价值向量,w是物体的重量向量 %n=3;g=20;p=[25,24,15];w2=[18,15,10];%输入量 w2=w; [y,i]=sort(-p./w2);w1=;x=;x1=; for i=1:length(i) w1(i)=w2(i(i)); end w=w1; for i=1:
n x(i)=0; res=g;%背包的剩余容量 j=1; while w(j)<=res x(j)=1; res=res-w(j); j=j+1; end x(j)=res/w(j); end for i=1:length(i) x1(i(i))=x(i); end x=x1; disp('装包的方法是');disp(x);disp(x.*w2);disp('总的价值是:
');disp(p*x');
时间复杂度是非指数的
2)递归法
先看完全背包问题
一个旅行者有一个最多能用m公斤的背包,现在有n种物品,每件的重量分别是w1,w2,...,wn,
每件的价值分别为c1,c2,...,**.若的每种物品的件数足够多.
求旅行者能获得的最大总价值。
本问题的数学模型如下:
设 f(x)表示重量不超过x公斤的最大价值,
则 f(x)=max 当x>=w[i] 1<=i<=n
可使用递归法解决问题程序如下:
program knapsack04;
const maxm=200;maxn=30;
type ar=array[0..maxn] of integer;
var m,n,j,i,t:integer;
c,w:ar;
function f(x:integer):integer;
var i,t,m:integer;
begin
if x=0 then f:=0 else
begin
t:=-1;
for i:=1 to n do
begin
if x>=w[i] then m:=f(x-i)+c[i];
if m>t then t:=m;
end;
f:=t;
end;
end;
begin
readln(m,n);
for i:= 1 to n do
readln(w[i],c[i]);
writeln(f(m));
end.
说明:当m不大时,编程很简单,但当m较大时,容易超时.
4.2 改进的递归法
改进的的递归法的思想还是以空间换时间,这只要将递归函数计算过程中的各个子函数的值保存起来,开辟一个
一维数组即可
程序如下:
program knapsack04;
const maxm=2000;maxn=30;
type ar=array[0..maxn] of integer;
var m,n,j,i,t:integer;
c,w:ar;
p:array[0..maxm] of integer;
function f(x:integer):integer;
var i,t,m:integer;
begin
if p[x]<>-1 then f:=p[x]
else
begin
if x=0 then p[x]:=0 else
begin
t:=-1;
for i:=1 to n do
begin
if x>=w[i] then m:=f(i-w[i])+c[i];
if m>t then t:=m;
end;
p[x]:=t;
end;
f:=p[x];
end;
end;
begin
readln(m,n);
for i:= 1 to n do
readln(w[i],c[i]);
fillchar(p,sizeof(p),-1);
writeln(f(m));
end.
3)贪婪算法
改进的背包问题:给定一个超递增序列和一个背包的容量,然后在超递增序列中选(只能选一次)或不选每一个数值,使得选中的数值的和正好等于背包的容量。
**思路:从最大的元素开始遍历超递增序列中的每个元素,若背包还有大于或等于当前元素值的空间,则放入,然后继续判断下一个元素;若背包剩余空间小于当前元素值,则判断下一个元素
简单模拟如下:
#define k 10
#define n 10
#i nclude
#i nclude
void create(long array,int n,int k)
else/*背包剩余空间小于当前元素值*/
cankao[i]=0;
} }void main()
; int i;
long value,value1=0;
clrscr();
create(array,n,k);
output(array,n);
printf("\ninput the value of beibao:\n");
scanf("%ld",&value);
beibao(array,cankao,value,n);
for(i=0;i
#i nclude
void create(long array,int n,int k)
else
cankao[i]=0;
} }int beibao1(long array,int cankao,long value,int n)
else
cankao[i]=0;
if(value1==value)
return 1;
return 0;
} void main()
; int cankao1[n]=;
int i;
long value,value1=0;
clrscr();
create(array,n,k);
output(array,n);
printf("\ninput the value of beibao:\n");
scanf("%ld",&value);
beibao(array,cankao,value,n);
for(i=0;i=wi时: f(i,j)=max ①式
当0<=j fn( 1 ,c) 是初始时背包问题的最优解。 以本题为例:若0≤y<1 0,则f ( 3 ,y) = 0;若y≥1 0,f ( 3 ,y) = 1 5。利用②式,可得f (2, y) = 0 ( 0≤y<10 );f(2,y)= 1 5(1 0≤y<1 4);f(2,y)= 1 8(1 4≤y<2 4)和f(2,y)= 3 3(y≥2 4)。 因此最优解f ( 1 , 11 6 ) = m a x = m a x = m a x = 3 8。 现在计算xi 值,步骤如下:若f ( 1 ,c) =f ( 2 ,c),则x1 = 0,否则x1 = 1。接下来需从剩余容量c-w1中寻求最优解,用f (2, c-w1) 表示最优解。 依此类推,可得到所有的xi (i= 1.n) 值。 在该例中,可得出f ( 2 , 116 ) = 3 3≠f ( 1 , 11 6 ),所以x1 = 1。接着利用返回值3 8 -p1=18 计算x2 及x3,此时r = 11 6 -w1 = 1 6,又由f ( 2 , 1 6 ) = 1 8,得f ( 3 , 1 6 ) = 1 4≠f ( 2 , 1 6 ),因此x2 = 1,此时r= 1 6 -w2 = 2,所以f (3,2) =0,即得x3 = 0。 01 背包【题目描述】 这是一个so easy的问题:你有一个容量为m的背包。你希望将n个物品放入背包,每个物品
5 10楼:匿名用户 #include #include #define max 100 int n=0,mon[max]=,hev[max]=,hmax=0; int nowh=0,nowm=0; int mmax=0; int as[max]=; int a**ax[max]=; int stmax=0; int st=-1; void print(); void fun(int p); void print() void fun(int p) return; }if(nowh+hev[p]<=hmax)else fun(p+1); }int main() printf("请输入体积限制:"); scanf("%d",&hmax); fun(0); print(); _getch(); return 0;} c语言 设有一个背包,可以放入的重量为m。现有n件物品,重量分别为w1,w2…,wn,(1≤i≤n)。
5 11楼:匿名用户 #include #include intmain() }if(w[m]==1) else}输入 [物品个数n][背包大小m] [物品1重量]...[物品n重量] 样例输入 310 456 样例输出yes 12楼:苏伟熙 这是动态规划的背包问题,要写**的话思路性很强 13楼:当年的反应慢 我提供个思路,你可以用递归的方式解这个问题。如果m=10,w1=1,则如果w1为满足的若干件其中之一的话,则需要其他加起来为m-w1,以此类推,直到w1到wn中有满足的,且没有重复的为止