SOL:我们可以证明,设Sum[x]代表1到X编号的矮人被sum[x]个精灵挑为对手,则Sum[x]-x min的位置和其后一个是没有任何关系的(没有精灵会从这个矮人走向下一个矮人)。

那么我们就把其拆成了单链。贪心就好。

#pragma GCC optimize("O2")
#include<bits/stdc++.h>
#define sight(c) ('0'<=c&&c<='9')
#define N 500031
#define eho(x) for(int j=head[x];j;j=net[j])
inline void read(int &x){static char c;for (c=getchar();!sight(c);c=getchar());for (x=0;sight(c);c=getchar())x=x*10+c-48;
}
using namespace std;
void write(int x) {if (x<10) {putchar('0'+x);return;} write(x/10); putchar('0'+x%10);}
inline void writeln(int x) {if (x<0) putchar('-'),x*=-1; write(x); putchar('\n');}
int a[N],c[N],d[N],g[N],n,t,ans,mn,head[N],net[N],fall[N],tot,sum,k;
inline void add(int x,int y) {fall[++tot]=y; net[tot]=head[x];head[x]=tot;}
bool b[N];
set<int> S;
set<int> ::iterator it;
int main () {
//  freopen("b.in","r",stdin);read(n); mn=1e9;for (int i=1;i<=n;i++) read(a[i]),g[a[i]]++,add(a[i],i);for (int i=1;i<=n;i++) read(c[i]);for (int i=1;i<=n;i++) read(d[i]);for (int i=1;i<=n;i++) { sum=sum+g[i]; if (mn>sum-i) mn=sum-i,k=i;}for (int i=1;i<=n;i++) {if (++k>n) k=1;eho(k) S.insert(d[fall[j]]);it=S.upper_bound(c[k]);if (it==S.end()) S.erase(*S.begin());else ans++,S.erase(*it);}writeln(ans);
}

转载于:https://www.cnblogs.com/rrsb/p/8215157.html

决斗[雅礼集训 2017 Day10]相关推荐

  1. LOJ#6048. 「雅礼集训 2017 Day10」数列(线段树)

    题面 传送门 题解 我的做法似乎非常复杂啊-- 首先最长上升子序列长度就等于把它反过来再接到前面求一遍,比方说把\(2134\)变成\(43122134\),实际上变化之后的求一个最长上升子序列和方案 ...

  2. 「雅礼集训 2017 Day10」拍苍蝇

    传送门 Description 有一天,小 A 的母亲对他家里的卫生状况非常不满意,他的房间里有非常多的苍蝇.在母亲的威逼利诱下,小 A 拿起了苍蝇拍去消灭家里的苍蝇.然而,小 A 以前从来没有亲手消 ...

  3. 数据结构二之线段树Ⅱ——KiKi‘s K-Number,ball,The Child and Sequence,「雅礼集训 2017 Day1」市场,Atlantis

    值域线段树+势能线段树+扫描线 KiKi's K-Number ball The Child and Sequence 「雅礼集训 2017 Day1」市场 Atlantis KiKi's K-Num ...

  4. [LOJ 6042]「雅礼集训 2017 Day7」跳蚤王国的宰相(树的重心+贪心)

    [LOJ 6042]「雅礼集训 2017 Day7」跳蚤王国的宰相 description solution 一个到所有节点距离和最小的节点 ⇔\Leftrightarrow⇔ 树的重心(满足最重的儿 ...

  5. #6029. 「雅礼集训 2017 Day1」市场(势能,区间除)

    #6029. 「雅礼集训 2017 Day1」市场 用线段树维护数列,区间上维护最大最小值,区间和还有标记,修改时,区间加直接做,而区间除时,递归到线段树上某一区间,如果这一操作等价于区间加(也就是最 ...

  6. #6034. 「雅礼集训 2017 Day2」线段游戏 李超树

    #6034. 「雅礼集训 2017 Day2」线段游戏 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:Special Judge 上传者: 匿名 提交提交记录统 ...

  7. loj #6046. 「雅礼集训 2017 Day8」爷

    #6046. 「雅礼集训 2017 Day8」爷 题目描述 如果你对山口丁和 G&P 没有兴趣,可以无视题目背景,因为你估计看不懂 -- 在第 63 回战车道全国高中生大赛中,军神西住美穗带领 ...

  8. LibreOJ 6514. 「雅礼集训 2018 Day10」文明【虚树+LCA】

    6514. 「雅礼集训 2018 Day10」文明 [题目描述] 传送门 [题解] 考虑笨蛋的写法,可以用LCA求出1号和其他点的中点,然后DFS搜索Size大小即可,但是,复杂度显然要炸,但是我们会 ...

  9. LOJ#6044. 「雅礼集训 2017 Day8」共(Prufer序列)

    题面 传送门 题解 答案就是\(S(n-k,k)\times {n-1\choose k-1}\) 其中\(S(n,m)\)表示左边\(n\)个点,右边\(m\)个点的完全二分图的生成树个数,它的值为 ...

最新文章

  1. 基于点线特征避免单目视觉SLAM的退化
  2. 退出python命令行-退出python命令
  3. Duilib vlc c++ 字符编码
  4. [云炬创业基础笔记]第二章创业者测试20
  5. 学习Spring Boot:(六) 集成Swagger2
  6. b树c语言,B树——思路、及C语言代码的实现
  7. HDU4706 Children's Day
  8. 访问tomcat7 java.lang.ClassCastException: org.apache.jasper.el.ELContextImpl
  9. Jenkins持久化集成使用
  10. 高级程序员不写代码?
  11. 安装用友U8的常见错误
  12. 【网络】把路由器用作交换机的方案
  13. 逆向工程实验Lab7
  14. 收集的一些google搜索引擎技巧
  15. Navicat有什么用?如何安装?【C++培训】
  16. 当代偷车贼分两种,剪电线的和用智能设备的
  17. EBS HRMS数据表
  18. R以逻辑回归为例介绍制作列线图(nomogram)的过程
  19. 我对软件分层设计的思考
  20. Java项目-博客管理系统介绍

热门文章

  1. wordpress-技术博客主题推荐
  2. 在教育培训行业如何获得精准名单?大数据精准获客
  3. arm-linux qt交叉编译,qt arm交叉编译命令
  4. mpg如何转成mp4格式?四种简单快捷的方法分享
  5. 设计模式解读之一: 策略模式——鸭子游戏
  6. 快播王欣即将出狱 还有机会吗?
  7. 如何使用特征码找“武林外传”Call地址
  8. Error:(226, 38) java: 找不到符号。。。程序无错的解决方法
  9. 走进Linux的世界,看这篇文章就够了
  10. #systemverilog# “类”翱翔在systemverilog的天空(2)常用类型举例