洛谷P1046 陶陶摘苹果
我们将所有苹果高度插入一个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 陶陶摘苹果相关推荐
- 洛谷-2028 龙兄摘苹果
题目描述 龙兄在淘淘摘苹果的那个果园里摘了n个完全互不相同的苹果,好客的园主为他提供了k个篮子,他想把苹果装在篮子里拎回家(由于龙兄的手是无限大的,所以你不必考虑他能不能同时拎这么多篮子).同时,他不 ...
- 洛谷——P2028 龙兄摘苹果
一道比较简单的DP水题. 我们用dp[i][j]表示用i个不同的苹果填充j个篮子的方案总数.那么状态转移方程也就出来了.dp[i][j]=dp[i-1][j-1]+j*dp[i-1][j]. 这里的d ...
- 【洛谷P2028 龙兄摘苹果】动态规划
分析 第二类striling数 考虑最后一个数到底是放在之前的任意一个集合内,还是自成一个集合 \[ F_{i\ j}=F_{i-1\ j-1}+j\times F_{i-1,j}\] AC代码 #i ...
- 信息学奥赛一本通 1103:陶陶摘苹果 |1930:【05NOIP普及组】陶陶摘苹果 | OpenJudge NOI 1.6 02 | 洛谷 P1046 [NOIP2005 普及组] 陶陶摘苹果
[题目链接] ybt 1103:陶陶摘苹果 ybt 1930:[05NOIP普及组]陶陶摘苹果 OpenJudge NOI 1.6 02:陶陶摘苹果 洛谷 P1046 [NOIP2005 普及组] 陶 ...
- 洛谷——P1046 [NOIP2005 普及组] 陶陶摘苹果
P1046 [NOIP2005 普及组] 陶陶摘苹果 题目描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 1010 个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个 3030 厘米高的板凳 ...
- 陶陶摘苹果(洛谷-P1046)
题目描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试. 现在已知10 ...
- 洛谷P1046陶陶摘苹果题解--zhengjun
题目描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 101010 个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个 303030 厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳 ...
- 数组——洛谷#P1046 陶陶摘苹果(Python实现)
题目描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试. 现在已知10 ...
- 【洛谷 P1046】[NOIP2005 普及组] 陶陶摘苹果 题解(比较)
[NOIP2005 普及组] 陶陶摘苹果 题目描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10 10 10 个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个 30 30 30 厘米高的 ...
最新文章
- html表格编辑器退出编辑状态,html编辑器的使用方法
- volatile 的内存语义
- 查看dev下设备名的含义
- go to ifm as frequently as possible
- 室外建筑表现3Dmax和vray常用材质参数设置
- MySQL的环境变量配置详细步骤
- 取得程序运行的目录[360度]
- php 分页 报表 框架,zentaoPHP框架的分页解决方案
- 暴风影音CEO冯鑫的人生解读
- ext2文件系统初步
- 【FPGA频率计】基于FPGA的高精度数字频率计的详细设计
- cdr多页面排版_cdr排版实例图文教程,教你CorelDRAW杂志内页排版方法
- java每五分钟执行_java关于Timer schedule执行定时任务 1、在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等...
- CRX文件转.O文件(.d文件转换成.o文件)
- 测试用例设计——微信发朋友圈(详细)
- idea无法正常显示配置文件图标
- 树莓派基础实验24:超声波测距传感器实验
- 004-如何用PS把彩色图片设置成黑白图片?
- ARM嵌入式主板之路
- gta5在线模式服务器暂停使用,R星官网放出《GTAOL》停服公告,12月16日正式关闭线上服务器!...