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

NOIP蚯蚓

时间:2017-09-17 22:21:38      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:algo   一个   队列   for   can   mat   namespace   math   clu   

那么我们开三个不上升队列, 
第一个记录原来的蚯蚓, 
第二个记录乘以p的蚯蚓 
第三个记录乘以(1-p)的蚯蚓, 
在记录每条就要入队列的时间,就可以求出增加的长度 
每次比较三个队列的队首,取最大的值x的切。 
将xp加入第二个队列的队尾 
将x(1-p)加入第三个队列的队尾 
(第二个第三个队列保证单调,上面证明了)

 1 #include<cstdio>
 2 #include<algorithm>
 3 #include<iostream>
 4 #include<cmath>
 5 #include<cstring>
 6 using namespace std;
 7 int q[4][7100010][2],ans[7100010];
 8 int n,m,Q,u,v,t,a[100010],head[5],tail[5],out;
 9 bool cmp(int a,int b)
10 {
11     return a>b;
12 }
13 int main()
14 {
15     scanf("%d%d%d%d%d%d",&n,&m,&Q,&u,&v,&t);
16     for (int i=1;i<=n;i++) scanf("%d",&a[i]);
17     sort(a+1,a+n+1,cmp);
18     for (int i=1;i<=n;i++) q[1][i][0]=a[i];
19     head[1]=1;tail[1]=n;
20     head[2]=1;tail[2]=0;
21     head[3]=1;tail[3]=0;
22     for (int i=1;i<=m;i++)
23     {
24         long long Max=0,maxj=0;
25         for (int j=1;j<=3;j++)
26             if (head[j]<=tail[j]&&q[j][head[j]][0]+(i-1-q[j][head[j]][1])*Q>Max) Max=q[j][head[j]][0]+(i-1-q[j][head[j]][1])*Q,maxj=j;
27         head[maxj]++;
28         if (i%t==0) ans[++out]=Max;
29         q[2][++tail[2]][0]=Max*u/v;q[2][tail[2]][1]=i;
30         q[3][++tail[3]][0]=Max-Max*u/v;q[3][tail[3]][1]=i;
31     }
32     for (int i=1;i<=out;i++)
33     {
34         printf("%d",ans[i]);
35         if (i!=out) printf(" ");
36     }
37     printf("\n");
38     out=0;
39     for (int i=1;i<=n+m;i++)
40     {
41         long long Max=0,maxj=0;
42         for (int j=1;j<=3;j++)
43             if (head[j]<=tail[j]&&q[j][head[j]][0]+(m-q[j][head[j]][1])*Q>Max) Max=q[j][head[j]][0]+(m-q[j][head[j]][1])*Q,maxj=j;
44         if (i%t==0) ans[++out]=Max;
45         head[maxj]++;
46     }
47     for (int i=1;i<=out;i++)
48     {
49         printf("%d",ans[i]);
50         if (i!=out) printf(" ");
51     }
52     printf("\n");
53 }

 

NOIP蚯蚓

标签:algo   一个   队列   for   can   mat   namespace   math   clu   

原文地址:http://www.cnblogs.com/fengzhiyuan/p/7537844.html

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