【2018.3.24】模拟赛之五-ssl1864 得分【dp,贪心】
生活随笔
收集整理的這篇文章主要介紹了
【2018.3.24】模拟赛之五-ssl1864 得分【dp,贪心】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
正題
鏈接(需要jzoj賬號)
大意
有n道題,有不同的價值和需要的時間,在剩余x分鐘做并且可以做完的話就可以獲得 價值*x的價值。
大意
用貪心+Dp,然后就好了。貪心就是用價值除以時間,然后排序。
代碼
#include<cstdio> #include<algorithm> #include<iostream> using namespace std; struct shop{int c,t; }a[3001]; int n,m,maxs,ans,f[10001]; bool cmp(shop x,shop y)//排序 {return y.c*x.t<x.c*y.t; } int main() {scanf("%d%d",&n,&m);for (int i=1;i<=n;i++) scanf("%d%d",&a[i].t,&a[i].c);stable_sort(a+1,a+1+n,cmp);for (int i=1;i<=n;i++){for (int j=m;j>=a[i].t;j--)f[j]=max(f[j],f[j-a[i].t]+a[i].c*(m-j+a[i].t));//dp}for (int i=1;i<=m;i++)maxs=max(maxs,f[i]);printf("%d",maxs); }總結
以上是生活随笔為你收集整理的【2018.3.24】模拟赛之五-ssl1864 得分【dp,贪心】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【2018.3.24】模拟赛之四-ssl
- 下一篇: 【2018.3.24】模拟赛之六-ssl