首页 > 技术文章 > bzoj题目分类

L-Memory 2017-02-09 16:25 原文

转载于http://blog.csdn.net/creationaugust/article/details/51387623
1000:A+B 
1001:平面图最小割,转对偶图最短路 
1002:矩阵树定理,也可以通过推矩阵的递推关系得到递推式 
1003:最短路+DP 
1007:半平面交 
1008:组合数学,需要高精 
1010:斜率优化/四边形不等式推决策单调性 
1012:线段树 
1014:Splay维护字符串的Hash值 
1016:矩阵树定理,相同权值压联通块,对一个联通块用一次矩阵树定理计算方案数,累积答案 也可以DFS 
1023:仙人掌DP找直径 
1031:直接构建出倍长后串的SA,用rank数组做 
1034:贪心 
1036:树链剖分/LCT 
1038:半平面交 
1041:数论,推一下公式 也可以用一种跟勾股定理相关的做法 
1043:计算几何,细节已忘. 
1050:并查集,细节已忘. 
1053:爆搜 
1054:模拟 
1059:二分图最大匹配,对行和列做点 
1061:不等关系转费用流建图 
1066:最大流 
1067:线段树分类讨论 
1070:费用流 
1072:状压DP,据说暴力可过 
1083:最小生成树 
1087:状压DP 
1088:枚举状态,暴力 
1089:找规律,需要高精,也可以用组合数学推一下 
1092:模拟 
1095:动态树分治,或者dfs序线段树维护括号序列 
1099:线段树+分类讨论 
1101:莫比乌斯反演,同HAOI ProblemB 
1103:dfs序,或者链剖 
1106:树状数组.考虑记录下每个元素上一次出现的位置,然后BIT搞一搞. 
1112:权值平衡树,中位数相关. 
1113:好像是单调栈扫一扫就没了. 
1121:一个结论题,答案是n/2. 
1131:树形DP一下. 
1132:答案的式子可以看出一个坐标的前缀和,优化一下暴力. 
1143:利用那些图论定理,最长反链=n-最大匹配. 
1145:很多种情况,BIT维护一下然后把这些情况加加减减.网上有WJMZBMR题解. 
1146:一个比较模板的题..为了不被卡常卡空间可以考虑把其中一维搞上整体二分. 
1167:空数据,Python 2B 
1176:cdq分治,或者kdtree 
1180:LCT 
1191:二分图最大匹配 
1192:考虑二进制分解. 
1193:大规模贪心,小规模暴力. 
1195:状压DP,与某道TC SRM一样. 
1202:加权并查集,维护前缀和. 
1208:权值平衡树. 
1213:二分,Python. 
1214:空数据,Python 2B 
1227:组合,容斥,二维BIT.建议看黄学长题解. 
1269:区间Splay裸题. 
1307:题意是找最大的一个区间使得区间内为一个排列.记录前驱后继,可以得到符合条件的判定关系与区间长度,区间最大值最小值差有关.通过前驱后继来查询这个东西. 
1318:同1307 
1336:最小圆覆盖 
1337:同1336 
1342:对当前区间搞了个set. 
1345:规律+结论题,附核心代码,我也不知道怎么证的

for (int i=1;i<=n;i++)
    {
        in(a[i]);
        if (i>=2)
        {
            if (a[i]>maxn)  sum+=a[i];
            else    sum+=maxn;
        }
        maxn=a[i];
    }
    cout<<sum<<endl;

