1. 程式人生 > 實用技巧 >洛谷 P1230 智力大沖浪(貪心)

洛谷 P1230 智力大沖浪(貪心)

題目連結: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];
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(int
j=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 }
AC程式碼