我们将所有苹果高度插入一个splay中

我们要找到不高于陶陶手的苹果数量,就插入一个陶陶的高度 + 1的节点作为 哨兵 ,将其splay到根,那么它左子树的大小就是所求

贴一个优美而不失简洁的splay

#include<bits/stdc++.h>
#define ls ch[u][0]
#define rs ch[u][1]
#define isr(u) (ch[fa[u]][1] == u)
const int maxn = 15;
inline int read(){int out = 0,flag = 1; char c = getchar();while(c < 48 || c > 57){if(c == '-'){flag = -1;c = getchar();} }while(c >= 48 && c <= 57){out = (out << 3) + (out << 1) + c - 48;c = getchar();}return out * flag;
}
int ch[maxn][2],fa[maxn],siz[maxn],val[maxn],cnt[maxn],n,Siz,rt;
void pup(int u){siz[u] = siz[ls] + cnt[u] + siz[rs];
}
void spin(int u){int s = isr(u),f = fa[u];fa[u] = fa[f];if(fa[f]){ch[fa[f]][isr(f)] = u;}ch[f][s] = ch[u][s ^ 1];if(ch[u][s ^ 1]){fa[ch[u][s ^ 1]] = f;}fa[f] = u;ch[u][s ^ 1] = f;pup(f);pup(u);
}
void splay(int u){for(;fa[u];spin(u))if(fa[fa[u]]){spin((isr(fa[u]) ^ isr(u)) ? u : fa[u]);}rt = u;
}
void ins(int &u,int v,int f){if(!u){val[u = ++Siz] = v;cnt[u] = siz[u] = 1;fa[u] = f;splay(u);}else if(val[u] > v){ins(ls,v,u);}else if(val[u] < v){ins(rs,v,u);}else{cnt[u]++;siz[u]++;splay(u);}
}
int main(){for(int i = 1;i <= 10;i++){ins(rt,read(),0);}ins(rt,read() + 31,0);printf("%d\n",siz[ch[rt][0]]);return 0;
}

洛谷P1046 陶陶摘苹果相关推荐

  1. 洛谷-2028 龙兄摘苹果

    题目描述 龙兄在淘淘摘苹果的那个果园里摘了n个完全互不相同的苹果,好客的园主为他提供了k个篮子,他想把苹果装在篮子里拎回家(由于龙兄的手是无限大的,所以你不必考虑他能不能同时拎这么多篮子).同时,他不 ...

  2. 洛谷——P2028 龙兄摘苹果

    一道比较简单的DP水题. 我们用dp[i][j]表示用i个不同的苹果填充j个篮子的方案总数.那么状态转移方程也就出来了.dp[i][j]=dp[i-1][j-1]+j*dp[i-1][j]. 这里的d ...

  3. 【洛谷P2028 龙兄摘苹果】动态规划

    分析 第二类striling数 考虑最后一个数到底是放在之前的任意一个集合内,还是自成一个集合 \[ F_{i\ j}=F_{i-1\ j-1}+j\times F_{i-1,j}\] AC代码 #i ...

  4. 信息学奥赛一本通 1103:陶陶摘苹果 |1930:【05NOIP普及组】陶陶摘苹果 | OpenJudge NOI 1.6 02 | 洛谷 P1046 [NOIP2005 普及组] 陶陶摘苹果

    [题目链接] ybt 1103:陶陶摘苹果 ybt 1930:[05NOIP普及组]陶陶摘苹果 OpenJudge NOI 1.6 02:陶陶摘苹果 洛谷 P1046 [NOIP2005 普及组] 陶 ...

  5. 洛谷——P1046 [NOIP2005 普及组] 陶陶摘苹果

    P1046 [NOIP2005 普及组] 陶陶摘苹果 题目描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 1010 个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个 3030 厘米高的板凳 ...

  6. 陶陶摘苹果(洛谷-P1046)

    题目描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试. 现在已知10 ...

  7. 洛谷P1046陶陶摘苹果题解--zhengjun

    题目描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 101010 个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个 303030 厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳 ...

  8. 数组——洛谷#P1046 陶陶摘苹果(Python实现)

    题目描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试. 现在已知10 ...

  9. 【洛谷 P1046】[NOIP2005 普及组] 陶陶摘苹果 题解(比较)

    [NOIP2005 普及组] 陶陶摘苹果 题目描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10 10 10 个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个 30 30 30 厘米高的 ...

最新文章

  1. html表格编辑器退出编辑状态,html编辑器的使用方法
  2. volatile 的内存语义
  3. 查看dev下设备名的含义
  4. go to ifm as frequently as possible
  5. 室外建筑表现3Dmax和vray常用材质参数设置
  6. MySQL的环境变量配置详细步骤
  7. 取得程序运行的目录[360度]
  8. php 分页 报表 框架,zentaoPHP框架的分页解决方案
  9. 暴风影音CEO冯鑫的人生解读
  10. ext2文件系统初步
  11. 【FPGA频率计】基于FPGA的高精度数字频率计的详细设计
  12. cdr多页面排版_cdr排版实例图文教程,教你CorelDRAW杂志内页排版方法
  13. java每五分钟执行_java关于Timer schedule执行定时任务 1、在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等...
  14. CRX文件转.O文件(.d文件转换成.o文件)
  15. 测试用例设计——微信发朋友圈(详细)
  16. idea无法正常显示配置文件图标
  17. 树莓派基础实验24:超声波测距传感器实验
  18. 004-如何用PS把彩色图片设置成黑白图片?
  19. ARM嵌入式主板之路
  20. gta5在线模式服务器暂停使用,R星官网放出《GTAOL》停服公告,12月16日正式关闭线上服务器!...

热门文章

  1. Android通过AIDL实现接听电话、挂断电话操作 | 拨打电话
  2. 北京大学2021年优秀中学生寒假学堂报名通知
  3. 研磨时光的文房四宝之砚台鉴赏:混沌初开砚,匠心所在
  4. FT中文网:骂百度的人为何那么多
  5. 重新认识java(一) ---- 万物皆对象
  6. linux下解压dmp文件怎么打开,DMP 文件扩展名: 它是什么以及如何打开它?
  7. MongoDB学习笔记(3)- Mongo Shell 常用查询命令
  8. 身份证号本地校验工具类IDCardValidate
  9. 汉字文章转换拼音的好工具 pinyinConvert.v20120709
  10. 前向传播、反向传播、更新梯度