[luoguP1110] [ZJOI2007]报表统计(set暴力)
2018-01-16 20:13
218 查看
两个multiset
一个记录相邻元素的差,一个放所有的元素
2个数组
val[i]记录第i个的值,last[i]记录第i个最后插入的数的值
然后乱搞
#include <set> #include <cstdio> #include <iostream> #define N 1001000 #define abs(x) ((x) < 0 ? -(x) : (x)) #define min(x, y) ((x) < (y) ? (x) : (y)) #define max(x, y) ((x) > (y) ? (x) : (y)) using namespace std; int n, m, ans = 1e9; int val , last ; multiset <int> s, ss; multiset <int> :: iterator it; inline int read() { int x = 0, f = 1; char ch = getchar(); for(; !isdigit(ch); ch = getchar()) if(ch == '-') f = -1; for(; isdigit(ch); ch = getchar()) x = (x << 1) + (x << 3) + ch - '0'; return x * f; } inline void set_insert(int x) { s.insert(x); it = s.lower_bound(x); if(it != s.begin()) it--, ans = min(ans, abs(*it - x)), it++; if((++it) != s.end()) ans = min(ans, abs(*it - x)); } inline void insert(int x, int y) { if(x != n) ss.erase(ss.lower_bound(abs(last[x] - val[x + 1]))); ss.insert(abs(last[x] - y)); if(x != n) ss.insert(abs(val[x + 1] - y)); last[x] = y; set_insert(y); } int main() { int i, x, y; char s[21]; n = read(); m = read(); for(i = 1; i <= n; i++) { last[i] = val[i] = read(); set_insert(val[i]); if(i > 1) ss.insert(abs(val[i] - val[i - 1])); } for(i = 1; i <= m; i++) { scanf("%s", s); if(s[4] == 'R') { x = read(); y = read(); insert(x, y); } if(s[4] == 'G') printf("%d\n", *ss.begin()); if(s[4] == 'S') printf("%d\n", ans); } return 0; }
相关文章推荐
- 洛谷.1110.[ZJOI2007]报表统计(Multiset)
- 洛谷.1110.[ZJOI2007]报表统计(Multiset Heap)
- 【BZOJ】1058: [ZJOI2007]报表统计(splay+set)
- BZOJ1058 洛谷 1110 [ZJOI2007]报表统计
- 洛谷.1110.[ZJOI2007]报表统计(Splay Heap)
- bzoj 1058 [ZJOI2007]报表统计(set)
- BZOJ 1058: [ZJOI2007]报表统计(set)
- bzoj 1058: [ZJOI2007]报表统计(set+multiset)
- 【LuoguP1169 bzoj1057】[ZJOI2007]棋盘制作
- [bzoj1058][ZJOI2007]报表统计
- 洛谷P1110 [ZJOI2007]报表统计(堆,multiset)
- LuoguP1131[ZJOI2007] 时态同步 解题报告【树形DP(?)】
- [ZJOI2007]报表统计
- 【set】【multiset】bzoj1058 [ZJOI2007]报表统计
- [ZJOI2007]报表统计 洛谷1110 splay+堆
- BZOJ1058:[ZJOI2007]报表统计——题解
- bzoj1058【zjoi2007】报表统计
- ZJOI 2007 报表统计(multiset)
- bzoj 1058: [ZJOI2007]报表统计(splay+线段树)
- 【BZOJ 1058】 [ZJOI2007]报表统计