【题目描述】 有一非闰年年初有100000元,有N个理财产品,每个理财产品用三个参数描述:购买时间,投资天数,年利息。每个时刻你只能拥有最多一件产品,求一年后最多可以获得多少钱。 【输入格式】 第1行一个整数N 接下来N行,每行为3个空格隔开的字符串A、B、C;A表示发行时间,格式为MMDD;B是一个整数,为投资天数,范围[10,300];C为最多2位小数,代表百分之几的年利息,范围[3,30] 【输出格式】 一个数,为年底最多可以获得的连本带利的资金数目,保留两位小数 【样例输入】 3 0101 100 4.5 0201 30 5 0402 50 7.8 【样例输出】 101483.84 【分析】 一维动态规划,设f[i]表示第i天可以获得的最大受益,注意最后输出f[366],因为题目求的是一年以后。
const month:array[1..12]of integer=(31,28,31,30,31,30,31,31,30,31,30,31); var i,j,n,p:longint; a,b:array[0..1000001]of longint; f,c:array[0..1000001]of real; begin readln(n); for i:=1 to n do begin readln(p,b[i],c[i]); c[i]:=c[i]/100; a[i]:=p mod 100; p:=p div 100; for j:=1 to p-1 do a[i]:=a[i]+month[j]; end; f[1]:=100000; for i:=2 to 366 do begin f[i]:=f[i-1]; for j:=1 to n do if (a[j]+b[j]=i)and(f[a[j]]*(1+c[j]/365*b[j])>f[i]) then f[i]:=f[a[j]]*(1+c[j]/365*b[j]); end; write(f[366]:0:2); end.转载于:https://www.cnblogs.com/JRX2015U43/p/6533542.html
相关资源:理财产品信息管理系统(工程 数据库)