bzoj1056&bzoj1862 游戏排名系统 哈希+splay

2019-04-14 12:00发布

对于字符串直接用map+hash即可 注: 不能膜蛤,也不能模1e9+7和1e9+9 要模 2147483647。。。 要注意splay的位置,忘了splay很有可能导致出错
码: #include #include #include #include using namespace std; #define treefly 2147483647 #define N 1000005 mapma; int ch[N][2],fu[N],sz[N],p1,p2,rt,rs,cnt,cs[N],ci,n,i,j; int val,v[N]; char cha,str[22],nm[N][22]; int haxi() { long long ans=0,i,len=strlen(str); for(i=0;i0)del(ma[haxi()]); else ++rs; //cout<lin) { o=ch[o][1]; }else { lin-=sz[ch[o][1]]+1; o=ch[o][0]; } } } void dfs(int o) { if(!o)return; if(o!=p2)dfs(ch[o][1]); int len=strlen(nm[o]); printf("%s",nm[o]); if(o!=p1)printf(" "); if(o!=p1)dfs(ch[o][0]); } int main() { scanf("%d",&n); for(ci=1;ci<=n;ci++) { scanf("%c",&cha); while(cha!='+'&&cha!='?')scanf("%c",&cha); if(cha=='?') { scanf("%s",str); if(str[0]>='1'&&str[0]<='9') { val=0; for(j=0;j