1351:空数据,Python 2B 
1360:空数据,Python 2B 
1370:并查集.(这不是某NOIP题吗 
1379:答案就是m.忘了为什么了. 
1398:KMP最小表示,卡SAM内存. 
1406:数论,找质因子搞一搞. 
1419:DP一下.枚举选到了i张红的,然后1~b枚举选到了多少黑的.似乎需要滚一下数组压内存. 
1453:方法很多,提供四个.1.LCT维护删除时间最大生成树 2.cdq分治+并查集 3.A*爆搜 4.线段树维护连通性 
1482:空数据,Python 2B 
1492:斜率优化,因为状态点的x不单调,所以需要平衡树或者cdq分治 
1500:区间Splay. 
1502:Simpson积分. 
1503:权值平衡树 
1513:二维线段树 
1529:答案是联通块个数,并查集或者Tarjan都可以. 
1532:二分答案,最大流判定. 
1543:同JSOI2008最小生成树计数. 
1563:四边形不等式推出决策单调,二分决策点. 
1568:李超线段树. 
1588:权值平衡树. 
1798:线段树双标记.但是我是拿LCT写的. 
1800:暴力 
1821:二分答案+并查集 
1853:爆搜 
1857:三分套三分. 
1875:矩乘优化DP 
1876:Python题,直接GCD 
1877:拆点费用流 
1878:离线处理+树状数组 
1879:状压DP 
1880:四遍最短路,然后DP一下 
1898:可以发现每12次还是6次一个循环,然后对大范围矩乘一下,剩下的一点暴力DP出来. 
1902:考虑p进制拆分,答案是拆分后每一位+1的乘积 证明好像是考虑Lucas定理的 
也可以数位DP+组合数学,但是无论哪种做法都需要Python高精度 
1907:树的最小路径覆盖,可以直接树DP/贪心 
1922:分层图最短路 
1923:高斯消元. 
1924:强联通分量缩点最长路 
1925:DP.需要用到一些抖动子序列的性质. 
1941:kdtree最远点 
1951:数论板子合集. 
1968:枚举1~n统计n/i的和 
1969:LCT维护两点间桥边数量,不知道当年标算是什么但应该不是LCT吧 
1979:二分答案,用平衡树判定. 
1984:链剖/LCT裸题. 
1997:平面图判定.需要平面图理论. 
2000:可以贪心的博弈问题.网上很多证明. 
2001:可以LCT,也可以cdq,cdq的话需要很多最小生成树的性质. 
2002:可以LCT,可以分块. 
2003:特技爆搜. 
2004:矩乘优化DP 
2005:莫比乌斯反演 
2006:线段树+堆维护五元组 
2012:容斥+组合,同SDOI2013Spring 
2013:DP+二分 
2045:同POI2007Zap 
2049:国内第一个LCT 
2051:点分治 
2054:并查集的特技 
2056:嘿嘿嘿 
2064:状压DP 
2089:同2090. 
2090:权值线段树优化一下DP.感觉这个DP好像并不一定对啊..但是大家好像都是这么写的. 
2093:左右端点移动一下找到目标位置,然后倍增. 
2096:单调队列搞一搞 
2111:组合数搞一搞,需要Lucas 
2117:同2051 
2141:cdq分治 
2151:堆+贪心 
2154:莫比乌斯反演,有很多种公式化法,我的好像是比较傻逼的那种.. 
2157:LCT,随便打标记 
2163:直接最小割过了,其实应该转对偶图然后最短路才对. 
2186:考察线性的逆元求法. 
2190:反演分析一下,最后却发现答案是个跟phi有关的表达式.. 
2213:DP乱搞一下.附核心代码

for (int i=2;i<=n;++i)   ch[i]=getchar(),maxn=max(maxn,ch[i]-'a');
    for (int i=1;i<=n;++i)
    {
        int y=ch[i]-'a';
        for (int j=0;j<=maxn;++j)
        {
            ++f[j][y];--f[y][j];
            if (!g[y][j])   g[y][j]=1;
            else    if (g[y][j]==2) --g[y][j],++f[y][j];
            if (f[y][j]<0)   f[y][j]=-1,g[y][j]=2;
            if (g[y][j])    ans=max(ans,f[y][j]);
            if (g[j][y])    ans=max(ans,f[j][y]);
        }
    }

2216:显然权函数单调,满足四边形不等式,决策单调. 
2222:似乎数据有问题还是什么?面向数据了一波. 
2223:主席树 
2229:GHTree 
2241:暴力枚举答案然后检测,检测时候需要特技,感觉理论复杂度并不对但是过了 
2243:链剖或者LCT,我写的链剖 
2244:cdq分治做三维偏序的DP,答案实际上可能非常大会爆…但是出题人十分懒惰没管那样的数据,所以double就过了 
2275:考虑斐波那契分解.有一个定理,然而并不会证明. 
2280:倍增+最小圆覆盖,卡评测好题. 
2288:线段树优化费用流,模拟费用的取反什么的.5倍经验. 
2295:乱搞.附核心代码

char ch[MAXN],tmp[20]={'l','u','v','l','e','t','t','e','r'};
int main()
{
    for (scanf("%d",&T),getchar();T;T--)
    {
        gets(ch+1);n=strlen(ch+1);ans=0;
        for (int i=1,j=0;i<=n;i++)
        {
            j+=(ch[i]==tmp[j]);
            if (j>=9)    j=0,ans++;
        }
        printf("%d\n",ans);
    }
}

 

2296:找到一个P=987654321*10^6,答案就是(P+n)-(P+n)mod n 
2299:裴蜀定理 
2300:平衡树维护凸包.因为求的是凸包周长,所以贡献不可累积,故不能分治. 
2301:莫比乌斯反演.同POI2007Zap 
2326:矩乘. 
2336:模拟退火 
2344:暴力找三元环. 
2351:Hash 
2377:同POI2012 A Horrible Poem 
2378:PA2011Kangaroo kdtree 把序列[L,R]看成点(L,R) 然后查询的就是右下角的矩阵,打一些标记搞一搞. 
2393:同SCOI2010幸运数字 
2395:二维最小乘积生成树,裸. 
2428:模拟退火 
2433:计算几何. 
2434:AC自动机+线段树. 
2438:强连通分量. 
2440:莫比乌斯函数的应用,实际上就是容斥. 
2448:区间DP,线段树优化,卡普通线段树常数,需要zkw线段树. 
2456:卡内存..乱搞 
2458:分治,分治子结构内暴力+剪枝 
2460:线性基 
2461:乱DP一波 
2462:同2351Hash 
2463:根奇偶有关的博弈,一眼看出规律,证明可以考虑转化成骨牌铺满格子的问题. 
2464:裸最短路 
2467:矩阵树定理 
2506:小范围直接记录答案,大范围暴力. 
2514:同HNOI2010那个. 
2527:整体二分. 
2555: LCT维护SAM Parent树Right集合 
2568:按位考虑的乱搞树状数组,大量逻辑混乱… 
2588:找dfs序,树上建个主席树 
2594:LCT 
2595:斯坦纳树. 
2600:贪心,找规律,中位数相关 
2618:半平面交 
2623:RGB识别系统的弱化.湖南当年请的教授出题真厉害.. 
2626:kdtree+堆 
2631:LCT+双标记 
2639:二维莫队. 
2642:可以发现一次删一段连续的一定是最优的,所以二分一下删的长度,半平面交 
2648:kdtree 
2654:二分答案然后最小生成树 
2656:Python题 
2657:实际上就是让你找直径,没有三角剖分的姿势也没事 
2659:直觉型数学题 
2660:DP一下. 
2661:费用流 
2662:分层图最短路 
2671:类似莫比乌斯反演,推一推式子就行了 
2683:我写的cdq 
2697:贪心 
2705:莫比乌斯反演 
2716:cdq分治 
2717:奇怪的姿势枚举一发

for (int i=1;i<=(n>>1);i++)    for (int j=0;j<n;j++)    printf("%d %d %d\n",j+1,(j+i)%n+1,(j+i+i)%n+1);

2718:同CTSC2008祭祀 
2721:随便化一下式子 
2724:分块 
2729:组合数,需要Python 
2732:二分答案半平面交判定 
2733:平衡树启发式合并. 
2738:整体二分,也可分块 
2739:四边形不等式,然后发现决策单调,然后分治找决策点 
2741:分块套可持久化trie 
2751:根据题目找一个性质啥的..细节已忘 
2753:本意是求最小树形图,实际上因为题目特殊所以可以BFS一遍然后做最小生成树 
2754:AC自动机fail树+容斥,实际上暴力也过了. 
2759:题目给的是个环套树,对LCT维护一个额外的father,然后扩欧求答案 
2761:妈的智障.. 
2763:分层图最短路 
2783:dfs时候维护一下set 
2786:DP一下,需要Python 
2789:还是考虑上个位置,然后树状数组乱搞一下 
2795:hash,对一段数枚举约数然后判定 
2796:记忆化搜索 
2809:权值平衡树启发式合并,或者左偏树 
2812:空数据,Python 2B 
2813:斐波那契数性质的应用,线筛时候记录一下质因子,约数个数之类的 
2814:人生写过最码农的题,可以LCT可以链剖,只不过都得维护30来个量 
2815:支配树弱化版,倍增 
2816:LCT 
2818:同SDOI2012Longge的问题 
2822:卡特兰数相关,需要Python 
2823:最小圆覆盖 
2824:好像是个A*,我面向数据了一波 
2843:LCT 
2850:kdtree 
2851:灭绝树. 
2862:二分limit,dp 
2864:计算几何+最大流 
2875:矩乘 
2883:树套树,线段树套平衡树,但是我写的是线段树套权值线段树 
2886:显然先从整个矩形的边界上走比较好,可以发现转一下就是杨辉三角,再然后就没别的了 
2888:LCT维护树的重心,需要启发式合并 
2890:同POI2012 A Horrible Poem 
2896:同AHOI2005航线那题 
2901:可以发现能用前缀和做.. 
2908:考虑建32位的信息维护,链剖或者LCT 
2916:暴力 
2936:灌水法,堆+爆搜 
2937:写了个n^2暴力就能过 
2946:SAM时刻记录匹配上的最大值 
2957:线段树维护一段区间斜率 
2961:圆的反演,然后就成了cdq分治做半平面交 
2976:模拟一下得到一堆同余方程,扩欧找最小解 
2986:把2440反过来,做法一样 
2987:类欧裸题,然而还是不是很理解类欧 
3038:记录区间最大值,如果还能开根,暴力下放,最多开根lglg次 
3040:平板电视+Dij 
3043:乱搞一发,附核心代码

    in(n);for (int i=1;i<=n;++i) in(a[i]);
    for (int i=n;i;--i) a[i]-=a[i-1],ans1+=(i>1)*a[i]*(a[i]>0),ans2+=(i>1)*(-a[i])*(a[i]<0);
    cout<<max(ans1,ans2)<<endl<<abs(ans1-ans2)+1<<endl;

3051:平面图求域+点定位. 
3052:莫队上树. 
3053:高维kdtree 
3064:线段树+标记+时间戳. 
3069:LCT维护是否存在桥边,实际上可以并查集 
3070:考虑固定指数,把底数慢慢往上调,比较难写,于是我当时面向数据了一发 
3072:神DP.建议看Claris题解. 
3073:线段树优化建图最短路 
3084:扩展KMP.建议看Claris题解 
3098:生日攻击. 
3100:根前面那个什么 玩具 是一样的. 
3103:跑一边马拉车,然后并查集缩点一下,就成了弦图染色问题. 
3110:整体二分 
3117:链表+堆搞了一下,看似不科学实际上飞快 
3130:显然费用的分配是可以贪心的.然后二分. 
3132:二维树状数组 
3153:TopTree/ETT+LCT 然而出题人的做法不是这两个… 
3155:树状数组乱搞一下 
3170:链剖 
3172:建出多串后缀自动机,直接搞 
3176:显然要考虑逆序对什么的,然后还需要树状数组,附核心代码

 for (int i=1,last;i<=n;i=last+1)
    {
        for (last=i+1;a[last-1]>a[last]&&last<=n;last++);last--;
        for (ans++,l=i,r=last;l<r;swap(a[l++],a[r--]));
    }
    for (int i=n;i;i--) ans+=query(a[i]),add(a[i]);
    cout<<ans<<endl;

3178:循环构成了一个树形结构,然后就可以DP了 
3180:单调栈乱搞 需要SPJ 但是我好像恰巧跟std策略相同,直接A了 
3181:大质数暴力,小的二分乱搞一下 
3196:树套树 
3197:树Hash+乱搞 
3198:容斥+组合 
3199:显然图是个V图,半平面交弄出来,然后最短路 
3203:计算几何,答案在凸壳上,三分一下 
3209:数位DP+数论 
3211:同 上帝造题七分钟2 
3223:区间Splay裸题. 
3224:权值平衡树 
3226:把区间拆成两倍来处理开闭问题,然后线段树就行了,可以看成区间加减01,区间覆盖01的问题 
3228:把整个坐标系旋转45°,然后就成了扫描线sb题,问题在于统计的不是面积而是格子…所以细节非常麻烦 
3229:满足四边形不等式然后DP就好了 
3231:矩乘 
3236:莫队/树套树/cdq分治. 
3237:我写的cdq分治,实际上也有别的做法 
3238:后缀自动机Parent树上DP一下 
3243:基于随机化的乱搞 
3251:注意到fib数没多少项就爆int了,所以暴力 
3252:dfs序,然后变成了rmq问题,写个线段树 
3260:同2886 
3262:cdq分治维护三维偏序 
3267:同2288. 
3268:ST表搞一搞.source里都给写了题解了.. 
3272:同3267 
3277:SAM基本应用 
3282:LCT 
3283:BSGS. 
3295:cdq分治.注意每次修改会产生更多额外的贡献要单独减去的 
3309:莫比乌斯反演 
3323:序列平衡树维护多项式 
3329:把两问分别考虑,一个数位DP一个矩乘 
3339:跟SDOI2008HH的项链方法差不多,也是离线然后考虑找到前驱后继线段树做 
3350:同3103 
3417:对一个环可以重复走多次每次长度都是+2的,所以第一次BFS看看路径长奇偶就行了. 
3424:跟dfs序有关.有波兰人论文. 
3439:建trie,对trie dfs一遍,同时建立主席树 
3463:分块维护凸壳 
3473:同3277 
3482:SPFA预处理含x条边的情况然后做.建议看Claris题解. 
3483:建trie,可以发现询问能跟trie的dfs序对应起来,所以再建一棵主席树. 
3489:我写的3d kdtree 
3493:同HNOI2010那个 
3495:考虑2-SAT建图.安利Claris题解. 
3498:枚举三元环,我拿度数倍数判的实际上应该是根号度数.. 
3500:OEIS有数列 
3501:把3501加点数论特技,CRT什么的.. 
3502:同3272 
3505:组合数一下 
3514:LCT.记录下某条边被加入成环,主席树统计答案. 
3522:树DP.可以O(n)特技. 
3524:主席树 
3527:FFT 
3529:莫比乌斯反演+树状数组 
3530:AC自动机+数位DP 
3531:动态开点的LCT/链剖线段树 
3532:退流科技. 
3533:线段树维护凸包 
3534:构建一个合理的矩阵然后矩阵树定理,这个矩阵的构建需要十分高超的概率姿势,建议看高大哥的题解 
3543:有定理好像是这样的正方形不超过根号个还是什么来着..忘掉了.反正是结论题 
3544:搞个set就好了 
3545:本题不强制在线,标算为平衡树启发式合并 
3551:对3545强制在线后,我们需要主席树+倍增搞一发 
3555:hash 
3566:树形概率DP 
3571:最小乘积生成树+KM. 
3572:虚树. 
3573:考虑对树DFS,做一个对数的转化 
3575:不靠谱的暴力做法..加上堆维护一下 
3585:又是考虑离线记前驱后继然后线段树的题 
3589:实际上是虚树.用链剖线段树随便打了打标记.然而标算应该是LCT做链的并吧. 
3594:线段树优化DP 
3603:分块高斯消元. 
3605:分治FFT. 
3606:平面图求域+点定位. 
3607:最长路剖分一下,再轻重路剖分一下,安利Claris题解. 
3613:贪心/找规律. 
3616:kdtree+bitset 
3622:厉害的组合数+DP. 
3629:有一个什么分解定理来着… 
3638:同3502 
3643:爆搜 
3647:hash一下,好像也是个双倍经验 
3651:对ZJOI2012网络去掉权值的维护 
3658:单调栈+树状数组 
3659:矩阵树定理+BestTheorem 
3667:MillerRabin+PollarRho 
3668:按位贪心 
3669:LCT 
3672:点分治+斜率优化+cdq分治. 
3673/3674:rope的应用. 
3675:满足四边形不等式,有决策单调 
3676:PAM裸题,但是我写的SAM+manacher 
3680:模拟退火/多重爬山 
3585:VEB树. 
3687:bitset应用 
3688:线段树优化DP 
3709:贪心.肯定先打能回血的. 
3710:构造神题.波兰人有论文. 
3711:分治优化DP,分治过程中用线段树找决策点,决策点单调. 
3712:树上倍增. 
3713:暴力拆分. 
3714:前缀和Prim. 
3715:找找最大边界值,随便判定一下.. 
3716:最小割转最大流,然后贪心,需要一定坐标变换. 
3717:高姿势的状压DP. 
3718:只要能卡住就行了,树状数组. 
3719:线段树套个vector扫描线扫一扫. 
3721:随便贪心,考虑奇换偶偶换奇. 
3722:树形DP. 
3725:扫一遍,扫的时候记录出现位置,更新答案. 
3726:悬线法. 
3727:稍微推一推公式,然后就发现代价可以根据size什么的树形DP了. 
3728:堆贪心. 
3732:跟某NOIP货车运输一样. 
3733:爆搜+信仰剪枝.安利潇爷(Time-Machine)题解 
3735:堆搞一搞 
3737:跟phi的反函数一个做法. 
3743:显然可以直接树形DP. 
3745:分治,前缀和,单调栈. 
3754:很好的乱搞题.可以考虑看成是一堆点,然后中间有一条水平直线算代价. 
3767:Python题. 
3779:LCT+dfs序线段树 
3791:可以比较容易的DP出来. 
3802:预处理转移的DP.也可以直接手动分类讨论出来,只要你不嫌手累代码长难调. 
3810:记忆化搜索 
3811:这个期望和概率题好神啊..建议直接上网看题解 
3812:状压DP,需要一些奇怪姿势. 
3815:kdtree. 
3816:空数据 Python 2B 
3817:类欧题,类欧前需要很多变形. 
3831:挺sb的一个DP. 
3834:莫比乌斯反演. 
3837:线筛处理一些东西,然后DP. 
3838:看成线段树维护括号序列,然后就发现需要维护的东西特别多还不止一棵线段树. 
3839:考虑从某个点开始向四个方向扩展的凸包,预处理,然后对询问用线段树扫描线一下. 
3884:高姿势的数论题. 
3895:dfs,过程中需要很多情况的讨论,建议看Po姐题解. 
3915:矩形剖分. 
3916:枚举删除的位置,Hash. 
3917:考虑爆搜各种剪枝,每次范围都是之前的十分之一. 
3922:搞一堆线段树分别对应不同公差,大公差暴力,小的线段树. 
3926:trie上SAM扩展裸题.因为度数少,所以暴力合并. 
3928:区间DP一下. 
3944:杜教筛裸题. 
3950:同3607. 
3984:按时间分治,维护删除时间最大的基. 
3990:操作序列的顺序并不影响答案,根据这个性质所以搜. 
3991:虚树. 
3993:二分费用最大流判定. 
3994:比较厉害的莫比乌斯反演,需要一个性质.安利高大哥题解. 
3995:线段树维护两排点,分类讨论. 
3998:SAM的应用. 
4001:找规律.实际上要靠生成函数来推.. 
4010:拓扑. 
4020:手写编译器. 
4025:LCT,或者cdq分治. 
4027:贪心. 
4029:模拟. 
4031:矩阵树定理. 
4032:前两问直接DP,后两问SAM上DP. 
4033:看似n^3,实际上n^2的树DP. 
4034:链剖, 
4036:子集和变换. 
4043:同3802. 
4048:同3928. 
4052:发现gcd最多有log个,单调栈一下. 
4057:状压DP. 
4059:奇怪的暴力. 
4062:同3658. 
4063:智障啊.. 
4066:卡掉离线算法差评不已.kdtree 
4068:维护套着堆的线段树就行了,每次考虑用后来的任务替换一下前面的任务. 
4084:Hash 
4085:线段树维护矩乘.据说考场卡常?矩阵可以从3*3优化到2*2. 
4086:组合数容斥. 
4088:大模拟. 
4106:WF签到题. 
4127:数一直加的,已经没有负数的就不用管了,其他的可以暴力下放. 
4128:矩阵BSGS,矩阵求逆或者不求逆的BSGS. 
4130:kdtree.上面写过这个题了.. 
4140:因为强制在线了,所以要二进制分组 
4143:乱搞,暴力,没技术含量. 
4144:最短路+最小生成树. 
4145:状压DP. 
4146:写个计数器.sb题 
4147:又一个根据很多情况来讨论的博弈.看Claris题解把 
4148:构造.算基础构造题了. 
4149:考虑单调栈搞一搞. 
4151:一个非常厉害的.最短路?安利Claris题解 
4152:把点排个序,构个图,最短路. 
4154:可以kdtree,要是不只是子树的话,点分就好了. 
4160:这题好神啊.安利Claris题解. 
4180:构建出SAM,然后可以矩乘 
4184:按时间分治线段树维护一下线性基 
4194:k做一下前缀和就可以看成是凸壳,然后二分一下斜率什么的. 
4195:并查集 
4196:链剖 
4198:Huffman树+贪心 
4199:SAM Parent树上DP 
4209:把PA的Bazarek用主席树来做动态的 
4212:同3483,但是卡trie转移边内存. 
4216:分块,也卡内存. 
4229:同PA2011HardChoice 
4236:随便统计一下三个字母数目更新下答案就行了. 
4245:按位贪心 
4247:背包变形 
4250,4251前面都出现过了 
4253:把AHOI那个密码箱找质因子的过程来弄成PollardRho 
4260:trie正着一遍倒着一遍DP,但是我写的可持久化trie,差点T飞 
4262:考虑询问离线,然后用线段树搞一搞,安利Claris题解. 
4263:某TCSRM题改编,结论题,贪心一下. 
4264:边集Hash. 
4266:同 一个动态树好题 
4269:线性基 
4288:跟Baltic2014sequence一样 
4289:转一下建图,差分建图,,然后最短路 
4291:跟Bazarek一样 
4292:按位暴力 
4293:大小关系是始终不变的,所以排序后可以在线段树上二分. 
4294:斐波那契数列模10^m有循环节,利用这个,然后搜 
4296:好像是考虑贪心的删?忘了.. 
4297:神题.安利Claris题解. 
4298:比较厉害的边集Hash. 
4299:主席树.可以发现那个东西的一个性质.这个性质如果说出来就没意思了.. 
4300:builtin大法好啊.. 
4305:组合+容斥 
4310:二分+后缀数组判定/hash判定 
4311:按时间分治的线段树,答案在凸壳三分 
4312:大型分类讨论 
4316:仙人掌DP 
4317:同2051 
4318:同Easy那题 
4319:简单的构造 
4320:小范围记录答案,大范围暴力 的那种题目 
4327:SAM直接跑 
4337:树Hash 
4347:比较厉害的DP.安利Claris题解. 
4352:又是个双倍经验..同 A Huge Tower 
4358:考虑kdtree,序列[L,R]当成(L,R)这样子 
4364:线段树乱搞..乱更新一下 
4367:搞出暴力DP之后,满足四边形不等式,所以决策单调,然后分治优化,主席树找决策 
4373:对区间是否符合条件有一个有关gcd的判定,然后线段树就行了.也可以Hash区间和,区间平方和,立方和. 
4378:特技差分然后树状数组. 
4380:区间DP. 
4401:枚举约数. 
4403:组合数学. 
4404:按位搜. 
4407:莫比乌斯反演 
4408:同FRBSUM 
4414:利用一点斐波那契数列的性质做,可以找规律. 
4415:线段树模拟 
4418:线段树. 
4419:暴力 
4421:智障.. 
4423:考虑对偶图中两点连通性与原图中两点连通性关系,然后并查集维护对偶图的连通性. 
4424:nlogn可以差分树剖或者LCT,O(n)就利用一些特技乱搞一下. 
4425:搞个堆 
4426:满足四边形不等式,分治优化下DP 
4427:计算几何+二分图判定 
4428:一点特殊的记忆化搜索姿势然后杜教筛 
4429:二分图最大匹配 
4430:树状数组找一下逆序对什么的 
4432:链表大模拟 
4434:坐标范围很小,考虑分成一小段一小段然后做 
4435:割流转化,然后最小割树 
4437:BFS预处理,然后对每个询问三分 
4438:忘掉了QAQ 
4439:最小割 
4444:DP了一下.好像是n倍经验 
4452:离线,并查集 
4453:高端的姿势!请单独看我题解 
4454:O(1)gcd黑科技 
4455:一点状压 
4456:分治+Dij 
4458:超级钢琴上树 
4465:第二类strling数变形 
4471:矩乘+贪心模拟 
4472:树形DP一下 
4475:找规律 
4488:同cerc2013 Magical Gcd 
4490:同4471 
4500:差分约束 
4503:FFT 
4505:考虑只找那个字符串的一半,暴力枚举星号状态,然后匹配 
4513:数位DP 
4514:费用流一直跑,跑到变负数 
4515:李超线段树 
4516:SAM裸题 
4517:直接错排,但是建议写容斥 
4518:斜率优化,实际上也可以直接四边形不等式然后分治 
4519:GHtree 
4520:kdtree,姿势同jzpfar 
4521:数位DP一下 
4522:按他的要求做就行了..写Pollardrho,然后扩欧什么的.. 
4523:可持久化trie,时刻维护单调栈匹配的最大长度 
4524:打表+堆然后搜的.. 
4527:这题好神..但是也属于那种单调栈+线段树搞一搞的题目.安利Claris题解 
4538:链剖线段树+kdtree 
4540:同4262 
4543:提供nlogn 点分治 O(n) 利用启发式思想的树形DP 
4544:打表观察找到一个积性函数. 
4545:SAM强行上trie..实际上还是2555 
4548:同4062 
4551:并查集 
4552:二分答案,线段树 
4553:发现成立条件跟a[i],minb[i],maxb[i]有关.实际上是个三维偏序,可以kdtree可以cdq分治. 
4554:拆点,二分图最大匹配 
4556:SAM+dfs序+主席树 
4557:树形DP一下 
4558:容斥.需要很多细节讨论 
4562:拓扑 
4263:直接上错排 
4565:状压DP. 
4566:建两个SAM,考虑下合并代价什么的就行了 
4568:点分治/倍增+线性基(Claris的点分治模板就是快) 
4569:ST表+并查集 
4598:可以考虑nlogn的点分治,这是doc老师给的标算,同时还有一种O(n)的做法.基于以前的暴力LCA的DP,考虑使用上启发式思想,可以做出一个漂亮的O(n)DP,基本同 4543Hotel加强版 这个题一样. 
4599:首先可以看出回文串的贡献都是可以单独考虑的,然后其他的串可以考虑行列拆点最小割.具体建图已忘. 
4600:考虑按C分类,然后状压DP. 
4601:比较重要的两个性质:1.路径只有两种可能,分别是两种绕法,因为我没法贴图片,所以留给大家自行思考.想到这两种绕法之后,还有一个性质,就是选出一行/列,考虑这一行/列的插头状况,发现只有一个插头是非空的(当然这并不意味着要让你写一个插头DP,只是这个性质是比较有用的. 
有了这两个性质就可以独立考虑做法了. 
4602:带权并查集,或者直接dfs(因为无向图DFS树只有返祖边没有横向边).为了解决分数特别大的问题,考虑记录质因子或者取log(会被卡精度). 
4603:正四面体剖分,然后搞一搞.

推荐阅读