码迷,mamicode.com
首页 > 其他好文 > 详细

P1230 智力大冲浪

时间:2018-10-03 21:23:24      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:\n   log   family   冲浪   访问   namespace   思路   图片   false   

题目大意:

        开始你用有一笔钱,要去完成n个任务,每个任务需要一个单位的时间,但有最晚完成时间ti,若没完成,就扣掉相应的钱wi,问如何能留下最多的钱。

思路:

        这题很奇怪没给数据范围,我能想到最优的是n*logn的。

        总体想法就是,若当前任务冲突还扣钱很多,就挑出在它之前的扣钱最少的与它交换。先把游戏按截止时间排序,按扣掉的钱数建一个小根堆表示准备做的任务,访问每一个任务,若时间来的及,就加入堆;否则与堆顶元素比较看是否交换。

技术分享图片
 1 #include<cstdio>
 2 #include<queue>
 3 #include<algorithm>
 4 
 5 using namespace std;
 6  
 7 struct node
 8 {
 9     int t,w;
10     node()
11     {
12         t=0;w=0;
13     }
14     bool operator < (const node &x)const
15     {
16         return w>x.w;
17     }
18 }qian[100000];
19 
20 int n,ans,m;
21 priority_queue<node> dui;
22 
23 bool comp(node x,node y)
24 {
25     if(x.t<y.t)return true;
26     else return false;
27 }
28 
29 int main()
30 {
31     scanf("%d%d",&n,&m);
32     for(int i=1;i<=m;i++)
33     {
34         scanf("%d",&qian[i].t);
35     }
36     for(int i=1;i<=m;i++)
37     {
38         scanf("%d",&qian[i].w);
39     }
40 //    printf("!!!!!\n");
41     sort(qian+1,qian+1+m,comp);
42     dui.push(qian[1]);
43     ans=n;
44     int cnt=1;
45     for(int i=2;i<=m;i++)
46     {
47         if((qian[i].t==qian[i-1].t)&&(cnt==qian[i].t))
48         {
49             node tem=dui.top();
50             if(tem.w<qian[i].w)
51             {
52                 ans-=tem.w;
53                 dui.pop();cnt--;
54             }
55             else 
56             {
57                 ans-=qian[i].w;
58                 continue;
59             }
60         }
61         cnt++;
62         dui.push(qian[i]);
63     //    printf("%d\n",dui.top().w);
64     }
65     printf("%d\n",ans);
66     return 0;
67 }
68 /*
69 1000
70 7
71 4 2 4 3 1 4 6
72 70 60 50 40 30 20 10*/
View Code

 

P1230 智力大冲浪

标签:\n   log   family   冲浪   访问   namespace   思路   图片   false   

原文地址:https://www.cnblogs.com/LiqgNonqfu/p/9738849.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!