LINK

考虑怎样删除区间[l,r][l,r][l,r]内的战士

考虑一种无脑的做法,让区间[l,r][l,r][l,r]一直使用狂暴,剩下一个和al−1a_l-1al​−1或ar+1a_{r+1}ar+1​狂暴就能全部消除

但如果区间中的最大数比al−1a_{l-1}al−1​和ar+1a_{r+1}ar+1​都大,那么最后它是无法消除的,我们称这种数字为特殊数字

所以应该先用火球术把这种比两边大的数字消掉才行

此时如果(r−l+1)<k(r-l+1)<k(r−l+1)<k,不足以使用一次火球则无解,其余都可以消除

这里需要分两种情况

①.当y∗k<=xy*k<=xy∗k<=x时,狂暴比较划算

所以在消除特殊数字的同时还要最小化火球术的次数

当区间中没有特殊数字时,一直狂暴即可,代价(r−l+1)∗y(r-l+1)*y(r−l+1)∗y

否则,一直在最大数字周围使用狂暴知道只剩kkk个元素,用一次火球即可消除干净

②.当y∗k>xy*k>xy∗k>x时,火球比较划算

所以在消除特殊数字的同时还要最大化火球术的次数

令z=(r−l+1)%kz=(r-l+1)\%kz=(r−l+1)%k,显然可以先用狂暴消掉任意zzz个数字,然后一直用火球术即可消干净

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = 1e6+10;
int n,m,t,x,y,k,flag = 1;
int a[maxn],b[maxn],mx[maxn][22],lg[maxn];
unordered_map<int,int>ma;
int get(int l,int r)
{int k = lg[r-l+1];return max( mx[l][k],mx[r-(1<<k)+1][k] );
}
int solve(int l,int r)
{if( l>r )   return 0ll;int w = get(l,r);if( w>max( a[l-1],a[r+1] ) &&  (r-l+1)<k ) flag = 0;if( y*k<=x ){if( w<max( a[l-1],a[r+1] ) ) return y*(r-l+1);else if( w>max( a[l-1],a[r+1]) )  return ( r-l+1-k )*y+x;           }else{int z = (r-l+1)%k;return (r-l+1)/k*x+z*y; }
}
signed main()
{ios::sync_with_stdio( false ); cin.tie( 0 ); cout.tie( 0 );for(int i=2;i<=1000000;i++)  lg[i] = lg[i>>1]+1;ma.clear();cin >> n >> m >> x >> k >> y;for(int i=1;i<=n;i++)   cin >> a[i], ma[a[i]] = i, mx[i][0] = a[i];for(int j=1;j<=20;j++)for(int i=1;i+(1<<j)-1<=n;i++)mx[i][j] = max( mx[i][j-1],mx[i+(1<<(j-1))][j-1] );int las = 0, ans = 0;for(int i=1;i<=m;i++){cin >> b[i];int x = ma[b[i]];if( !ma.count( b[i] ) )  flag = 0;else{if( x<las )   flag = 0;else  las = x;}}b[0] = 0;for(int i=1;i<=m;i++){if( i==1 ){if( a[1]==b[1] )   continue;ans += solve( 1,ma[b[1]]-1 );}elseans += solve( ma[b[i-1]]+1,ma[b[i]]-1 );}if( a[n]!=b[m] )  ans += solve( ma[b[m]]+1,n );if( flag==0 ) ans = -1;cout << ans << endl;
}

