codeforces C. Vasya And The Mushrooms (思维+模拟)
题意:给定一个2*n的矩形方格,每个格子有一个权值,从(0,0)开始出发,要求遍历完整个网格(不能重复走一个格子),求最大权值和,(权值和是按照step*w累加,step步数从0开始)。
转载:
题解:思维题,如果正向考虑的话很容易把自己绕晕,我们需要反过来想,你会发现其实对于一个2*N的矩阵,你一共只有N个终点(如下图1),如果在认真推敲,你会发现对于这n个终点,从起点到终点的路线都是很有规律的,只有下图2和3两种情况)那么问题就简单了,只需要考虑各种前缀的预处理,之后直接O(n)判断这N个终点得到的最大贡献即可~
图一
图二
图三
可以发现需要得到的是每个终点左边的贡献和右边的贡献,左边的贡献都是蛇形的,只用处理一个数组保存,右边由于有顺时针和逆时针,所有需要处理2个数组维护前缀和等~
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include <vector>
#include<queue>
#include <stack>
#include <map>
#define maxn 605005
#define INF 0x3f3f3f3f
#define LL long long
using namespace std;
LL n;
LL a[maxn];
LL b[maxn];
LL sum_s[maxn];//顺时针的从1~2n的前缀和
LL sum_n[maxn];//逆时针的从1~2n的前缀和
LL sumpre[maxn];//取i~n列的a[i]+b[i]和
LL suml[maxn];//对于一种路线中的左边部分
LL sumr[maxn];//同理,右边部分
LL ans;
void init( )
{
for(int i=n ; i>= ; i--)
sumpre[i]=sumpre[i+]+a[i]+b[i];
for(int i= ; i<=n ; i++)
{
sum_s[i]=sum_s[i-]+(i-)*a[i];
sum_n[i]=sum_n[i-]+(i-)*b[i];
}
for(int i=n ; i>= ; i--)
{
sum_s[*n-i+]=sum_s[*n-i]+(*n-i)*b[i];
sum_n[*n-i+]=sum_n[*n-i]+(*n-i)*a[i];
}
for(int i= ; i<=n ; i++)
{
if(i%==)
{
suml[i] = suml[i-] + (*i-)*a[i-] + (*i-)*b[i-];
sumr[i] = sum_s[*n-i+]-sum_s[i-]+(i-)*sumpre[i];
}
else
{
suml[i]=suml[i-]+(*i-)*a[i-]+(*i-)*b[i-];
sumr[i]=sum_n[*n-i+]-sum_n[i-]+(i-)*sumpre[i];
} }
}
int main( )
{
scanf("%d",&n);
for(int i= ; i<=n ; i++)
scanf("%d",&a[i]);
for(int i= ; i<=n ; i++)
scanf("%d",&b[i]);
init();
ans=;
for(int i= ; i<=n ; i++)
{
ans=max(ans,suml[i]+sumr[i]);
}
printf("%I64d\n",ans);
return ;
}
给自己的一点忠告,分析问题不能太过的片面,要打开思维走向未来
codeforces C. Vasya And The Mushrooms (思维+模拟)的更多相关文章
- codeforces 1016C - Vasya And The Mushrooms 【构造 + 思维】
题目链接:戳这里 题意:从(1,1)出发,一遍把格子走完,每个格子只能走一次.问怎么走总和最大. 解题思路:画图可知,总共就3种走法的混合. dw: 样例1的走法 up: 样例1反过来的走法 lp: ...
- Codeforces 758C:Unfair Poll(思维+模拟)
http://codeforces.com/problemset/problem/758/C 题意:教室里有n列m排,老师上课点名从第一列第一排开始往后点,直到点到第一列第m排,就从第二列第一排开始点 ...
- Codeforces 960D Full Binary Tree Queries ( 思维 && 模拟 )
题意 : 给出一颗无限层的满二叉树,然后每个值为 X (根的 X 等于 1 ) 左孩子的值是 2*X,右孩子的值是 2*X+1 ,现在有两种操作,(1, x,k) 表示将 x 所在层的所有节点整体向右 ...
- CodeForces - 1016C Vasya And The Mushrooms
题面在这里! 好久没有体会这种A题的快感了23333 一开始看错了,以为权值是从1开始的,不过这样不要紧,最后把算的答案减去两行数的和就是正确的答案了. 然后发现位于一个角上的时候,我们其实只有两种选 ...
- 【CF1016C】Vasya And The Mushrooms(模拟)
题意:给定一个2*n的矩阵,每一个点有一个权值,从左上角出发,时间t=0开始,连续的走,将矩阵走完, 每走一步,t++,并且得到t*当前格子的权值的值,求最大的权值和 n<=3e5,1<= ...
- codeforces 1030D Vasya and Triangle【思维+gcd】
题目:戳这里 题意:选出三个点构成三角形,要求面积为n*m/k. 解题思路:因为三个点的坐标都是正整数,根据三角形面积公式(x1*(y2-y3)+x2*(y3-y1)+x3*(y1-y2))/2=n* ...
- CodeForces - 837E - Vasya's Function | Educational Codeforces Round 26
/* CodeForces - 837E - Vasya's Function [ 数论 ] | Educational Codeforces Round 26 题意: f(a, 0) = 0; f( ...
- Vasya And The Mushrooms CodeForces - 1016C (前缀和模拟)
大意: 给定2*n的矩阵, 每个格子有权值, 走到一个格子的贡献为之前走的步数*权值, 每个格子只能走一次, 求走完所有格子最大贡献. 沙茶模拟打了一个小时总算打出来了 #include <io ...
- Codeforces Round #706 (Div. 2)B. Max and Mex __ 思维, 模拟
传送门 https://codeforces.com/contest/1496/problem/B 题目 Example input 5 4 1 0 1 3 4 3 1 0 1 4 3 0 0 1 4 ...
随机推荐
- Excel文本获取拼音
[说明] 版本:Excel 2010 文件后缀:.xls 有在.xlsb文件下使用未成功.建议使用.xls后缀. 1.调出“开发工具” 步骤:文件-->选项-->自定义功能区-->勾 ...
- [转]CSS3 Filter的十种特效
最近到处看到有人在说CSS3的filter一直没有时间自己去测试这效果.今天终于抽出时间学习这个CSS3的Filter.不整不知道呀,一整才让我感到吃惊,太强大了.大家先来看个效果吧: 我想光看上面的 ...
- JSP标签和EL表达式
1.jsp标签: sun原生的,直接jsp使用 <jsp:include> -- 实现页面包含,动态包含 <jsp:include page="/index.jsp&quo ...
- 二 lambda表达式
1:lambda写的好可以极大的减少代码冗余,同时可读性也好过冗长的内部类,匿名类. 2: lambda表达式配合Java8新特性Stream API可以将业务功能通过函数式编程简洁的实现. 3: l ...
- 三 volatile关键字
一:内存模型: 大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入.由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问 ...
- SQL介绍(1)
SQL 是用于访问和处理数据库的标准的计算机语言. SQL,指结构化查询语言,全称是 Structured Query Language. SQL 让您可以访问和处理数据库. SQL 是一种 ANSI ...
- 在python3.6下 发明一个类似python3.7 dataclass数据类,不用在 __init__中self.xx
虽然我用3.6,但我在2.7转3.6时候,把3.3 3.4 3.5 3.6的变化都看了一次,虽然已经忘了哪些变化.同时也关注3.7 3.8的变化,3.7中就有1个数据类印象深刻,因为之前在定义这种类时 ...
- 共有11款Python 中文分词库开源软件
件过滤: 排序: 收录时间 | 浏览数 Python 中文分词库 Yaha "哑哈"中文分词,更快或更准确,由你来定义.通过简单定制,让分词模块更适用于你的需求. "Ya ...
- 我推荐的一些C\C++书籍
原文链接: 我推荐的一些C\C++书籍 人们常常问我有什么C++和编程的书籍推荐,也许是因为我在PowerDNS有一个关于"编写可读性良好的C++代码"的演讲.这篇博文可以作为我对 ...
- pig入门教程(2)
本文可以让刚接触pig的人对一些基础概念有个初步的了解. 本文的大量实例都是作者Darran Zhang(website: codelast.com)在工作.学习中总结的经验或解决的问题,并且添加了较 ...