自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 BZOJ1609 [Usaco2008 Feb]Eating Together麻烦的聚餐 DP

题应该人人都会做,主要用这题练习一下对拍 因为我的暴力跑得太慢了 就把数据范围改小了一点,用于检测正确性足够了(大概) BZOJ1609[dp].cpp#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn = 30007;#d...

2018-08-27 14:33:55 268

原创 BZOJ1576: [Usaco2009 Jan]安全路经Travel 最短路径树+并查集

不难发现求出最短路径树后,每一条非树边(u, v) 可以用来更新u~lca(u, v), v~lca(u,v)这两条链上的点 对于一个可被更新的点x,他的答案可以被更新为dis[u] + dis[v] + 该非树边的边权 - dis[x] 似乎和dis[x]无关 那么可以按dis[u] + dis[v] + 边权给非树边排序 取最小的来更新就好 这里有一个并查集更新链上结点信息的姿势:令...

2018-08-26 05:05:17 233

原创 BZOJ1588: [HNOI2002]营业额统计 Splay求前驱-后继-插入

第一次码splay,参考了多方代码。 由于每次插入的数都旋转到根,求前驱、后继的函数就统统改为求根的前驱-后继了 其他splay的经典操作还没涉及到,慢慢练吧:P#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namesp

2018-08-24 21:13:30 237

原创 BZOJ1026: [SCOI2009]windy数 数位dp模板

f[i][j]表示当前有i位 第i位数字是j的合法windy数有几种 统计1~x的答案时先考虑位数比x少的,然后枚举1~{x的某一位-1} 加入答案 注意个位上的数要加1 不然取不到闭区间#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>

2018-08-23 20:25:22 140

原创 BZOJ3295: [Cqoi2011]动态逆序对 CDQ分治

cdq模板题 把删除操作的时间倒过来就变成了插入,转三维偏序 用和陌上花开一样的方法做就行,而且没有重复元素,不用离散化 插入一个数对答案的贡献要考虑左上角的元素个数与右下的元素个数,做完一次把x,y全部换成n-x+1与n-y+1就可以统计原坐标系中的右下角元素个数了 记得long long#include<cstdio>#include<cstring>#i...

2018-08-22 22:20:48 139

原创 BZOJ1477: 青蛙的约会 exgcd

(m−n)x+Ly=y−x(m−n)x+Ly=y−x(m-n)x+Ly=y-x 不妨设m−n=a,L=b,y−x=cm−n=a,L=b,y−x=cm-n=a,L=b,y-x=c 原式化为ax+by=cax+by=cax+by=c 因为ax0+by0=d,d=gcd(a,b)ax0+by0=d,d=gcd(a,b)ax_0+by_0=d, d = gcd(a,b)可以用exgcd搞 如果d|...

2018-08-21 21:41:13 179

原创 BZOJ1912: [Apio2010]patrol 巡逻 树的直径

最致命的bug是没有bug。 题面里最后一张图:加两条边以后答案为15 我跑出来一直是10 于是与空气斗智斗勇半个小时+ k = 1的时候不难发现求个直径就完事了 k = 2的时候就大力讨论 不会有新加的边在第一次加的边形成的环中使答案最优 重复统计的地方 边权搞成-1完事了 以及第二次有了负权边就不能dfs/bfs求直径了 得dp 因为这个wa了好久。 不说了太困了#inclu...

2018-08-21 01:29:06 186

原创 BZOJ3732:Network kruskal重构树

题面 kruskal重构树:kruskal的过程中每通过一条边合并两个集合 就新建一个结点作为代表这两个集合的结点的父亲,点权为该边边权 叶子结点都是原图中的点== 那么不难发现父节点点权都大于子节点 刚好使询问的两点所在集合合并的边的边权就是所求 即重构树上lca的点权#include<cstdio>#include<cstring>#include&lt...

2018-08-20 00:44:47 147

原创 BZOJ1031: [JSOI2007]字符加密Cipher Burrows-Wheeler变换 后缀数组

https://www.lydsy.com/JudgeOnline/problem.php?id=1031题目里说的这加密算法是后缀数组的经典应用之一。。断环成链即可, 注意复制原数组时int和char分开赋值,否则会出玄学错误。人傻bug多裸题还交了好几发才ac..z要赋值n << 1 | 1不然会RE我也不知道为啥 如果哪位大爷知道了还请教教我#inclu...

2018-08-19 11:28:42 212

原创 BZOJ4245: [ONTAK2015]OR-XOR 按位贪心

题面 在天津大爷一顿教育下 + 看题解水过了这题。 为什么我会去想奇奇怪怪的dp… 二进制求全部或起来、异或起来之类的一顿位运算操作后答案最大或最小的题都可以从高位开始按位贪心 比如10000总比01111大 这样。 确保最高位是1/0能保证更优 先搞出异或前缀和 然后按高位向低位贪心 如果对于某一位有大于等于m个异或前缀和是0,且这一位上1出现偶数次,就可以分成m段区间使答案上这一位...

2018-08-17 14:02:33 222

原创 BZOJ1040: [ZJOI2008]骑士 基环树DP

题面 一般的基环树DP 处理环时的思路是断环成链,转为序列上的dp 其他地方同树形DP 但这样写起来挺麻烦 这道题可以以一种更简洁的方法处理: 把图建成无向图,用dfs找环。对于每个环,任意切断其环上的一条边,并记录两端点编号。 一颗基环树砍掉一条环上的边后即变成了一颗树,可以在上面做树形dp 由于我们建的是无向图,可以从一个端点出发做一次树形dp,另一个端点再做一次 两端点的答案中...

2018-08-16 20:10:59 218

原创 BZOJ3940: [Usaco2015 Feb]Censoring AC自动机+栈

物理作业写得头昏脑涨T_T 建议做这题之前先做3942 做法同3942 只是这次移到了AC自动机上做匹配 用一个数组记录匹配到栈中每个位置时的结点编号即可, 每次遇到有dangerdangerdanger标记的结点 就把toptoptop减去该串长度, 并从新toptoptop对应的结点继续搜索 注意每次不用把dangerdangerdanger编号清零/*************...

2018-08-15 22:44:28 149

原创 BZOJ2200: [Usaco2011 Jan]道路和航线 拓扑排序+最短路

题面挺好的题。 题意十分清晰, 求S出发到每个点的最短路。 由于负权边的存在,不可以直接用dijkstra求解, 考虑spfa。 spfa的理论复杂度为O(T(R+P))O(T(R+P))O(T(R+P))过不去,实际上也会TLE(好像加了SLF可以水过去一开始想了一个非常naive的做法:用dijkstra,把每条边的边权+10001, 记录最短路上的边数, 统计答案时减掉即可...

2018-08-15 14:37:21 1199

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除