【题解】[USACO17JAN]Balanced Photo G
题目链接:https://www.luogu.com.cn/problem/P3608
方法一
用树状数组求逆序对先后扫两遍,一次从前往后,一次从后往前,算出每头奶牛左右两边比她高的数量。
最后统计一下。
#include <bits/stdc++.h>
using namespace std;
int sum[500010], l[100010], r[100010];
int n, m, u, v, a[500010], t[500010];
int ans;
inline int read()
{
int x = 0;
int f = 1; char ch = getchar();
while (ch < '0' || ch > '9') {if (ch == '-') f = -1; ch = getchar();}
while (ch >= '0' && ch <= '9') {x = x * 10 + ch - '0'; ch = getchar();}
return x * f;
}
int lowbit(int x)
{
return x & (-x);
}
void add(int i, int v)
{
ㅤㅤㅤㅤ while (i <= n)
{
sum[i] += v;
i += lowbit(i);
}
}
int query(int i)
{
int ans = 0;
ㅤㅤㅤㅤ while (i)
{
ans += sum[i];
i -= lowbit(i);
}
return ans;
}
int main()
{
n = read();
for (int i = 1; i <= n; i++)
a[i] = read(), t[i] = a[i];
ㅤㅤㅤㅤ sort(t + 1, t + 1 + n);
m = unique(t + 1, t + 1 + n) - t - 1;
for (int i = 1; i <= n; i++)
a[i] = lower_bound(t + 1, t + 1 + m, a[i]) - t;
ㅤㅤㅤㅤ for (int i = 1; i <= n; i++)
{
add(a[i], 1);
l[i] = i - query(a[i]);
}
memset(sum, 0, sizeof sum);
ㅤㅤㅤㅤ for (int i = n; i >= 1; i--)
{
add(a[i], 1);
r[i] = n - i + 1 - query(a[i]);
}
ㅤㅤㅤㅤ for (int i = 1; i <= n; i++)
if (max(l[i], r[i]) > 2 * min(l[i], r[i]))
ans++;
printf("%d\n", ans);
return 0;
}
【题解】[USACO17JAN]Balanced Photo G的更多相关文章
- 洛谷P3608 [USACO17JAN]Balanced Photo平衡的照片
P3608 [USACO17JAN]Balanced Photo平衡的照片 题目描述 Farmer John is arranging his NN cows in a line to take a ...
- 【luogu P3608 [USACO17JAN]Balanced Photo平衡的照片】 题解
题目链接:https://www.luogu.org/problemnew/show/P3608 乍一看很容易想到O(N^2)的暴力. 对于每个H[i]从i~i-1找L[i]再从i+1~n找R[i], ...
- [luoguP3608] [USACO17JAN]Balanced Photo平衡的照片(树状数组 + 离散化)
传送门 树状数组裸题 #include <cstdio> #include <cstring> #include <iostream> #include <a ...
- [USACO17JAN]Balanced Photo平衡的照片 (树状数组)
题目链接 Solution 先离散化,然后开一个大小为 \(100000\) 的树状数组记录前面出现过的数. 然后查询 \((h[i],n]\) 即可. 还要前后各做一遍. Code #include ...
- 洛谷 P1360 [USACO07MAR]Gold Balanced Lineup G (前缀和+思维)
P1360 [USACO07MAR]Gold Balanced Lineup G (前缀和+思维) 前言 题目链接 本题作为一道Stl练习题来说,还是非常不错的,解决的思维比较巧妙 算是一道不错的题 ...
- ACM ICPC 2018 青岛赛区 部分金牌题题解(K,L,I,G)
目录: K Airdrop I Soldier Game L Sub-cycle Graph G Repair the Artwork ———————————————————— ps:楼主脑残有点严 ...
- bzoj4759 [Usaco2017 Jan]Balanced Photo
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4759 [题解] 排序,从大到小插入,树状数组统计. # include <vector ...
- P1360 [USACO07MAR]Gold Balanced Lineup G
\(\mathbf{P1360}\) 题解 思路 设\(sum[t][i]\)为截至第t天第i项能力的提升总次数. 由题意可知一个时期为均衡时期\([t_1,t_2]\),当且仅当 \(\forall ...
- 洛谷 P2880 [USACO07JAN]Balanced Lineup G (ST表模板)
题意:给你一组数,询问\(q\)次,问所给区间内的最大值和最小值的差. 题解:经典RMQ问题,用st表维护两个数组分别记录最大值和最小值然后直接查询输出就好了 代码: int n,q; int a[N ...
随机推荐
- 一文彻底搞懂BERT
一.什么是BERT? 没错下图中的小黄人就是文本的主角Bert ,而红色的小红人你应该也听过,他就是ELMo.2018年发布的BERT 是一个 NLP 任务的里程碑式模型,它的发布势必会带来一个 NL ...
- 非阻塞赋值(Non-blocking Assignment)是个伪需求(2)
https://mp.weixin.qq.com/s/5NWvdK3T2X4dtyRqtNrBbg 13hope: 个人理解,Verilog本身只是“建模”语言.具体到阻塞/非阻塞,只规定了两种赋 ...
- Rocket - decode - Inst Decode
https://mp.weixin.qq.com/s/WvepB3yAzjMbQalO3Z82pQ 介绍RocketChip Instruction解码逻辑的实现. 1. RISC-V R ...
- jchdl - RTL实例 - AndReg
https://mp.weixin.qq.com/s/p4-379tBRYKCYBk8AZoT8A 输入两组线相与,结果输出到寄存器. 参考链接 https://github.com/wjcd ...
- Java实现 LeetCode 784 字母大小写全排列(DFS)
784. 字母大小写全排列 给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串.返回所有可能得到的字符串集合. 示例: 输入: S = "a1b2" ...
- Java实现 LeetCode 43 字符串相乘
43. 字符串相乘 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = "2& ...
- java中Dateformat类的详细使用(详解)
DateFormat其本身是一个抽象类,SimpleDateFormat 类是DateFormat类的子类,一般情况下来讲DateFormat类很少会直接使用,而都使用SimpleDateFormat ...
- 基于ABP做一个简单的系统——实战篇:1.项目准备
现阶段需要做一个小项目,体量很小,业务功能比较简单,就想到用最熟悉的.net来做,更何况现在.net core已经跨平台,也可以在linux服务器上部署.所以决定用.net core 3.1+mysq ...
- 温故知新-java的I/O模型-BIO&NIO&AIO
文章目录 摘要 传统的BIO编程 伪异步I/O编程 NIO编程 AIO编程 几种IO模型的对比 netty 参考 你的鼓励也是我创作的动力 Posted by 微博@Yangsc_o 原创文章,版权声 ...
- 性能调优必备利器之 JMH
if 快还是 switch 快?HashMap 的初始化 size 要不要指定,指定之后性能可以提高多少?各种序列化方法哪个耗时更短? 无论出自何种原因需要进行性能评估,量化指标总是必要的. 在大部分 ...