zoukankan      html  css  js  c++  java
  • 日常记录 至2018.12.06

    bzoj5310:退背包。

    bzoj1097:最短路+状压dp。

    bzoj1098:反向图联通块个数。链表+bfs。

    bzoj1054:bfs

    bzoj1027:Floyd最小环

    bzoj1018:用线段树维护区间的四个端点的联通情况,然后查询的时候,把所有覆盖到的区间合并起来即可。

    bzoj1037:任意一段的男生与女生差<=k,那么f[i][j]:i个男生,j个女生的方案数,这样只能满足1~i+j这段区间是合法的,所以f[i][j][x][y]表示从当前点往前延伸最大的男生-女生,女生-男生。

    bzoj1090:区间dp,f[i][j]枚举一个k转移,如果前i~k可以组成整个字符串,那么可以考虑合并起来。

    bzoj1103:树链剖分求1到每个点的路径上1的个数,欧拉序+树状数组更简单!

    bzoj1067:线段树维护最大最小值+分类讨论。

    bzoj1071好题!

    bzoj1178:按编号顺序枚举,考虑这条线段[l,r]是否加入,如果加入后,和以前的确定的线段不重复,前驱是tl,后继是tr,那么tl~l-1,r+1~tr,区间的最优值加上1应该等于tl,tr的最优值。去掉包含的线段,倍增维护每条线段往后2^i步的是谁+set维护已经确定的线段。

    bzoj1126:dp的状态很奇妙啊。每次可以走的状态是一个矩形,所以维护举行就行了。空间太大,滚动掉一维。

    bzoj1125:对每个子串维护一个hash,对每个hash维护一个splay,然后一个点会从一个splay中删除,并插入到另一个splay中,这个splay中的所有点就要更新,打标记。

    bzoj1102:bfs搜出相同高度的,然后枚举相邻的格子,比较大小。

    bzoj1104:题意啊?

    bzoj1105:思路题,没想到啊,每个点翻转后,一定是x,y交换,即关于y=x这条直线对称。所以最短的周长一定是所有的点在这条直线同一侧。那么求出周长后,考虑矩形的摆放位置,共四种情况。

    bzoj1106:奇妙的题,奇妙的贪心。一对数字可以交换后消去,那么就直接交换,与顺序无关。一个数字一定是要交换的那么找到另一个它,然后计算需要交换几步,然后把这个数字删掉。开始想的是先删距离小的,但是根据上面的性质与顺序无关,所以删哪个都行。

    bzoj1107:好题!一个点所能到的点是一个区间。建反向图后可以走到1和n的点就是1,n号点都可以到的点。求1号点可以到k号点(中间都可以到)就是k-1到k中最长不上升子序列长度。

    bzoj1108:任意一种匹配方案都是合法的,所以直接求坐标差的和。

    bzoj4892:二分+hach/SA,或者SAM。hash/SA使用来求lcp的。

    2018-11-30

    bzoj1109:好题!首先是dp,f[i]表示到第i个的最优值,f[i]=f[j]+1,(j<i,a[j]<a[i],j-a[j]<i-a[i]),然后三维偏序,cdq维护转移。实际上由a[j]<a[i]和j-a[j]<i-a[i]可以推出j<i所以二维偏序,直接LIS。

    bzoj1110:首先一定选前k个,然后二分这个k,每个都需要选,所以,从大的往后扫,每次取出当前最大的背包看是否可以放进去(如果有x,y都可以放,放进大的更优,因为放进后剩下的背包很是比较大的,堆维护)。还有进制拆分思想。

    hdu5542:树状数组维护转移。

    bzoj1112:权值线段树求中位数(或者平衡树,堆)。注意有0,所以整体加1。

    bzoj1113:单调栈即可。zz的写了线段树。。。

    bzoj1116:奇妙!并查集,如果一个联通块是可行的,必须满足存在大于等于点数条边。

    bzoj5068:枚举前k-1个正负性,去掉绝对值符号,扫一遍。

    2018-12-01

    bzoj1150:贪心。用堆维护取最小的,每次取一条,删掉旁边两条,加入 旁边两条的和-当前这条

    bzoj2288:转化为上面的问题。

    bzoj1131:树形dp。从上一个节点转移到下一个节点,只需要知道下一个节点的siz即可,O(1)转移。

     2018-12-02

    bzoj1127:特判是否有合法的点,否则找到全由<k的点组成的矩形(悬线法),一定存在一个子矩形满足。

    bzoj1135:转化为二分图模型,利用hall定理,判断最劣的情况是否满足。

    bzoj1123:tarjan求割点的过程中,求出删掉这个点的不连通的点对个数(对tarjan理解深刻)

    2018-12-03

    bzoj4558:容斥原理+计算几何计数。

    bzoj1122:首先确定修改多少次使加号减号的差满足p-q的限制,然后减号尽量在后面改,加号在前面改,枚举旋转的操作,求前缀最小值。

    bzoj1117:贪心,越晚放越好,记录两个数组,距离当前点为i的有多少需要被覆盖,和从当前点出发,可以覆盖距离为i点多少个。

    bzoj1125:基环树。

    bzoj4010:反图拓扑求字典序最大的方案(堆维护)

    2018-12-04

    bzoj5462:二分+set+线段树套set,每个叶子结点一个set或者堆。

    luogu4292:分数规划+点分治/长链剖分。

    bzoj3620:kmp+暴力。

    2018-12-05

    bzoj1912:求两遍直径,求出第一条后权值设为-1,再求一次。两次bfs不能求带权直径!

    bzoj1130:有效状态为$C_{26}^{13}$,所以直接搜索就好了。

    CF959E:找规律,求$sum_{i=1}^{n} lowbit(i)$

    bzoj4826: 莫队+st表+单调栈。类似bzoj4540。正解线段树。

    2018-12-06

    bzoj2243:链剖+线段树。

    bzoj2456:求众数,空间1M,不要用太多头文件和模板库。

    bzoj2809:dfs序+主席树。正解是可并堆(左偏树)。

    bzoj3295:cdq分治+树状数组。

    50道题,完结撒花~~~

    大多是POI的题和bzoj前两页的题。开始时没加时间,后来心血来潮,加上了时间。

  • 相关阅读:
    java 第二次作业
    Java上机作业5.7
    Java上机作业4.30
    Java第八周作业
    上机作业4.23
    第七周作业
    4.16上机作业
    第六周作业
    Java上机作业4.9
    Java4.2上机作业
  • 原文地址:https://www.cnblogs.com/mjtcn/p/10014560.html
Copyright © 2011-2022 走看看