//这是动态规划,最少硬币问题#include#include#includeusingnamespacestd;#defineMAX999999intn,m;intMin(inta,intb){if(aT,intsize){inti,j;vectorF1(m+1),F2(m+1);fill(F1.begin(),F1.end(),0);for(i=1;iT[i-1]){if(F1[j-T[i-1]]==0){F2[j]=F1[j];}elseif(F1[j-T[i-1]]>0){if(F1[j]>0)F2[j]=Min(F1[j-T[i-1]]+1,F1[j]);elseif(F1[j]==0){F2[j]=F1[j-T[i-1]]+1;}}}}swap(F1,F2);}if(F1[m]==0)return-1;returnF1[m];}voidrun(){ifstreammyfile("c:\\input.txt");/*打开要读取的文件*/ofstreamoutfile("c:\\output.txt");myfile>>n;inti,j,size;vectorT;intt,coin;for(i=0;i>t>>coin;for(j=0;j>m;size=T.size();intsum=DP(T,size);outfile<