bzoj2161: 布娃娃
Description
Input
Output
输出一个整数,代表所有布娃娃谜团答案的和除以19921228的余数。
Sample Input
2 3 4 3 1 4 5 2 3 6 9 1 1 2 3 4
Sample Output
#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
char ch; bool ok;
void read(int &x){
for (ok=,ch=getchar();!isdigit(ch);ch=getchar()) if (ch=='-') ok=;
for (x=;isdigit(ch);x=x*+ch-'',ch=getchar());
if (ok) x=-x;
}
const int maxn=;
const int inf=0x3f3f3f3f;
const int MOD=;
int add,first,mod,prod,tmp[][maxn];
int n,idx,ans;
struct Data{
int x,id,op;
}list[maxn*];
bool operator<(const Data &a,const Data &b){
if (a.x!=b.x) return a.x<b.x;
return a.op<b.op;
}
struct Splay{
#define ls son[x][0]
#define rs son[x][1]
int root,fa[maxn],son[maxn][],siz[maxn],val[maxn];
void init(){
root=n+,siz[n+]=,val[n+]=inf,son[n+][]=n+;
siz[n+]=,val[n+]=-inf,fa[n+]=n+;
}
int which(int x){return son[fa[x]][]==x;}
void updata(int x){siz[x]=siz[ls]++siz[rs];}
void rotate(int x){
int y=fa[x],z=fa[y],d=which(x),dd=which(y);
fa[son[x][d^]]=y,son[y][d]=son[x][d^],fa[x]=z;
if (z) son[z][dd]=x;
son[x][d^]=y,fa[y]=x,updata(y);
}
void splay(int x){
while (fa[x]){
if (!fa[fa[x]]) rotate(x);
else if (which(fa[x])==which(x)) rotate(fa[x]),rotate(x);
else rotate(x),rotate(x);
}
updata(x),root=x;
}
void insert(int x,int v){
fa[x]=son[x][]=son[x][]=,siz[x]=,val[x]=v;
int f,t;
for (f=t=root;t;f=t,t=son[t][v<val[t]]);
fa[x]=f,son[f][v<val[f]]=x,splay(x);
}
int find_left(int x){for (;son[x][];x=son[x][]);return x;}
void _delete(int x){
splay(x);
int y=find_left(son[x][]);
fa[ls]=fa[rs]=,splay(y),fa[ls]=y,son[y][]=ls,updata(y);
}
int find_kth(int x,int k){
if (!x) return ;
if (siz[ls]>=k) return find_kth(ls,k);
if (siz[ls]+==k) return x;
return find_kth(rs,k-siz[ls]-);
}
int query(int k){
int x=find_kth(root,k+);
if (<=x&&x<=n) return val[x];
return ;
}
}T;
int main(){
read(n);
for (int op=;op<;op++){
read(add),read(first),read(mod),read(prod);
tmp[op][]=first%mod;
for (int i=;i<=n;i++) tmp[op][i]=(1LL*tmp[op][i-]*prod+add+i)%mod;
}
for (int i=;i<=n;i++) if (tmp[][i]>tmp[][i]) swap(tmp[][i],tmp[][i]);
for (int i=;i<=n;i++) list[++idx]=(Data){tmp[][i],i,};
for (int i=;i<=n;i++) list[++idx]=(Data){tmp[][i],i,};
for (int i=;i<=n;i++) list[++idx]=(Data){tmp[][i],i,};
sort(list+,list+idx+),T.init();
for (int i=;i<=idx;i++){
int id=list[i].id,op=list[i].op;
if (op==) T.insert(id,tmp[][id]);
else if (op==) ans+=T.query(id),ans%=MOD;
else if (op==) T._delete(id);
}
printf("%d\n",ans);
return ;
}
bzoj2161: 布娃娃的更多相关文章
- BZOJ2161: 布娃娃 整体二分
Code: #include <cstdio> #include <algorithm> #include <cstring> #include <vecto ...
- 【主席树】【bzoj2161】[hdu4348]
#include<cstdio> #include<algorithm> #include<cstring> #define N 400000 using name ...
- 【BZOJ2161】布娃娃 扫描线+线段树
[BZOJ2161]布娃娃 Description 小时候的雨荨非常听话,是父母眼中的好孩子.在学校是老师的左右手,同学的好榜样.后来她成为艾利斯顿第二代考神,这和小时候培养的良好素质是分不开的.雨荨 ...
- 【bzoj2161】布娃娃 权值线段树
题目描述 小时候的雨荨非常听话,是父母眼中的好孩子.在学校是老师的左右手,同学的好榜样.后来她成为艾利斯顿第二代考神,这和小时候培养的良好素质是分不开的.雨荨的妈妈也为有这么一个懂事的女儿感到高兴.一 ...
- Unity Ragdoll(布娃娃系统)
逼真的动作如何实现的? 在一些游戏中当NPC或玩家死亡的时候,死亡的肢体动作十分逼真,这一物理现象如何用Unity来实现呢?Unity物理引擎中的Ragdoll系统,可以用来创建这种效果,具体请参阅以 ...
- BZOJ_2161_布娃娃_权值线段树
BZOJ_2161_布娃娃_权值线段树 Description 小时候的雨荨非常听话,是父母眼中的好孩子.在学校是老师的左右手,同学的好榜样.后来她成为艾利斯顿第二 代考神,这和小时候培养的良好素质是 ...
- unity3d中布娃娃系统
原地址:http://blog.csdn.net/pizi0475/article/details/9771941 转自: http://forum.mirax.com.tw/unity/viewto ...
- 两分钟学会Unity3D布娃娃的使用
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/wangbin_jxust/article/details/28587233 在RPG游戏中,为了让人 ...
- BZOJ 2161 布娃娃 (主席树)
题面 想了一个主席树做法 我们把每个区间的两个端点拆开 对$L,R$分别从小到大排序,分别从左到右依次把对应标号的$c_{i}$插入到权值主席树里 每次查询$p_{i}$,在排序后的$L,R$数组上分 ...
随机推荐
- MySQL分区的限制(最多有多少个分区)
MySQL分区的限制 • 只能对数据表的整型列进行分区,或者数据列可以通过分区函数转化成整型列 • 最大分区数目不能超过1024 • 如果含有唯一索引或者主键,则分区列必须包含在所有的唯一 ...
- 2457: [BeiJing2011]双端队列
2457: [BeiJing2011]双端队列 链接 很奇妙的转化. 题目要求最后的所有序列也是有序的,所以可以求出最后的序列(即排序后的序列),然后分成许多份,要求每一份都是一个双端序列,求最少分成 ...
- 创龙TMS320C6748开发板串口和中断学习笔记
1. 硬件上,底板有2个串口,UART1和UART2(使用了MAX3232电平转换芯片),其中UART2也可以转RS485的. 2. 看下数据手册部分,不过一直不理解过采样的意思,16字节的FIFO ...
- cf987f AND Graph
#include <iostream> #include <cstdio> using namespace std; int n, uu, m; bool a[4500005] ...
- This content database has a schema version which is not supported in this farm.
I want to move the website to another server. The new server has reinstall Sharepoint2013 serv ...
- Anytime项目开发记录4
做事情列表,我在程序中命名为“正在做”. 这是一个Fragment,应用的主页面,由一个MainActivity加上DoingListFragment和PersonFragment组成.PersonF ...
- 深挖 NGUI 基础 之UICamera (二)
一.UI Camera作用 UICamera需要挂载在摄像机上才能发挥作用 UICamera仅负责 发送NGUI 事件 到 脚本所附加的摄像机中看得到的对象,比如我自定义了NGUI层(在Inspect ...
- python 动态函数调用及可变参数传入
定义类及方法 class ParameterFactory(object): ..... def fullLinkTag(self, fromDate, toDate, status, cate='全 ...
- Python图像全屏显示
需要在嵌入式设备上全屏显示图像,使用pil显示图像时,只能通过系统的图像浏览器显示.所以使用Python自带的tkinter import Tkinter as tk 这句在Python3中已经改 ...
- Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/xxx项目名]]
可能是web.xml中的一些配置导致Tomcat启动失败,把web.xml中除 <welcome-file-list>外的全部配置删除后,就能正常启动Tomact了. 具体什么原因还不清楚 ...