洛谷 P1230 智力大沖浪(貪心)
阿新 • • 發佈:2020-08-01
題目連結:https://www.luogu.com.cn/problem/P1230
對於每一個時刻,肯定要讓錢數最大的儘量做。可以先按錢數排序,然後倒序列舉每一個任務可以在哪個時刻完成,且時刻越晚越優。
AC程式碼:
1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 using namespace std; 5 int m,n; 6 const int N=1005; 7 struct node{ 8 int t,d; 9 }a[N]; 10 int vis[N];AC程式碼11 bool cmp(node a,node b){ 12 return a.d>b.d; 13 } 14 int main(){ 15 scanf("%d%d",&m,&n); 16 for(int i=1;i<=n;i++) scanf("%d",&a[i].t); 17 for(int i=1;i<=n;i++) scanf("%d",&a[i].d); 18 sort(a+1,a+n+1,cmp); 19 for(int i=1;i<=n;i++){ 20 for(intj=a[i].t;j>=1;j--){ 21 if(!vis[j]){ 22 vis[j]=1; 23 a[i].d=0; 24 break; 25 } 26 } 27 } 28 for(int i=1;i<=n;i++) m-=a[i].d; 29 printf("%d",m); 30 return 0; 31 }