摘要:
题意:现在需要价格总额为cash的钱,有n种面值的钱币,每种钱币的数目为n[i],面值为d[i],求在小于或等于所需价格总额的情况下所能组成的最大价值.分析:多重背包,数组标记.code:var f:array[0..120000] of boolean; count:array[0..120000] of longint; v,t:array[0..120] of longint; n,m,i,j,ans:longint;begin while not eof do begin read(m,n); if (n=0)and(m=0) then halt; fillchar(f,sizeof( 阅读全文
摘要:
题意:有6种面值的货币,保证最小面值是1.可加可减,求出分别组成1~100金额的最少货币数.并求出它们的平均值和最大值.分析:有负权的完全背包,下界开大,注意处理负权即可.code:const oo=33686018; maxn=20000;var datanum,d,o,i,j,ans,max:longint; a:array[1..6] of longint; f:array[0..maxn] of longint; function min(a,b:longint):longint; begin if a>b then exit(b); exit(a); end;begin rea 阅读全文
摘要:
题意:要求设计这样一个数据结构,支持下列操作1.add(x,y,a).对二维数组的第x行,第y列加上a.2.sum(l,b,r,t).求所有满足l<=x<=r,b<=y<=t,的数组元素的和.显然,二维树状数组满足这些要求.code:var c:array[0..1025,0..1025] of longint; opt,n,x,y,a,l,b,r,t:longint; function lowbit(i:longint):longint; begin lowbit:=i and (i xor (i-1)); end; procedure change(x0,y0,a: 阅读全文