首页 > 其他 > 详细

NOIP 普及组 2016 海港

时间:2018-10-26 23:22:31      阅读:232      评论:0      收藏:0      [点我收藏+]

 

https://www.cnblogs.com/violet-acmer/p/9859003.html

题解待完成,献上AC代码:

技术分享图片
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define pb push_back
 4 #define lowbit(x) (x&(-x))
 5 #define mem(a,b) memset(a,b,sizeof a)
 6 const int maxn=1e5+50;
 7 
 8 int n;
 9 int arrive[maxn];
10 int affect[maxn];
11 vector<int >ship[maxn];
12 int diff[maxn];
13 void Solve()
14 {
15     mem(affect,0);
16     mem(diff,0);
17     for(int i=1;i <= n;++i)
18     {
19         int t=lower_bound(arrive+i,arrive+n+1,arrive[i]+86400)-arrive;
20         //printf("i=%d,t=%d\n",i,t);
21         for(int j=0;j < ship[i].size();++j)
22         {
23             int native=ship[i][j];
24             if(affect[native] < i)
25                 affect[native]=i;
26             diff[affect[native]]++;
27             diff[t]--;
28             affect[native]=t;
29         }
30     }
31     for(int i=1;i <= n;++i)
32     {
33         diff[i] += diff[i-1];
34         printf("%d\n",diff[i]);
35     }
36 }
37 int main()
38 {
39     scanf("%d",&n);
40     for(int i=1;i <= n;++i)
41     {
42         int t,k;
43         scanf("%d%d",&t,&k);
44         arrive[i]=t;
45         for(int j=1;j <= k;++j)
46         {
47             int native;
48             scanf("%d",&native);
49             ship[i].pb(native);
50         }
51         sort(ship[i].begin(),ship[i].end());
52         ship[i].erase(unique(ship[i].begin(),ship[i].end()),ship[i].end());
53     }
54     Solve();
55 }
56 /**
57 5
58 1 4 4 1 2 2
59 2 2 2 3
60 10 1 3
61 100000 5 1 2 3 4 5
62 100001 5 1 2 3 4 6
63 **/
View Code

 

NOIP 普及组 2016 海港

原文:https://www.cnblogs.com/violet-acmer/p/9859006.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!