Wannafly挑战赛21 C 大水题
https://www.nowcoder.com/acm/contest/159/C
dp
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <string>
#include <set>
#include <map>
#include <list>
#include <stack>
#include <queue>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
#define ll long long
#define minv 1e-6
#define inf 1e9
const ll mod=1e9+;
const long maxn=3e5+; struct node
{
int a,num;
}p[maxn]; int pre[maxn];
ll g[maxn],tot[maxn],f[maxn][]; int cmp(node x,node y)
{
if (x.a==y.a)
return x.num<y.num;
else
return x.a<y.a;
} int main()
{
int n,i;
ll maxf=;
scanf("%d",&n);
for (i=;i<=n;i++)
{
scanf("%d",&p[i].a);
p[i].num=i;
}
sort(p+,p+n+,cmp); for (i=;i<=n;i++)
pre[i]=-;
for (i=;i<=n;i++)
if (p[i].a==p[i-].a)
pre[p[i].num]=p[i-].num; tot[]=;
for (i=;i<=n;i++)
{
scanf("%lld",&g[i]);
tot[i]=tot[i-]+g[i];
} maxf=;
f[][]=,f[][]=;
for (i=;i<=n;i++)
{
f[i][]=max(f[i-][],f[i-][]);
if (pre[i]!=-)
f[i][]=max(f[pre[i]][]+tot[i]-tot[pre[i]-] , f[pre[i]][]-g[pre[i]]+tot[i]-tot[pre[i]-]);
else
f[i][]=;
}
printf("%lld",max(f[n][],f[n][])); // maxf=0;
// for (i=1;i<=n;i++)
// {
// f[i]=f[i-1];
// if (pre[i]!=-1)
// f[i]=max(f[i-1],f[pre[i]]+tot[i]-tot[pre[i]-1]);
//
// }
// printf("%lld",f[n]); return ;
}
/*
7
1 1 1 2 1 1 1
1 2 3 1 4 5 6 7
1 2 1 4 7 1 7
1 1 1 1 1 1 10
*/
Wannafly挑战赛21 C 大水题的更多相关文章
- Wannafly挑战赛21:C - 大水题
链接:Wannafly挑战赛21:C - 大水题 题意: 现在给你N个正整数ai,每个数给出一“好数程度” gi(数值相同但位置不同的数之间可能有不同的好数程度).对于在 i 位置的数,如果有一在j位 ...
- Wannafly挑战赛21 E 未来城市规划
传送门 题目中给的信息很难直接维护,但是可以考虑一条边对答案的贡献 在以\(x\)为根的子树里,如果一条边\(i\)的权值为\(w_i\),这条边深度更深的端点为\(to_i\),那么这条边对这个子树 ...
- Wannafly挑战赛21 机器人
从前在月球上有一个机器人.月球可以看作一个 n*m 的网格图,每个格子有三种可能:空地,障碍,机器人(有且仅有一个),现在地面指挥中心想让机器人在月球上行走,每次可以发送一个指令,为 U-往上走.D- ...
- 牛客网 Wannafly挑战赛21 灯塔
Z市是一座港口城市,来来往往的船只依靠灯塔指引方向.在海平面上,存在n个灯塔.每个灯塔可以照亮以它的中心点为中心的90°范围.特別地, 由于特殊限制,每个灯塔照亮范围的角的两条边必须要么与坐标轴平行要 ...
- Wannafly挑战赛10:A题:小H和迷宫
题目描述 小H陷入了一个迷宫中,迷宫里有一个可怕的怪兽,血量有N点,小H有三瓶魔法药水,分别可以使怪兽损失a%.b%.c%的血量(之后怪兽的血量会向下取整),小H想合理地运用这三瓶药水,使 ...
- 【Wannafly挑战赛24E】旅行
[Wannafly挑战赛24E]旅行 题面 牛客 题解 首先有一个非常显然的\(dp\):我们直接把\(s\rightarrow t\)的路径抠出来然后设\(f_{i,j}\)表示到第\(i\)个点, ...
- 【Wannafly挑战赛4】F 线路规划 倍增+Kruskal+归并
[Wannafly挑战赛4]F 线路规划 题目描述 Q国的监察院是一个神秘的组织.这个组织掌握了整个帝国的地下力量,监察着Q国的每一个人.监察院一共有N个成员,每一个成员都有且仅有1个直接上司,而他只 ...
- Wannafly挑战赛27
Wannafly挑战赛27 我打的第一场$Wannafly$是第25场,$T2$竟然出了一个几何题?而且还把我好不容易升上绿的$Rating$又降回了蓝名...之后再不敢打$Wannafly$了. 由 ...
- Wannafly 挑战赛 19 参考题解
这一次的 Wannafly 挑战赛题目是我出的,除了第一题,剩余的题目好像对大部分算法竞赛者来说好像都不是特别友好,但是个人感觉题目质量还是过得去的,下面是题目链接以及题解. [题目链接] Wanna ...
随机推荐
- 小刘的深度学习---Faster RCNN
前言: 对于目标检测Faster RCNN有着广泛的应用,其性能更是远超传统的方法. 正文: R-CNN(第一个成功在目标检测上应用的深度学习的算法) 从名字上可以看出R-CNN是 Faster RC ...
- 简单安装与使用虚拟环境virtualenv
安装虚拟环境的命令如下: sudo pip install virtualenv sudo pip install virtualenvwrapper 创建虚拟环境的命令如下: mkvirtualen ...
- Node.js开发入门—套接字(socket)编程
Node.js的net模块提供了socket编程接口,方便我们利用较为底层的套接字接口来实现应用协议.这次我们看一个简单的回显服务器示例,包括服务端和客户端的代码. 代码 分服务器和客户端两部分来说吧 ...
- Python中collections模块的使用
本文将详细讲解collections模块中的所有类,和每个类中的方法,从源码和性能的角度剖析. 一个模块主要用来干嘛,有哪些类可以使用,看__init__.py就知道 '''This module i ...
- 20162314 Experiment 2 - Tree
Experiment report of Besti course:<Program Design & Data Structures> Class: 1623 Student N ...
- 如何获取启动页activity
启动页activity指App启动的第一个activity,介绍几种查看启动页activity的方法: 方法一:问开发,最有效的获取方式 方法二:dumpsys package 包名,前提是知道包名( ...
- The Begining
学习记录之旅,就此开始.软件工程,Java神马的统统到我碗里来.
- DataTime日期格式化
C# DateTime日期格式化 在C#中DateTime是一个包含日期.时间的类型,此类型通过ToString()转换为字符串时,可根据传入给Tostring()的参数转换为多种字符串格式. 目录 ...
- “吃神么,买神么”的第一个Sprint计划(第五天)
“吃神么,买神么”项目Sprint计划 ——5.25 星期一(第五天)立会内容与进度 摘要:logo2出来了,修改过不一样的风格,组内总体评价可以,但是颜色要改,色调没注意,统一决定改成与背景色一致 ...
- Current request is not a multipart request
1. 文件上传需要在form表单中添加<form enctype="multipart/form-data"> 2. SpringMVC默认是关闭fileupload功 ...