Fork me on GitHub

随笔分类 -  OI

摘要:题目: "P5124 [USACO18DEC]Teamwork" 解析: 动态规划,设$f[i]$表示到第$i$位的最大值,我们枚举i之前的j个位置$(j using namespace std; const int N = 1e6 + 10; int n, m, num; int a[N], f[ 阅读全文
posted @ 2019-11-03 09:28 Chrety 阅读(320) 评论(0) 推荐(0)
摘要:题目: "P2052 [NOI2011]道路修建" 解析: 维护一下每个子树的$size$,这条边的贡献就是$((n size[v]) size[v])\times w=(n 2\times size[v])\times w$,$v$是这条边所到达的点,$w$是边权 代码: 阅读全文
posted @ 2019-10-29 16:31 Chrety 阅读(230) 评论(0) 推荐(1)
摘要:题目 "P2352 队爷的新书" 解析 题目意思是 给你n个区间,选择一个数x,使$x\times覆盖x的区间个数$\ 最大 和 "这个题" 差不多 差分,离散化一下,在区间的$l$处$+1$,$r+1$处$−1$,不同的是,我们要求的是最大乘积,显然相同的覆盖数下,$i$越大,答案就越大,所以我们 阅读全文
posted @ 2019-10-28 21:00 Chrety 阅读(258) 评论(0) 推荐(0)
摘要:题目 "P3028 [USACO10OCT]汽水机Soda Machine" 解析 差分,看到$a[i]\leq 1e9$,离散化一下,在$l$处$+1$,$r+1$处$ 1$,这样就只有$2n$个点了,再按位置排一下序,扫一遍记录答案就可以了。 需要注意的是,如果在某个位置既有$+1$操作又有$ 阅读全文
posted @ 2019-10-28 19:26 Chrety 阅读(327) 评论(0) 推荐(0)
摘要:题目: "P2995 [USACO10NOV]牛的照片Cow Photographs" "P4545 [USACO10NOV]奶牛的图片Cow Photographs" "SP7809 COWPIC Cow Photographs" 解析: 一个环形的逆序对 最大的数可以放在最小的数的左边而不贡献逆 阅读全文
posted @ 2019-10-21 10:40 Chrety 阅读(241) 评论(0) 推荐(0)
摘要:题目: "P1523 旅行商简化版" 解析 可以看做是两个人同时从西往东走,经过不一样的点,走到最东头的方案数 设$f[i][j]$表示一个人走到i,一个人走到j的最短距离($i using namespace std; const int N = 1010; int n, m; double f[ 阅读全文
posted @ 2019-10-17 16:07 Chrety 阅读(279) 评论(1) 推荐(0)
摘要:题目: "P2704 [NOI2001]炮兵阵地" 解析: 和互不侵犯一样 就是多了一格 用$f[i][j][k]$表示第i行,上一行状态为$j$,上上行状态为$k$的最多的可以放的炮兵 发现$100\times 1024\times 1024$开不下 还是通过简单的搜索发现就算$m==10$时合法 阅读全文
posted @ 2019-10-11 16:49 Chrety 阅读(357) 评论(5) 推荐(0)
摘要:题目: "poj3045 Cow Acrobats" 解析: 贪心题,类似于国王游戏 考虑两个相邻的牛$i$,$j$ 设他们上面的牛的重量一共为$sum$ 把$i$放在上面,危险值分别为$x_1=sum s_i$,$ x_2=sum+w_i s_j$ 把$j$放在上面,危险值分别为$x_3=sum 阅读全文
posted @ 2019-10-11 14:14 Chrety 阅读(220) 评论(0) 推荐(1)
摘要:题目: " 10172. 「一本通 5.4 练习 1」涂抹果酱" 解析: 三进制的状压DP 经过简单的打表发现,在$m=5$时最多有$48$种合法状态 然后就向二进制一样枚举当前状态和上一层的状态进行转移就好了 由于第$k$行是给定的,所以转移时要特判一下第$k$行,并且注意下一$k=1$的情况 设 阅读全文
posted @ 2019-10-10 19:59 Chrety 阅读(370) 评论(6) 推荐(0)
摘要:题目: "loj 10078. 新年好" 解析: 亲戚只有五个,可以把它们看成2,3,4,5,6号点,分别跑最短路,记录一下距离,然后DFS一下 这题非常玄学,我开了一个$12 12$的数组,没有离散化,竟然过了,开到$5050 5050$就RE,玄学 代码: 阅读全文
posted @ 2019-08-31 09:51 Chrety 阅读(256) 评论(1) 推荐(0)
摘要:题目: "1008: [HNOI2008]越狱" 解析: 水一发题解~~别的题太麻烦不想写,就写一下这种zz题~~ 利用乘法原理,共有$m^n$种方法关押罪犯,使相邻的互不相同的方法有$m (m 1)^{n 1}$ 所以答案就是$m^n m (m 1)^{n 1}$ 代码: 阅读全文
posted @ 2019-08-23 20:03 Chrety 阅读(189) 评论(1) 推荐(0)
摘要:题目: "1832: [AHOI2008]聚会" 解析: 偶尔做做水题挺爽的 两两之间先求出LCA,发现至少有两个LCA是相同的,这个重复LCA也是深度最浅的那个,那我们就选择那个不重复的LCA,因为若选这个重复的LCA的话,这个重复的LCA到另一个LCA的路径会走两遍,反之只会走一遍 三点间的距离 阅读全文
posted @ 2019-08-19 19:45 Chrety 阅读(298) 评论(0) 推荐(0)
摘要:题目: "1799: [Ahoi2009]self 同类分布" 解析: 设$f[pos][SumDigit][rem]$为第$pos$位,各位数和为$SumDigit$,当前余数为$rem$的数的个数 要求$n$可以被各位数整除,也就是$n\%SumDigit==0$ 这个题,我们枚举一下各位数的和 阅读全文
posted @ 2019-08-16 10:10 Chrety 阅读(343) 评论(0) 推荐(0)
摘要:题目: "3209: 花神的数论题" 解析: 二进制的数位DP 因为$[1,n]$中每一个数对应的二进制数是唯一的,我们枚举$1$的个数$k$,计算有多少个数的二进制中有$k$个$1$ 设$n$的二进制一共有$num$位,有$sum[i]$个数的二进制中有$k$个$1$, 答案就是$\prod_{i 阅读全文
posted @ 2019-08-15 15:57 Chrety 阅读(262) 评论(0) 推荐(0)
摘要:题目: "1040: [ZJOI2008]骑士" 解析: 假设骑士$u$讨厌骑士$v$,我们在$u$,$v$之间连一条边,这样我们就得到了一个奇环树(奇环森林),既然是一颗奇环树,我们就先考虑把环断开,设断开边边连接的两点是$rt1$,$rt2$,断环的话直接标记这条边不能经过就好了 根据题意,我们 阅读全文
posted @ 2019-08-15 07:36 Chrety 阅读(257) 评论(0) 推荐(0)
摘要:题目: "1864: [Zjoi2006]三色二叉树" 解析: 用$f[u][0/1/2]$表示以$u$为根,颜色为绿/红/蓝时最多的数量 转移没啥好说的 $f[u][0] = max(f[l][1] + f[r][2], f[l][2] + f[r][1]) + 1$ $f[u][1/2] = m 阅读全文
posted @ 2019-08-14 19:50 Chrety 阅读(214) 评论(0) 推荐(0)
摘要:题目: "1003: [ZJOI2006]物流运输" 解析: 最短路+DP 我们用$no[i][j]$来表示$i$在第$j$天不可以经过 用$cost[i][j]$表示第$i$天到第$j$天的花费 在最短路的时候判断一下在第$i$天到第$j$天中哪些码头不可以走,在做最短路时跳过 最后设f[i]表示 阅读全文
posted @ 2019-08-13 17:16 Chrety 阅读(207) 评论(0) 推荐(0)
摘要:题目: " 10056. 「一本通 2.3 练习 5」The XOR longest Path" 解析: 做完 " 10051" 后就不是很难了 继续利用异或的性质有$dis(u,v) = dis(1,u)\oplus dis(1,v)$ 把边权放到点上,然后字典树求最大异或值 代码 阅读全文
posted @ 2019-07-29 22:31 Chrety 阅读(274) 评论(0) 推荐(0)
摘要:题目: " 10051. 「一本通 2.3 例 3」Nikitosh 和异或" 解析: 首先我们知道一个性质$x\oplus x=0$ 我们要求$$\bigoplus_{i = l}^ra_i$$的话,相当于求$$(\bigoplus_{i = 1}^la_i)\oplus (\bigoplus_{ 阅读全文
posted @ 2019-07-29 19:16 Chrety 阅读(534) 评论(0) 推荐(0)
摘要:题目: "P3121 [USACO15FEB]审查(黄金)Censoring (Gold)" 解析: 多字符串匹配,首先想到AC自动机 建立一个AC自动机 因为有删除和拼接这种操作,考虑用栈维护 顺着文本串匹配的方向走,将经过的节点放入栈中,若匹配到一个模式串,就将这个模式串弹出,从栈顶开始继续走 阅读全文
posted @ 2019-07-29 18:07 Chrety 阅读(235) 评论(0) 推荐(0)