可以知道有两种走法 一种是蛇形上下移动 另一种是直接移动到底再转回来
那么可以先处理三种走法(走到底的情况分为从上开始和从下开始)在每个点的值,再加起来找出最大值
很有趣的是:走到底的情况要走的相对顺序是一样的,所以只要补充前面蛇形运动多出来几步的部分就可以了


//cyc
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#pragma GCC optimization ("unroll-loops")
#include<bits/stdc++.h>
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define per(i,a,n) for(int i=n;i>=a;i--)
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define mst(a) memset(a,0,sizeof a)
#define int long long
using namespace std;
typedef pair<int,int> pii;
const int maxn=3e5+5;
int a[maxn];
int b[maxn];
int fixx[maxn];//补充
int dct1[maxn];//上
int dct0[maxn];//下
int snake[maxn];//蛇形运动
signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int n;cin>>n;for(int i=1;i<=n;i++)cin>>a[i];for(int i=1;i<=n;i++)cin>>b[i];for(int i=n;i>=1;i--){fixx[i]=fixx[i+1]+a[i]+b[i];}int j=n;for(int i=n;i>=1;i--){dct1[i]=dct1[i+1]+a[i]*(i-1);dct1[i]+=b[i]*j;j++;}j=n;for(int i=n;i>=2;i--){dct0[i]=dct0[i+1]+i*b[i]+(j+1)*a[i];j++;}dct0[1]=dct0[2]+b[1];for(int i=1;i<=n;i++){int num=(i-1)*2;if(i&1)  snake[i]=snake[i-1]+num*a[i]+(num+1)*b[i];else snake[i]=snake[i-1]+num*b[i]+(num+1)*a[i];}int ans=0;for(int i=0;i<=n;i++){if(i&1){ans=max(ans,snake[i]+dct0[i+1]+(i-1)*fixx[i+1]);}else{ans=max(ans,snake[i]+dct1[i+1]+i*fixx[i+1]);}}cout<<ans<<endl;
}

1016C. Vasya And The Mushrooms相关推荐

  1. codeforces 1016C - Vasya And The Mushrooms 【构造 + 思维】

    题目链接:戳这里 题意:从(1,1)出发,一遍把格子走完,每个格子只能走一次.问怎么走总和最大. 解题思路:画图可知,总共就3种走法的混合. dw: 样例1的走法 up: 样例1反过来的走法 lp: ...

  2. CodeForces-1016C Vasya And The Mushrooms(模拟+思维+前缀和的前缀和) 解题报告 Apare_xzc

    CodeForces-1016C Vasya And The Mushrooms(模拟+思维+二重前缀和 ) 解题报告 xzc 2019/4/7 这周周赛的C题:wyt学姐的恶意   这道题周赛的时候 ...

  3. cf Educational Codeforces Round 48 C. Vasya And The Mushrooms

    原题: C. Vasya And The Mushrooms time limit per test2 seconds memory limit per test256 megabytes input ...

  4. CF1016C Vasya And The Mushrooms 题解

    这道题一眼就是一个DP(大雾),但题目中有一句很有趣的话 "He wants to visit all the cells exactly once and maximize the tot ...

  5. Educational Codeforces Round 48

    Educational Codeforces Round 48 C.Vasya And The Mushrooms 思路很简单,走法有一个统一形式就是先上下走,然后到某个位置左右一个来回.然后就推一下 ...

  6. 动态规划 —— 线性 DP

    [概述] 线性动态规划,是较常见的一类动态规划问题,其是在线性结构上进行状态转移,这类问题不像背包问题.区间DP等有固定的模板. 线性动态规划的目标函数为特定变量的线性函数,约束是这些变量的线性不等式 ...

  7. cf Educational Codeforces Round 133 C. Robot in a Hallway

    原题: There is a grid, consisting of 2 rows and m columns. The rows are numbered from 1 to 2 from top ...

  8. Codewars Vasya - Clerk--6 kyu--Python解法

    Codewars Vasya - Clerk–6 kyu–Python解法 Codewars 是一个跟LeetCode类似的结题网站. Codewars题解专栏:Codewars题解 题目地址:Tra ...

  9. ML之LoRDTRF:基于LoRDT(CART)RF算法对mushrooms蘑菇数据集(22+1,6513+1611)训练来预测蘑菇是否毒性(二分类预测)

    ML之LoR&DT&RF:基于LoR&DT(CART)&RF算法对mushrooms蘑菇数据集(22+1,6513+1611)训练来预测蘑菇是否毒性(二分类预测) 目录 ...

最新文章

  1. 极大似然估计_干货|一文理解极大似然估计
  2. AttributeError: 'PyQt5.QtCore.pyqtSignal' object has no attribute 'connect'
  3. 中科大量子计算机重大突破,中国科大在量子计算研究中获重大突破
  4. Eclipse中新建SpringBoot项目完成对json、pojo、map、list的请求
  5. c语言ascii码表_新手小白整理C语言笔记备忘,带你十分钟理解C语言
  6. java获取实体类的属性和值
  7. 前端学习(1679):前端系列实战课程之为蛇创建食物对象
  8. Facebook 游戏开发更新文档 API 参考文档 v6.0
  9. 清华大学张文增教授110页PPT讲专利申请、检索与解读
  10. 自检代码中trustmanager漏洞_Windows内核漏洞利用教程
  11. 智云通CRM:销售就是讲故事?
  12. 《动手学深度学习》(PyTorch版)代码注释 - 56 【Machine_translation】
  13. Am3358增加Uboot的logo显示 增加Uboot自定义命令控制LCD
  14. 输入法规则(V模式输入)
  15. 福建中医药大学数字化校园应用及数据容灾系统181万
  16. 【vue2】axios请求与axios拦截器的使用详解
  17. Hive之Order,Sort,Cluster and Distribute By
  18. Unity Android通过拍照和相册上传头像(图片)
  19. PS工作区拖动乱了如何复位?
  20. python匹配ip地址

热门文章

  1. 为Exynos4412移植U-Boot-2017.11的步骤(一)——让U-Boot跑起来
  2. 如何写出一篇好文章——不动笔就能学会写文章的训练法
  3. 【基础】一叶知秋,从背包问题到动态规划
  4. 使用 Let's Encrypt 的免费HTTPS服务
  5. 【知识图谱】实践篇——基于医疗知识图谱的问答系统实践(Part5-完结):信息检索与结果组装
  6. ERR_NAME_NOT_RESOLVED错误的解决方法
  7. 计算机图文报告病理是什么,病理图文报告系统、病理图文工作站、病理报告软件...
  8. cms概述 。比较shopex和ecshop区别 。smarty模板引擎的入门
  9. 前端异步请求async/await,axios的错误用法
  10. c语言统计行数单词数字符数,C语言统计字数行数单词数的程序