为什么80分 #2 #10 TLE

P1966 [NOIP2013 提高组] 火柴排队

CodeVS上90分 https://www.luogu.org/record/show?rid=4325948 ![](https://cdn.luogu.com.cn/upload/pic/10462.png)
by floatery @ 2017-11-06 15:54:55


@ floatery 可能是你的void mergesort(int l,int r) 里的内容太多,归并排序有简洁的写法, 看看我的 void gb(int x,int y) { if(x==y)return; gb(x,(x+y)/2),gb((x+y)/2+1,y); int i=x,j=(x+y)/2+1; for(int k=x;k<=y;k++) if(j>y||(i<=(x+y)/2&&a[i] <a[j]))g[k]=a[i++]; else g[k]=a[j++],ans=(ans+(x+y)/2- i+1)%p; for(int k=x;k<=y;k++) a[k]=g[k]; }
by HHCY @ 2018-03-08 22:58:23


@[floatery](/space/show?uid=20854)
by HHCY @ 2018-03-08 22:58:36


@[HHCY](/space/show?uid=50704) @[floatery](/space/show?uid=20854) ```cpp void gb(int x,int y) { if(x==y)return; gb(x,(x+y)/2),gb((x+y)/2+1,y); int i=x,j=(x+y)/2+1; for(int k=x;k<=y;k++) if(j>y||(i<=(x+y)/2&&a[i] <a[j]))g[k]=a[i++]; else g[k]=a[j++],ans=(ans+(x+y)/2- i+1)%p; for(int k=x;k<=y;k++) a[k]=g[k]; } ``` 帮你用一下Markdown
by Happynewyear @ 2018-08-24 12:05:45


```cpp ```
by HHCY @ 2018-08-24 12:10:32


|