1380 D - Berserk And Fireball(思维,贪心)相关推荐

  1. F 魏迟燕的自走棋(思维+贪心+并查集维护联通块/左部点配对边<=2的匈牙利)

    https://ac.nowcoder.com/acm/contest/9984/F 参考:F 魏迟燕的自走棋(贪心+并查集) 将每个人看成一个点,武器的能力值抽象成边,这样就转化成图论的模型了. 然 ...

  2. CF思维联系--CodeForces -214C (拓扑排序+思维+贪心)

    ACM思维题训练集合 Furik and Rubik love playing computer games. Furik has recently found a new game that gre ...

  3. cf 1059e 思维 贪心 树

    参考博客:http://www.cnblogs.com/waldenlake/p/9750249.html 题意:将一棵n个点的带权有根树剖分成尽量少的链,使得 (1)链的两个端点是祖先关系 (2)链 ...

  4. Wannafly交流赛1 B 硬币[数学思维/贪心]

    链接:https://www.nowcoder.com/acm/contest/69/B 来源:牛客网 蜥蜴的生日快到了,就在这个月底! 今年,蜥蜴的快乐伙伴之一壁虎想要送好多个1元硬币来恶整蜥蜴. ...

  5. Codeforces 1093C (思维+贪心)

    题面 传送门 题目大意: 有一个长n(n为偶数)的序列a 已知a满足 \(a_1≤a_2≤⋯≤a_n\) 给出一个长度为\(\frac{n}{2}\) 的序列b,定义\(b_i=a_i+a_{n-i+ ...

  6. HDU多校7 - 6850 Game(博弈+思维+贪心)

    题目链接:点击查看 题目大意:二维平面上有 n 个点,现在两个人博弈,每个点至多遍历一次,先手从第一个点出发,随意选择一个点作为下一个点,后手再选择一个点,从现在开始需要满足的条件是,接下来选择点的距 ...

  7. CodeForces - 1339C Powered Addition(思维+贪心)

    题目链接:点击查看 题目大意:给出一个由 n 个数组成的数列 a,选择一个最小的 k ,代表可以进行 k 次操作,对于第 t 次操作可以选择任意个位置使得 a[ i ] = a[ i ] + 2^( ...

  8. 中石油训练赛 - 围栏翻新(思维+贪心+差分)

    题目描述 小明的破旧围栏又要喷涂油漆了.围栏由N个木板构成,每个宽度都为1cm,但是高度各不相同.他给自己买了一个喷漆机器,喷涂头恰好也是1cm宽. 小明的喷漆机器是直接喷射的,因此喷头的每一个部位必 ...

  9. CodeForces - 618D Hamiltonian Spanning Tree(思维+贪心)

    题目链接:点击查看 题目大意:首先给出n个点,n*(n-1)/2条边组成的无向图,边的权值为y,现在给出一棵连接n个点的树,树上的权值都是x,现在问如何在每个点只遍历一次的情况下走遍n个点,并使一路上 ...

  10. Codeforces Round #459 (Div. 2) C 思维,贪心 D 记忆化dp

    Codeforces Round #459 (Div. 2) C. The Monster 题意:定义正确的括号串,是能够全部匹配的左右括号串. 给出一个字符串,有 (.). ? 三种字符, ? 可以 ...

最新文章

  1. Linux服务器生产环境中的文件删除与替换
  2. SIFT(ASIFT) Matching with RANSAC
  3. 不会连PPPoE协议都不会配吧?
  4. iOS 9.0以后支持http协议
  5. 十招教你学会软件破解(转)
  6. NSURLSession的应用
  7. 接受拒绝算法_通过算法拒绝大学学位
  8. java中document解析jsp,JSP基于dom解析xml实例详解
  9. 阿里巴巴Linux开源镜像站 华为Linux开源镜像站 Linux宝塔面板
  10. 空间组网(卫星组网)概述
  11. kali 安装volatility_电子取证技术之实战Volatility工具
  12. python处理一些乱码的中文文本时decode('utf-8')报错的处理
  13. Android 开机Logo、铃声、震动修改方案
  14. 模拟赛 东风谷早苗
  15. 追星女孩彩虹屁情话土味情话合集100条
  16. 解决最新小马激活工具导致主页劫持问题
  17. micropython nodemcu 获取天气预报_NodeMCU获取并解析心知天气信息
  18. vue+echarts+springboot实现云词图
  19. 第二期腾讯AI加速器将面向全球招募AI创业者
  20. 都2020了,做Web前端还这么香么

热门文章

  1. 【PS】如何简单的处理带晒伤皮肤的婚纱照?红斑/脱皮/减淡红色
  2. 【寒江雪】Go实现Builder Pattern
  3. 原生js写简易别踩白块儿
  4. Parsed mapper file:项目启动不起来
  5. (SSM,JQUERY-EASYUI,MYSQL)快递物流系统
  6. 课程设计---快递管理系统(boostrap + servlet + jQuery + Redis + MySQL)
  7. 什么是光电耦合器?光耦有哪些类型
  8. 北邮通信博士万字长文,带你深入了解 4G/5G 区别!
  9. 无线网络共享有线计算机,win10怎么把有线网络变成无线_win10如何共享有线网络为无线热点...
  10. tibco往服务器发消息,教程:使用 TIBCO EMS 消息上下文属性 - BizTalk Server | Microsoft Docs...