Uva 12663 High bridge, low bridge 离散化
来源:互联网 发布:淘宝重复铺货处罚 编辑:程序博客网 时间:2024/06/05 11:29
题目
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=110383#problem/C
题目来源:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=110383#overview
简要题意:求给定高度集合中洪水淹没次数达到
k 次的高度的个数。给定涨潮和落潮的高度。
题解
这实质上就是求解覆盖的次数,每次覆盖是上次落潮位置+1到下次涨潮到达的位置。
可以利用map进行离散化,求前缀,最后利用二分直接求出某高度被覆盖的次数。
代码
#include <iostream>#include <cstdio>#include <cmath>#include <algorithm>#include <cstring>#include <stack>#include <queue>#include <string>#include <vector>#include <set>#include <map>#define fi first#define se secondusing namespace std;typedef long long LL;typedef pair<int,int> PII;// headconst int N = 1e5+5;int a[N];map<int, int> ma;int main() { int n, m, k, x, y, cas = 1; while (scanf("%d%d%d", &n, &m, &k) == 3) { for (int i = 0; i < n; i++) { scanf("%d", a+i); } int cur = 0; for (int i = 0; i < m; i++) { scanf("%d%d", &x, &y); ma[cur+1]++; ma[x+1]--; cur = y; } int sum = 0; for (auto it = ma.begin(); it != ma.end(); it++) { sum = it->se = it->se + sum; } int ans = 0; for (int i = 0; i < n; i++) { auto it = ma.upper_bound(a[i]); it--; if (it->se >= k) ans++; } printf("Case %d: %d\n", cas++, ans); ma.clear(); } return 0;}
0 0
- Uva 12663 High bridge, low bridge 离散化
- UVA 12663 High bridge, low bridge
- Bridge
- Bridge
- Bridge
- Bridge
- bridge
- bridge
- Bridge
- Bridge
- Bridge
- Bridge
- UVa 10037 - Bridge
- UVA 10037 - Bridge
- uva 10037 Bridge
- UVA 10037 - Bridge
- UVA 10037 - Bridge(贪心)
- uva 10037 - Bridge(贪心)
- 字符串截取题型
- Linux多命令协作:管道及重定向
- 感知哈希算法的opencv实现
- 快速存档表数据
- 编程语言Rubyの基础入门
- Uva 12663 High bridge, low bridge 离散化
- 第五章项目1——(3)三角形类雏形
- ps笔记01-软件界面介绍
- lightoj - 1064 - Throwing Dice - dp / 概率dp
- jQuery选择器
- osx下配置qt开发环境
- 1003
- HDP 2.4安装
- JSP proxool+mysql数据库连接池配置