题意:

  一个剧一共有n季,每季有ai集。问有多少对x,y(x≠y),使得第x季有第y集且第y季有第x集。

题解:

  用set维护第i季的“寿命”,用树状数组维护第i季前有多少季还有第i集。

#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5+10;
typedef long long ll;
int n;
int tmp;
ll ans;
int tree[maxn];
set<pair<int, int> > st;
void add(int x, int v) {while(x <= n) {tree[x] += v;x += x&(-x);}
}
int sum(int x) {int res = 0;while(x > 0) {res += tree[x];x -= x&(-x);}return res;
}
int main() {scanf("%d", &n);for(int i = 1; i <= n; i++) {scanf("%d", &tmp);ans += sum(min(i-1, tmp));while(!st.empty() && st.begin()->first==i) {add(st.begin()->second, -1);st.erase(st.begin());}if(tmp > i) {add(i, 1);st.insert(make_pair(tmp, i));}}printf("%lld\n", ans);
}

View Code

转载于:https://www.cnblogs.com/Pneuis/p/8727723.html

Codeforces - 961E Tufurama相关推荐

  1. CF 961E Tufurama

    JYZdalao上课讲了这道题,觉得很好可做 其实也是一道理解了就水爆了的题目 把题意抽象化,可以发现题目求的满足 i<j a[i]>=j a[j]>=i 的i,j对数.由于i,j顺 ...

  2. 【树状数组】CF961E Tufurama

    挺巧妙的数据结构题(不过据说这是一种套路? E. Tufurama One day Polycarp decided to rewatch his absolute favourite episode ...

  3. Codeforces 题目合集+分类+代码 【Updating...】【361 in total】

    961A - Tetris                                                模拟                                      ...

  4. java switch 条件_Java ——if条件语句 switch语句

    本节重点思维导图 if条件语句 //如果条件表达式成立,执行语句块 if(条件表达式){ //-语句块 } 如果语句块只有一条语句,大括号可以省略,否则不能省略. 建议,不管有几条语句,都不要省略大括 ...

  5. Educational Codeforces Round 41 E. Tufurama (961E)

    [题解] 第一眼看题飞快地想到一种做法,然后假掉了. 这道题其实是主席树的模板题来着.但是也有别的水法. 我们可以发现每个位置的查询区间是[1,min(a[i],i-1)],所以我们可以把查询区间按照 ...

  6. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

  7. 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)

    题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...

  8. 【codeforces 812C】Sagheer and Nubian Market

    [题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...

  9. CodeForces 获得数据

    针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...

最新文章

  1. Secure CRT 自动记录日志和时间戳功能配置
  2. 比较正宗的验证邮箱的正则表达式js代码详解
  3. spring boot 异常汇总
  4. Markdown 语法简介
  5. GeneDock协助诊断基层地区的听力障碍儿童 #科技有温度#
  6. oracle biee需要买吗,oracle BIEE 和 IBM cognos的优点和缺点
  7. qdtuling.xyz 7.10
  8. 坐标系投影转换CGCS2000坐标系(国家2000坐标系)等高线地形图
  9. 阿里面试官没想到一个ArrayList,我都能跟他扯半小时
  10. 数据分析统计知识—假设检验
  11. 笔记本电脑怎么录制视频
  12. idea groovy自定义自动生成实体 dao/mapper service等,支持表注释 字段注释
  13. 101. 熟悉 Java 并发吗,谈谈对 JUC 线程池 ThreadPoolExecutor 的认识吧
  14. 【python】详解pandas库的pd.merge_ordered与pd.merge_asof
  15. windows如何打开.key keynote文件
  16. 30行Python代码实现蚂蚁森林自动偷能量
  17. 安庆师范大学计算机学院书记,安庆师范大学计算机与信息学院导师教师师资介绍简介-陈春生...
  18. Visio2016中图标的查找
  19. opencv android 透视,OpenCV图像几何变换之透视变换
  20. 【荐读】基于文本数据的消费者洞察

热门文章

  1. Go gin框架:helloworld
  2. Python3 字符串拼接
  3. session共享怎么做的(分布式如何实现session共享)?
  4. 数据结构--二叉树、满二叉树、完全二叉树
  5. springboot中DataSource数据源实例产生时机及所需环境
  6. access窗体中再制作查询窗体_Access
  7. 【windows】Qt打开资源管理器并选中指定文件
  8. maven引用公共包_Maven项目怎样引用其他项目/或者jar包-阿里云开发者社区
  9. c/c++ / printf 实现
  10. 寄存器、cache、内存、硬盘之间的千丝万缕