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

【CF1016C】Vasya And The Mushrooms(模拟)

时间:2018-11-09 21:11:58      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:max   ios   amp   开始   png   bsp   最大   std   space   

题意:给定一个2*n的矩阵,每一个点有一个权值,从左上角出发,时间t=0开始,连续的走,将矩阵走完,

每走一步,t++,并且得到t*当前格子的权值的值,求最大的权值和

n<=3e5,1<=a[i][j]<=1e6

思路:合法的构造方案如图

技术分享图片

记录几个前缀和,真的不想写这种题

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<algorithm>
 5 typedef long long ll;
 6 using namespace std;
 7 #define N   310000
 8 #define oo  10000000
 9 #define MOD 1000000007
10 
11 ll s1[2][N],s2[2][N],s3[2][N],a[2][N];
12 
13 int main()
14 {
15     int n;
16     scanf("%d",&n);
17     for(int i=0;i<2;i++)
18      for(int j=0;j<n;j++) scanf("%lld",&a[i][j]);
19     for(int i=0;i<2;i++)
20      for(int j=n-1;j>=0;j--)
21      {
22          s1[i][j]=s1[i][j+1]+a[i][j]*(j+1);
23          s2[i][j]=s2[i][j+1]+a[i][j]*(n-j);
24          s3[i][j]=s3[i][j+1]+a[i][j];
25      }
26     ll sum=0,ans=0;
27     for(int i=0,j=0;j<n;j++,i^=1)
28     {
29         ll tmp=sum;
30         tmp+=s1[i][j]+s3[i][j]*j;
31         tmp+=s2[i^1][j]+s3[i^1][j]*(j+n);
32         ans=max(ans,tmp);
33         sum+=a[i][j]*(j*2+1);
34         sum+=a[i^1][j]*(j*2+2);
35     }
36     for(int i=0;i<n;i++) ans-=a[0][i]+a[1][i];
37     printf("%lld\n",ans);
38     return 0;
39 }
40     

 

【CF1016C】Vasya And The Mushrooms(模拟)

标签:max   ios   amp   开始   png   bsp   最大   std   space   

原文地址:https://www.cnblogs.com/myx12345/p/9936811.html

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