【BZOJ4397】[Usaco2015 dec]Breed Counting【前缀和】【或莫队】【或线段树】【或可持久化线段树】
来源:互联网 发布:三菱plc编程入门pdf 编辑:程序博客网 时间:2024/05/24 07:09
【题目链接】
数据结构学多了,看到题解发现3个前缀和就搞定了。弱智+2
另外也可以线段树,也可以3个主席树。。。
莫队:
/* Telekinetic Forest Guard */#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 100005, maxsqrtn = 316;int n, m, num[maxn], cnt[5];struct data {int l, r, id;bool operator < (const data &x) const {int a = l / maxsqrtn, b = x.l / maxsqrtn;return a != b ? a < b : r < x.r;}} que[maxn], ans[maxn];inline int iread() {int f = 1, x = 0; char ch = getchar();for(; ch < '0' || ch > '9'; ch = getchar()) f = ch == '-' ? -1 : 1;for(; ch >= '0' && ch <= '9'; ch = getchar()) x = x * 10 + ch - '0';return f * x;}int main() {n = iread(); m = iread();for(int i = 1; i <= n; i++) num[i] = iread();for(int i = 1; i <= m; i++) que[i].l = iread(), que[i].r = iread(), que[i].id = i;sort(que + 1, que + 1 + m);int l = 1, r = 0;for(int i = 1; i <= m; i++) {while(que[i].l < l) cnt[num[--l]]++;while(r < que[i].r) cnt[num[++r]]++;while(l < que[i].l) cnt[num[l++]]--;while(que[i].r < r) cnt[num[r--]]--;ans[que[i].id] = (data){cnt[1], cnt[2], cnt[3]};}for(int i = 1; i <= m; i++) printf("%d %d %d\n", ans[i].l, ans[i].r, ans[i].id);return 0;}
0 0
- 【BZOJ4397】[Usaco2015 dec]Breed Counting【前缀和】【或莫队】【或线段树】【或可持久化线段树】
- bzoj 4397: [Usaco2015 dec]Breed Counting 前缀和/线段树
- bzoj4397[Usaco2015 dec]Breed Counting 前缀和
- bzoj4397【Usaco2015 Dec】Breed Counting
- bzoj4397: [Usaco2015 dec]Breed Counting
- [BZOJ4397]Breed Counting-前缀和乱搞
- 【bzoj4571: [Scoi2016]美味】区间异或和最大 ,可持久化线段树(主席树)
- V-Parenthesis 前缀+ZKW线段树或RMQ
- BZOJ 4397: [Usaco2015 dec]Breed Counting|暴力
- bzoj 4397: [Usaco2015 dec]Breed Counting 乱搞
- Codeforces 650D. Zip-line (动态LIS) (可持久化线段树 或 离线+树状数组)
- Hdu-5438 Boring counting(可持久化线段树)
- 【BZOJ3261】最大异或和【可持久化Trie树】
- bzoj3261 最大异或和(可持久化字典树)
- BZOJ3261最大异或和(可持久化字典树)
- bzoj3261 最大异或和【可持久化trie树】
- bzoj2957分块或线段树
- 可持久化线段树
- WIN7输入法不显示问题解决
- 数据传输压缩,节约带宽
- windows查看端口号
- 求助贴
- 高斯消元模板啦啦啦..
- 【BZOJ4397】[Usaco2015 dec]Breed Counting【前缀和】【或莫队】【或线段树】【或可持久化线段树】
- uva 11584 划分成回文串
- 理解JBPM及流程
- Java中字符串和日志之间的相互转换
- Bootstrap和360浏览器兼容问题
- 一个完整的工作流管理系统成部分
- XML编程—CRUD
- 在AndroidStudio中使用V8包中的RenderScript
- 【运动控制】运动控制卡与PLC的区别