题目链接:[JLOI2011]不等式组


对a=0的特殊记录。

然后分别对a>0和a<0开两颗权值线段树记录一下即可。


AC代码:

#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include<bits/stdc++.h>
//#define int long long
using namespace std;
const int N=1e5+10,M=N*40;
int n,res,cnt,vis[N];   char op[10];
struct node{int a,b,c;}t[N];
struct seg{int rt,sum[M],lc[M],rc[M],cnt;void change(int &p,int l,int r,int x,int v){if(!p) p=++cnt;if(l==r){sum[p]+=v;  return ;}int mid=l+r>>1;if(x<=mid)  change(lc[p],l,mid,x,v);else change(rc[p],mid+1,r,x,v);sum[p]=sum[lc[p]]+sum[rc[p]];}int ask(int p,int l,int r,int ql,int qr){if(!p) return 0;if(l==ql&&r==qr)   return sum[p];int mid=l+r>>1;if(qr<=mid)    return ask(lc[p],l,mid,ql,qr);else if(ql>mid)    return ask(rc[p],mid+1,r,ql,qr);else return ask(lc[p],l,mid,ql,mid)+ask(rc[p],mid+1,r,mid+1,qr);}void change(int x,int v){change(rt,-1e9,1e9,x,v);}int ask(int l,int r){return ask(rt,-1e9,1e9,l,r);}
}s1,s2;
signed main(){cin>>n;for(int i=1,k;i<=n;i++){scanf("%s",op);if(op[0]=='A'){cnt++,scanf("%d %d %d",&t[cnt].a,&t[cnt].b,&t[cnt].c);if(t[cnt].a==0){if(t[cnt].b>t[cnt].c) res++; continue;}if(t[cnt].a>0) s1.change(floor((t[cnt].c*1.0-t[cnt].b)/t[cnt].a)+1,1);else s2.change(ceil((t[cnt].c*1.0-t[cnt].b)/t[cnt].a)-1,1);}else if(op[0]=='D'){scanf("%d",&k);   if(vis[k]) continue; vis[k]=1;if(t[k].a==0){if(t[k].b>t[k].c) res--;  continue;}if(t[k].a>0)   s1.change(floor((t[k].c*1.0-t[k].b)/t[k].a)+1,-1);else s2.change(ceil((t[k].c*1.0-t[k].b)/t[k].a)-1,-1);}else{scanf("%d",&k);printf("%d\n",res+s1.ask(-1e9,k)+s2.ask(k,1e9));}}return 0;
}

[JLOI2011]不等式组相关推荐

  1. Bzoj2762: [JLOI2011]不等式组

    题解:很明显 要对a分类考虑 对于a的符号建两颗平衡树 对于每次查询前驱节点和后继结点 然后维护size即可 /******************************************** ...

  2. 【做题记录】 [JLOI2011]不等式组

    P5482 [JLOI2011]不等式组 超烦人的细节题!(本人调了两天 QAQ ) 这里介绍一种只用到一只树状数组的写法(离线). 树状数组的下标是:所有可能出现的数据进行离散化之后的值. 其含义为 ...

  3. BZOJ2801/洛谷P3544 [POI2012]BEZ-Minimalist Security(题目性质发掘+图的遍历+解不等式组)...

    题面戳这 化下题面给的式子: \(z_u+z_v=p_u+p_v-b_{u,v}\) 发现\(p_u+p_v-b_{u,v}\)是确定的,所以只要确定了一个点\(i\)的权值\(x_i\),和它在同一 ...

  4. 不等式解集怎么取_七年级下学期《8.2不等式及不等式组的解集》2020年高频易错题集...

    参考答案及试题解析 一.选择题(共10小题) [点评]本题考查了不等式的解集,解集本题的关键是明确解集的取法"同大取大,同小取小,大小小大,取中间". [点评]本题考查了不等式组的 ...

  5. 不等式解集怎么取_(√)口诀巧取不等式组的解集

    第 1 页 共 4 页 三一文库( www.31doc.com ) / 教学资源 / 教育教学方案 [口诀巧取不等式组的解集] *口诀巧取不等式组的解集 在教学北师大版八年级下册一元一次不等式(组)的 ...

  6. python求解不等式组可行域_二元一次不等式(组)和可行域

    x y   (画成虚线) . 取原点( 0 , 0 ) ,代入 x +4y-4, ∵ 0+4 × 0-4=-4 < 0, ∴原点在 4 4 x y   表示的平面区域内,不等式 4 4 ...

  7. 不等式解集怎么取_口诀巧取不等式组的解集

    口诀巧取不等式组的解集 口诀巧取不等式组的解集 在教学北师大版八年级下册一元一次不等式(组)的时候, 学生在学习不等式组的解法和解集后,我发现学生在求解这 个不等式组的解集时相当费时间,而且也容易出错 ...

  8. 程序员数学(9)--不等式与不等式组

    点此查看全部文字教程.视频教程.源代码 本文目录 1. 基本概念 2. 不等式的性质 3. 一元一次不等式 4. 一元一次不等式组 1. 基本概念 不等式:用>或<表示大小关系的式子,叫做 ...

  9. 同大取大同小取小口诀图解_口诀巧取不等式组的解集

    口诀巧取不等式组的解集 在教学北师大版八年级下册一元一次不等式(组)的时候,学生在学习不等式组的解法和解集后,我发现学生在求解这个不等式组的解集时相当费时间,而且也容易出错.因为要求出这个不等组的解集 ...

最新文章

  1. 2021-06-082021年春季学期-信号与系统-第十五次作业-第四小题参考答案
  2. 01_MUI之Boilerplate中:HTML5示例,动态组件,自定义字体示例,自定义字体示例,图标字体示例
  3. js浏览器对象模型(BOM)
  4. [JavaWeb-JavaScript]JavaScript与html结合方式
  5. 退出出库复核是什么意思_细思极恐!为什么是黄晓明退出而不是李菲儿?因为女方是芒果艺人...
  6. matlab绘制庞加莱截面_如何用mathematica或Matlab画弹性摆的庞加莱截面
  7. 3.5 Zend_Db_Table_Rowset
  8. object-C 与 C++的比较
  9. LaTeX 修改中文摘要名字
  10. 抹机王怎么一键新机_抹机王助手_手机数据修改_抹机王app下载_易玩网
  11. PDF文件怎么转换成CAD格式?教你几种转换方法
  12. 如何缩小png图片大小kb?如何让png图片变小?
  13. Unity 5.3制作VR项目
  14. 小孩用的台灯什么样的品牌好?2023儿童台灯灯具品牌排行榜
  15. 汽修第5天 升降玻璃的维修
  16. 一度智信在拼多多上开店靠谱吗?
  17. ice通信原理_通信原理_知到网课答案
  18. 让你读过的书都变成钱!
  19. 一等公民 二等公民_使您的产品成为一流的公民
  20. 【九天教您南方cass 9.1】 04 编码法Ⅱ绘制地形图

热门文章

  1. java计算机毕业设计企业门户网站源码+系统+数据库+lw文档+mybatis+运行部署
  2. 使用selenuim自动注册protonmail邮箱
  3. 安装Ubuntu15.10和编译RT补丁
  4. beeline软件_Beeline软件
  5. linux traceroute命令参数及用法详解--linux跟踪路由命令
  6. 获取浏览器窗口大小以及位置
  7. RabbitMQ下载安装(windows版本+linux版本合集)
  8. 彻底理解粘性定位(position:sticky)
  9. netlink怎么读_如何使用VB访问NETLINK并读写S7300 PLC数据
  10. 《蜗居》告诉你我们为何要买房——海萍苏淳的故事