JZOJ4883. 【NOIP2016提高A组集训第12场11.10】灵知的太阳信仰 2017.10(B组)
来源:互联网 发布:js断点调试 编辑:程序博客网 时间:2024/05/16 02:36
Description
在炽热的核熔炉中,居住着一位少女,名为灵乌路空。
据说,从来没有人敢踏入过那个熔炉,因为人们畏缩于空所持有的力量——核能。
核焰,可融真金。
咳咳。
每次核融的时候,空都会选取一些原子,排成一列。然后,她会将原子序列分成一些段,并将每段进行一次核融。
一个原子有两个属性:质子数和中子数。
每一段需要满足以下条件:
1、同种元素会发生相互排斥,因此,同一段中不能存在两个质子数相同的原子。
2、核融时,空需要对一段原子加以防护,防护罩的数值等于这段中最大的中子数。换句话说,如果这段原子的中子数最大为x,那么空需要付出x的代价建立防护罩。求核融整个原子序列的最小代价和。
Input
第一行一个正整数N,表示原子的个数。
接下来N行,每行两个正整数pi和ni,表示第i个原子的质子数和中子数。
Output
输出一行一个整数,表示最小代价和。
Sample Input
5
3 11
2 13
1 12
2 9
3 13
Sample Output
26
Data Constraint
对于20%的数据,1<=n<=100
对于40%的数据,1<=n<=1000
对于100%的数据,1<=n<=10^5,1<=pi<=n,1<=ni<=2*10^4
想法:
设f[i]表示前i个数的最小代价
f[i]=min(f[j],max(b[j+1…i]))last[i]<=j<=i-1
last[i]表示从i往左走最远的合法位置,单调求
设s[i]表示i往左走第1个比b[j]比b[i]大的j,单调队列维护求即可
接下来用线段树维护几个值
ans:这个区间对答案的最小转移
mnf:这个区间最小的f值
tag:这个区间到i的max(b[j+1…i])值
先把f[i-1]+b[i]插入线段树中的第i个位置
,然后对于s[i]+1到i-1的,他们对答案的贡献=f值+b[i]
最后查询答案更新即可
- JZOJ4883. 【NOIP2016提高A组集训第12场11.10】灵知的太阳信仰 2017.10(B组)
- 【JZOJ4883】【NOIP2016提高A组集训第12场11.10】灵知的太阳信仰
- JZOJ4883. 【NOIP2016提高A组集训第12场11.10】灵知的太阳信仰
- 【NOIP2016提高A组集训第12场11.10】灵知的太阳信仰
- JZOJ 4883 【NOIP2016提高A组集训第12场11.10】灵知的太阳信仰
- jzoj 4883. 【NOIP2016提高A组集训第12场11.10】灵知的太阳信仰
- jzoj 4883. 【NOIP2016提高A组集训第12场11.10】灵知的太阳信仰 动态规划+线段树
- [jzoj]4883. 【NOIP2016提高A组集训第12场11.10】灵知的太阳信仰(线段树优化DP)
- NOIP2016提高A组集训第12场11.10 总结
- JZOJ4880. 【NOIP2016提高A组集训第11场11.9】询问 (2017.10B组)
- jzoj4883 灵知的太阳信仰
- JZOJ4883. 灵知的太阳信仰
- 4890. 【NOIP2016提高A组集训第14场11.12】随机游走 (2017.10B组)
- JZOJ4876. 【NOIP2016提高A组集训第10场11.8】基因突变(2017.8B组)
- 【NOIP2016提高A组集训第12场11.10】图的半径
- JZOJ4884. 【NOIP2016提高A组集训第12场11.10】图的半径
- 【JZOJ4884】【NOIP2016提高A组集训第12场11.10】图的半径
- 4888. 【NOIP2016提高A组集训第14场11.12】最近公共祖先 (2017.10B组)
- poi公式处理
- sql优化
- SpringBoot应用MyBatis
- 10月16日 树状数组(敌兵布阵)
- 面向对象程序设计上机练习五(类和对象)
- JZOJ4883. 【NOIP2016提高A组集训第12场11.10】灵知的太阳信仰 2017.10(B组)
- JSEL
- C++信息学奥赛一本通1049
- Java基础知识-笔记一
- 九度OJ——1017还是畅通工程
- hihocoder1172 : 博弈游戏·Nim游戏·二
- [LeetCode]344. Reverse String
- 图像分辨率速查表
- pat 1110----C++的字符串不行啊