P3586 POI2015 Logistyka
P3586 POI2015 LOG - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
先简单 hack 一下操作二和
运用P5815 CQOI2010 扑克牌的思想,我们可以将每轮操作二看成:
第一步:给
然后分解,考虑先进行
就成功把操作二转化为,能否操作
容易想到,每轮我们选择
考虑证明,设
显然
因此操作二和判断
因此原问题可以简化成:维护一个支持单点修改的序列,支持查询
思考查询内容的本质:小于等于
具体来说,
时间复杂度
bonus:操作二的另一种处理思路,最后得到的式子是一样的。
/*
* @Author: crab-in-the-northeast
* @Date: 2022-10-25 10:17:19
* @Last Modified by: crab-in-the-northeast
* @Last Modified time: 2022-10-25 18:00:46
*/
#include <bits/stdc++.h>
#define int long long
inline int read() {
int x = 0;
bool flag = true;
char ch = getchar();
while (!isdigit(ch)) {
if (ch == '-')
flag = false;
ch = getchar();
}
while (isdigit(ch)) {
x = (x << 1) + (x << 3) + ch - '0';
ch = getchar();
}
if(flag)
return x;
return ~(x - 1);
}
inline char rech() {
char ch = getchar();
while (!isalpha(ch))
ch = getchar();
return ch;
}
inline int lowbit(int x) {
return x & (-x);
}
const int maxn = (int)1e6 + 5;
const int maxm = (int)1e6 + 5;
int typ[maxm], op1[maxm], op2[maxm];
int ua[maxn];
struct fenwick {
int c[maxn], n;
inline void add(int x, int v) {
for (; x <= n; x += lowbit(x))
c[x] += v;
}
inline int get(int x) {
int ans = 0;
for (; x; x -= lowbit(x))
ans += c[x];
return ans;
}
} t1, t2;
int a[maxn];
int *en;
inline int lsh(int x) {
return std :: lower_bound(ua + 1, en, x) - ua;
}
signed main() {
int n = read(), m = read();
ua[1] = 0;
for (int i = 1; i <= m; ++i) {
char ch = rech();
typ[i] = (ch == 'U' ? 1 : 2);
op1[i] = read();
op2[i] = read();
ua[i + 1] = op2[i];
}
std :: sort(ua + 1, ua + m + 2);
en = std :: unique(ua + 1, ua + m + 2);
t1.n = t2.n = m + 1;
t1.add(lsh(0), n);
for (int i = 1; i <= m; ++i) {
if (typ[i] == 1) {
int x = op1[i], v = op2[i];
int lax = lsh(a[x]), lv = lsh(v);
t1.add(lax, -1);
t2.add(lax, -a[x]);
a[x] = v;
t1.add(lv, 1);
t2.add(lv, v);
} else {
int c = op1[i], s = op2[i], ls = lsh(s);
int f = t1.get(ls), g = t2.get(ls);
puts(f * s - g <= s * (n - c) ? "TAK" : "NIE");
}
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
2020-10-25 [CF1436A] Reorder