07 2018 档案

摘要:题目链接 "bzoj1257: [CQOI2007]余数之和" 题解 数论分块,乘等差数列求和 代码 阅读全文
posted @ 2018-07-31 21:12 zzzzx 阅读(145) 评论(0) 推荐(0)
摘要:题目链接 "bzoj2456: mode" 题解 不同的随机消去,超过一半的最后一定有余 代码 阅读全文
posted @ 2018-07-31 20:28 zzzzx 阅读(110) 评论(0) 推荐(0)
摘要:题目链接 "bzoj1205: [HNOI2005]星际贸易" 题解 辣鸡题面,毁我青春 辣鸡题面,毁我青 辣鸡题面,毁我 辣鸡题面,毁 第一问,背包dp 第二问 问题转化为在一个序列上经过好多点走到终点, 符合各项条件的情况下费用最小,其中有某些点必须经过。 g[u][fu]表示将要离开点u而还没 阅读全文
posted @ 2018-07-31 20:19 zzzzx 阅读(176) 评论(0) 推荐(0)
摘要:%了发树上莫队 nlognsqrt(n) 阅读全文
posted @ 2018-07-29 21:58 zzzzx 阅读(925) 评论(0) 推荐(0)
摘要:题目链接 "uoj 179. 线性规划" 题解 引入基向量$x_{i + n}$,将约束$\sum_{i = 1}^{m}a_{ij}x_j \leq b_i$ 写为 $x_{i + n} = b_i \sum_{i = 1}^m a_{ij} x_j $ 目标函数 $\sum_{i = 1}^n 阅读全文
posted @ 2018-07-29 18:20 zzzzx 阅读(255) 评论(0) 推荐(0)
摘要:题目链接 "bzoj4001: [TJOI2015]概率论" 题解 生成函数+求导 设$g(n)$表示有$n$个节点的二叉树的个数,$g(0) = 1$ 设$f(x)$表示$n$个节点的二叉树叶子节点的个数,$f_0 = 0,f_1 = 1$ 那么$ans = \frac{f_i}{g_i}$ 对于 阅读全文
posted @ 2018-07-25 18:11 zzzzx 阅读(273) 评论(0) 推荐(0)
摘要:线段树优化dij 哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈 我可能是个智障 c++ // luogu judger enable o2 pragma GCC diagnostic error " std=c++11" pragma GCC optimize(" fdelete null pointer ch 阅读全文
posted @ 2018-07-25 08:59 zzzzx 阅读(242) 评论(0) 推荐(0)
摘要:题目链接 "bzoj2101: [Usaco2010 Dec]Treasure Chest 藏宝箱" 题解 dp 代码 c++ include using namespace std; inline int read() { int x = 0,f = 1; char c = getchar(); 阅读全文
posted @ 2018-07-24 21:42 zzzzx 阅读(217) 评论(0) 推荐(0)
摘要:题目链接 "bzoj 2212: [Poi2011]Tree Rotations" 题解 一个子树之内交换儿子,对子树之外没有影响 所以对于每个节点的子数,交换与不交换,左右子树间形成的逆序对取min 每个节点维护权值线段树,线段树合并 代码 c++ include using namespace 阅读全文
posted @ 2018-07-24 19:58 zzzzx 阅读(100) 评论(0) 推荐(0)
摘要:题目链接 "luogu [TJOI2007]线段" 题解 dp[i][0/1]第i行在左/右端点的最短路 瞎转移 代码 c++ include using namespace std; inline int read() { int x= 0 ,f = 1; char c = getchar(); 阅读全文
posted @ 2018-07-23 21:33 zzzzx 阅读(153) 评论(0) 推荐(0)
摘要:题目链接 "luogu P2770 航空路线问题" 题解 求两条点数最多的互不相交路径 拆点限流,连流量1费用2的边,起.终点流量为2的边 代码 c++ include using namespace std; inline int read() { int x = 0,f = 1; char c 阅读全文
posted @ 2018-07-23 21:26 zzzzx 阅读(222) 评论(0) 推荐(0)
摘要:题目链接 "bzoj2302: [HAOI2011]Problem c" 题解 s[i]表示m个人中编号 i的人数 设dp[i][j] 表示在剩余人中编号大于i的有j的方案数 $dp[i][j] = \sum_{k = 0}^j dp[i + 1][k] C_j^{j k};$ 代码 c++ inc 阅读全文
posted @ 2018-07-23 19:25 zzzzx 阅读(226) 评论(0) 推荐(0)
摘要:题目链接 "bzoj3545: [ONTAK2010]Peaks" 题解 对于 using namespace std; inline int read() { int x = 0,f = 1; char c = getchar(); while(c '9') {if(c == ' ')f = 1; 阅读全文
posted @ 2018-07-23 15:33 zzzzx 阅读(176) 评论(0) 推荐(0)
摘要:题目链接 "loj 2537. 「PKUWC2018」Minimax" 题解 设$f_{u,i}$表示选取i的概率,l为u的左子节点,r为u的子节点 $f_{u,i} = f_{l,i}(p \sum_{j i}f_{r,j}) + f_{r,i}(p\sum_{j i}f_{l,j}) $ 对于每 阅读全文
posted @ 2018-07-22 20:33 zzzzx 阅读(326) 评论(0) 推荐(0)
摘要:题目链接 "loj 2718. 「NOI2018」归程" 题解 按照高度做克鲁斯卡尔重构树 那么对于询问倍增找到当前点能到达的高度最小可行点,该点的子树就是能到达的联通快,维护子树中到1节点的最短距离 spfa她死了...同步赛没写的说... 似乎前两题比去年简单些....连蒟蒻我都可做前两题的说 阅读全文
posted @ 2018-07-22 20:27 zzzzx 阅读(185) 评论(0) 推荐(0)
摘要:题目链接 "loj 2721. 「NOI2018」屠龙勇士" 题解 首先可以列出线性方程组 方程组转化为在模p意义下的同余方程 因为不保证pp 互素,考虑扩展中国剩余定理合并 方程组是带系数的,我们要做的是在%p意义下把系数除过去,(系数为atk[i]) (atk[i],p[i]) 不等于1时无逆元 阅读全文
posted @ 2018-07-21 09:01 zzzzx 阅读(312) 评论(0) 推荐(0)
摘要:题目链接 "bzoj4668: 冷战" 题解 按秩合并并查集,每次增长都是小集合倍数的两倍以上,层数不超过logn 查询路径最大值 LCT同解 代码 c++ include using namespace std; inline int read() { int x = 0,f = 1; char 阅读全文
posted @ 2018-07-19 19:24 zzzzx 阅读(243) 评论(0) 推荐(0)
摘要:题目链接 "bzoj1211: [HNOI2004]树的计数" 题解 prufer序 可重排列计数 代码 c++ include using namespace std; define int long long int n = 0; int b[10007]; int cnt[10007]; vo 阅读全文
posted @ 2018-07-19 19:21 zzzzx 阅读(113) 评论(0) 推荐(0)
摘要:题目链接 "bzoj1037: [ZJOI2008]生日聚会Party" 题解 dp[i][j][x][y] 有i个男生j个女生其中任意一段男生最多比女生多x个 女生最多比男生多y个 注意一下边界...有点毒 苟活者在淡红的血色中会依稀看到微茫的希望 代码 c++ include using nam 阅读全文
posted @ 2018-07-19 19:12 zzzzx 阅读(613) 评论(2) 推荐(0)
该文被密码保护。
posted @ 2018-07-19 17:15 zzzzx 阅读(71) 评论(16) 推荐(2)
摘要:题目链接 "HDU 5833 Zhu and 772002 高斯消元" 题解 完全平方数有因子的偶数次幂乘积构成 对于因数个数这就构成了%2意义下的方程组,对于因子列异或方程组 求自由元的自由组合方案数 因为不是很熟悉bitset加上hdu巨坑评测机,然后调了一下午? 代码 c++ include 阅读全文
posted @ 2018-07-19 16:23 zzzzx 阅读(170) 评论(0) 推荐(0)
摘要:题目链接 "HDU3915 Game 高斯消元" 题解 求异或方程组自由元的子集个数 高斯消元求秩,内存溢出好神 代码 阅读全文
posted @ 2018-07-18 21:04 zzzzx 阅读(398) 评论(1) 推荐(1)
摘要:题目链接 "Codeforces Round 448 C. Square Subsets" 题解 质因数 质因数 = 平方数,问题转化成求异或方程组解的个数 求出答案就是$2^{自由元 1}$ ,高消求一下矩阵的秩,完了 或者 由于数很小, 我们只需要对于每个数的质因数装压 对这组数求线性基,n 线 阅读全文
posted @ 2018-07-16 11:08 zzzzx 阅读(158) 评论(0) 推荐(0)
摘要:题目链接 "bzoj2938: [Poi2000]病毒" 题解 简单的来说,就是构造一个只含0和1的字符串,不能与Trie完成匹配。 dfs判一下trie图上是否存在与根节点相连没有串结尾的环 也就是有串结尾的点和fail指针指向串结尾的点,或指向不能走的点(也就是之前那一坨)的点也不能在环中 代码 阅读全文
posted @ 2018-07-12 21:27 zzzzx 阅读(141) 评论(0) 推荐(0)
摘要:题目链接 "bzoj1925: [Sdoi2010]地精部落" 题解 波动子序列DP,建议食用luogu题解第一个https://www.luogu.org/problemnew/solution/P2467 f[i,j]表示1到i的排列中第一个数的取值范围是[1,j]且第二个数比第一个数大的数量。 阅读全文
posted @ 2018-07-12 08:31 zzzzx 阅读(144) 评论(0) 推荐(0)
摘要:题目链接 "bzoj1077: [SCOI2008]天平" 题解 利用查分约束 floyed求出差值的上下界 暴力 c++ include using namespace std; inline int read() { int x = 0,f = 1; char c = getchar(); wh 阅读全文
posted @ 2018-07-12 08:23 zzzzx 阅读(275) 评论(0) 推荐(0)
摘要:题目链接 "bzoj4008: [HNOI2015]亚瑟王" 题解 算出每张牌在r轮中打出的概率乘上权值 i在r轮中出现的概率$1 (1 p[i]) ^ r $ 保证i本次为第一次打出概率,前面打了j张 概率$1 (1 p[i])^{r j} $ 设$dp[i][j]$ 表示,前i张牌,打出了j张的 阅读全文
posted @ 2018-07-11 22:33 zzzzx 阅读(174) 评论(0) 推荐(0)
摘要:题目链接 "bzoj3932: [CQOI2015]任务查询系统" 题解 对于每个时间点建立权值主席树 维护树中前k小的前缀和 代码 阅读全文
posted @ 2018-07-11 22:28 zzzzx 阅读(155) 评论(0) 推荐(0)
摘要:题目链接 "luoguP4360 [CEOI2004]锯木厂选址" 题解 dis:后缀和 sum:前缀和 补集转化,减去少走的,得到转移方程 dp[i] = min(tot sumj disj (sumi sumj) disi 不需要斜率优化吧?反正也是个SB式子 代码 c++ include us 阅读全文
posted @ 2018-07-11 08:00 zzzzx 阅读(139) 评论(0) 推荐(0)
摘要:#题目链接 CodeForces - 997C Sky Full of Stars #题解 有空补一下套题题解Qwq,然而我只是pilpuQwq 设$f(i,j)$表示至少有i行j列一种颜色的方案数 可以发现,当ij有相交时颜色只能为一种 那么对于$i=0 || j=0$时$f(i,j) = C_n 阅读全文
posted @ 2018-07-09 09:10 zzzzx 阅读(246) 评论(0) 推荐(0)
摘要:题目链接 "bzoj4196: [Noi2015]软件包管理器" 题解 看来我还没忘Qwq 一个std随便打,12 min 1A,刺激,好吧,其实很慢 题解 c++ include using namespace std; inline int read() { int x = 0,f = 1; c 阅读全文
posted @ 2018-07-09 08:18 zzzzx 阅读(129) 评论(0) 推荐(0)
摘要:题目链接 "bzoj4034: [HAOI2015]树上操作" 题解 树剖线段树 代码 c++ include using namespace std; inline int read() { int x = 0,f = 1; char c = getchar(); while(c '9'){if( 阅读全文
posted @ 2018-07-09 08:16 zzzzx 阅读(143) 评论(0) 推荐(0)
摘要:题目链接 "bzoj1220: [HNOI2002]跳蚤" 题解 根据裴蜀定理,不定方程的解为未知数的gcd,所以选取的n个数的gcd为1 那么n 1个数保证没有公约数为m的约数,枚举质因数容斥 质因数的个数上届是log的啊,我真傻,还想了半天QAq 那啥,bzoj高精,你们去做吧Qwq 代码 c+ 阅读全文
posted @ 2018-07-08 08:38 zzzzx 阅读(159) 评论(0) 推荐(0)
摘要:题目链接 "bzoj1017: [JSOI2008]魔兽地图DotR" 题解 设dp[i][j][k]表示以i为根的子树中,有j个i节点用于和成上层,花费为k的最大收益 枚举合成l个i节点,然后用剩余的钱在子树中制造一些别的power g[i][j]表示对于当前子树的前i棵子树花费j能得到的最大收益 阅读全文
posted @ 2018-07-08 08:28 zzzzx 阅读(237) 评论(0) 推荐(0)
摘要:题目链接 "bzoj1816: [Cqoi2010]扑克牌" 题解 还是挺妙的 一套牌只能用一张Joker,那么贪心是不对的 若能够组成k套牌,那么joker一定有种方法在k套牌中出现 include include inline int read() { int x = 0,f = 1; char 阅读全文
posted @ 2018-07-07 11:22 zzzzx 阅读(133) 评论(0) 推荐(0)
摘要:题目链接 "bzoj3566: [SHOI2014]概率充电器" 题解 考虑一个点不连通的概率 计算概率的式子 $P(A)$表示$A$发生的概率 $P(A+B)$表示$A,B$至少发生一个的概率 $P(A+B)=P(A)+P(B) P(AB)$ $P(A)=(P(A+B) P(B))/(1 P(B) 阅读全文
posted @ 2018-07-07 11:11 zzzzx 阅读(134) 评论(0) 推荐(0)
摘要:题目链接 "luoguP3871 [TJOI2010]中位数" 题解 平衡树 代码 c++ include include include include define LL long long inline int read() { int x = 0,f = 1;char c = getchar 阅读全文
posted @ 2018-07-05 21:34 zzzzx 阅读(132) 评论(0) 推荐(0)
摘要:题目链接 "luogu P2439 [SDOI2005]阶梯教室设备利用" 题解 dp 代码 c++ include include include include define LL long long inline int read() { int x = 0,f = 1;char c = ge 阅读全文
posted @ 2018-07-05 20:01 zzzzx 阅读(162) 评论(0) 推荐(0)
摘要:题目链接 "bzoj1559: [JSOI2009]密码" 题解 构造长度为n包含所有模式串的的串,求方案数 构造AC自动机的trie图 对于模式串可以装压dp 设dp[i][j][s]表示位于字符串第i位,位于trie图上的第j个节点,状态为s方案数 转移边为trie图 考虑ans include 阅读全文
posted @ 2018-07-05 19:59 zzzzx 阅读(227) 评论(0) 推荐(1)
摘要:题目链接 "bzoj3172: [Tjoi2013]单词" 题解 在插入单词时对于每个点都标记一下 构建fail树 因为AC自动机节点维护前缀,fail树的关系是公共后缀,那么可以发现,答案就是该单词的fail子树总价值 代码 c++ include include include include 阅读全文
posted @ 2018-07-05 19:55 zzzzx 阅读(84) 评论(0) 推荐(0)
摘要:题目链接 "bzoj1196: [HNOI2006]公路修建问题" 、 题解 二分,判断能否连通 代码 c++ include include include include define LL long long inline int read() { int x = 0,f = 1;char c 阅读全文
posted @ 2018-07-05 19:53 zzzzx 阅读(117) 评论(0) 推荐(0)
摘要:题目链接 "bzoj2660: [Beijing wc2012]最多的方案" 题解 对于一个数的斐波那契数列分解,他的最少项分解是唯一的 我们在拆分成的相临两项之间分解后者,这样形成的方案是最优且不重的 我们可以把它的分解某一项拆分 设dp[i][1/0]表示 对于最少拆分成的第i项斐波那切数拆不拆 阅读全文
posted @ 2018-07-05 19:51 zzzzx 阅读(137) 评论(0) 推荐(0)
摘要:题目链接 "bzoj1131: [POI2008]Sta" 题解 树形dp,我们可以预处理以1为根子树大小与ans,然后就可以O1转移 代码 c++ / 我们可以预处理以1为根子树大小与ans,然后就可以O1转移 / include include include const int maxn = 阅读全文
posted @ 2018-07-04 21:17 zzzzx 阅读(132) 评论(0) 推荐(0)
摘要:题目链接 "bzoj3747: [POI2015]Kinoman" 题解 维护pre[i],为i节点前一个与它相同的点的位置 固定右端点,向左计算,得到区间内的价值最大字段,怎么计算呢,钦定这个点一定只看一遍,那么区间pre[i] + 1到i的总价值直接加上i的价值 那么我们就只需要在pre[i]到 阅读全文
posted @ 2018-07-04 21:15 zzzzx 阅读(180) 评论(0) 推荐(0)
摘要:题目链接 "luogu P3592 [POI2015]MYJ" 题解 区间dp 设f[l][r][k]表示区间l到r内最小值 =k的最大收益 枚举为k的位置p,那么包含p的区间答案全部是k 设h[i][j]表示 当前区间穿过i,且c =j的区间数量,对i的。 然后我们可以做差分,扫一遍,递推出来 $ 阅读全文
posted @ 2018-07-04 21:12 zzzzx 阅读(155) 评论(0) 推荐(0)
摘要:题目链接 "luogu P1357 花园" 题解 开始读错题了,QAq,只看了m80pts 对于转移矩阵,矩阵快速幂优化装态转移的递推 100pts 那么状态S答案为矩阵[S][S]的值 代码 c++ include include include include define LL long lo 阅读全文
posted @ 2018-07-04 21:06 zzzzx 阅读(115) 评论(0) 推荐(0)
摘要:题目链接 "bzoj3295: [Cqoi2011]动态逆序对" 题解 好神呐,删除转化为插入,然后得到了插入的时间关系 然后问题就转化成了三维偏序问题 代码 阅读全文
posted @ 2018-07-03 20:45 zzzzx 阅读(69) 评论(0) 推荐(0)
摘要:题目链接 "bzoj3262: 陌上花开" 题解 三维偏序 第一维sort,第二cdq分治,第三bit 代码 c++ include include include inline int read() { int x = 0,f = 1; char c = getchar(); while(c '9 阅读全文
posted @ 2018-07-02 21:37 zzzzx 阅读(118) 评论(0) 推荐(0)
摘要:题目链接 "bzoj1176: [Balkan2007]Mokia" 题解 cdq分治 代码 c++ include include inline int read() { int x = 0,f = 1; char c = getchar(); while(c '9'){if(c == ' ')f 阅读全文
posted @ 2018-07-02 21:35 zzzzx 阅读(164) 评论(0) 推荐(0)
摘要:没什么好说的吧QWq cdq分治 c++ include include //using namespace std; inline int read() { int x = 0,f = 1; char c = getchar() ; while(c '9'){if(c == ' ') f = 1; 阅读全文
posted @ 2018-07-02 21:34 zzzzx 阅读(161) 评论(0) 推荐(0)
摘要:题目链接 "luogu P4115 Qtree4" 题解 动态点分治,和上一题一样.同样三个堆.就是带权,用边权替换深度就好 为什么要单独写这个题解呢,因为我卡常卡了一天....据说树剖比rmq快? 在第24次AC 同样也有更有做法 代码 c++ include include include in 阅读全文
posted @ 2018-07-01 09:07 zzzzx 阅读(234) 评论(0) 推荐(0)
摘要:题目链接 "bzoj1095: [ZJOI2007]Hide 捉迷藏" 题解 建出点分树,每次修改一个结点只影响它到树根的一条链暴力修改 实现的时候用三层带修改堆来维护 B.维护每个重心存所有子树到其点分树父亲节点de距离 C.维护子树中的点到根的距离 ,我们可以用子节点的B来更新它 A.全局一个堆 阅读全文
posted @ 2018-07-01 09:02 zzzzx 阅读(206) 评论(0) 推荐(0)
摘要:题目链接 "bzoj2599: [IOI2011]Race" 题解 点分治,用t[k]表示子树中距离root为k 的最小边路径 转移时先与前边子树和合并更新答案,然后更新距离父节点最优值,这样就保证不在同一子树内了 每次分层的时候记得清除答案 代码 c++ include include inclu 阅读全文
posted @ 2018-07-01 08:39 zzzzx 阅读(158) 评论(0) 推荐(0)