【学术篇】SDOI2008 山贼集团】的更多相关文章

这个题是一道树形dp+状压dp二合一,先预处理每种组合会有什么额外的费用,然后在树上dp就行了. 题干: 题目描述 某山贼集团在绿荫村拥有强大的势力,整个绿荫村由N个连通的小村落组成,并且保证对于每两个小村落有且仅有一条简单路径相连.小村落用阿拉伯数字编号为1,,,,…,n,山贼集团的总部设在编号为1的小村落中.山贼集团除了老大坐镇总部以外,其他的P个部门希望在村落的其他地方建立分部.P个分部可以在同一个小村落中建设,也可以分别建设在不同的小村落中.每个分部到总部的路径称为这个部门的管辖范围,于…
题目描述 某山贼集团在绿荫村拥有强大的势力,整个绿荫村由\(N\)个连通的小村落组成,并且保证对于每两个小村落有且仅有一条简单路径相连. 小村落用阿拉伯数字编号为\(1,2,3,4, \dots ,n\),山贼集团的总部设在编号为\(1\)的小村落中. 山贼集团除了老大坐镇总部以外,其他的\(P\)个部门希望在村落的其他地方建立分部. \(P\)个分部可以在同一个小村落中建设,也可以分别建设在不同的小村落中.每个分部到总部的路径称为这个部门的管辖范围,于是这\(P\)个分部的管辖范围可能重叠,或…
今天一月一号.. 突然想安利一波我的中二的2017总结... 传送门1:codevs 传送门2:luogu 时限5s和1s的区别(你没看我传送门都给的大牛分站了) 现在不仅线筛.. 有负数的快读都打不对了.. 来比较一下他们的区别? inline int gn(int a=0,char c=0,int f=1){ for(;(c<48||c>57)&&c!='-';c=getchar());if(c=='-')f=-1,c=getchar(); for(;c>47&…
裸的状压dp. 设f[i][j]表示在i字数内放j集合的分部,直接sb转移. // luogu-judger-enable-o2 #include<bits/stdc++.h> #define il inline #define vd void typedef long long ll; il int gi(){ int x=0,f=1; char ch=getchar(); while(!isdigit(ch)){ if(ch=='-')f=-1; ch=getchar(); } while…
非常好的一道题 树上的状压\(dp\) 根据数据范围我们就能知道这是一道需要状压的题目 所以状态就是\(dp[i][S]\)表示在以\(i\)为根的子树里,选择的状态为\(S\)的最大收益 这个收益只是在子树内部的收益,我们往上转移的时候继续加 显然这个东西类似于一个树上背包,我们子树和根顺次合并就好了 由于这里的体积是状态,所以我们可以直接枚举子集进行转移 方程 \[dp[i][s]=max(dp[j][t]+dp[i][s\ xor\ t])\] 代码 #include<cstring>…
山贼集团 (group) 题目描述 某山贼集团在绿荫村拥有强大的势力,整个绿荫村由N个连通的小村落组成,并且保证对于每两个小村落有且仅有一条简单路径相连.小村落用阿拉伯数字编号为1,2,3,4,-,n,山贼集团的总部设在编号为1的小村落中.山贼集团除了老大坐镇总部以外,其他的P个部门希望在村落的其他地方建立分部.P个分部可以在同一个小村落中建设,也可以分别建设在不同的小村落中.每个分部到总部的路径称为这个部门的管辖范围,于是这P个分部的管辖范围可能重叠,或者完全相同.在不同的村落建设不同的分部需…
Part1:传送门&吐槽 水题... 然而由于线筛里面的\(j\)打成了\(i\)然后就不能1A了OvO Part2:题目分析 这个正方形是对称的... 而且很显然对角线上只有一个点会被看到... 所以我们只需要考虑对角线下面的一半(标红的).. (其实你想考虑上面一半也无所谓→→ 显然,对于点\((i,j)\)如果\(gcd(i,j)\neq1\),那么一定会被\((\frac{i}{gcd(i,j)},\frac{j}{gcd(i,j)})\)挡住... 所以我们要找第\(i\)列中,\(g…
传送门! 题目在这里... 题目大意? 难道不是说的很清楚了么OvO 求n!中与m!互质的数的个数.. 题目分析. 显然的数论... 所以就是化式子呗.. 一个很显然的性质就是如果\(gcd(a,b)=1\),那么\(gcd(a+kb,b)=1\)... 而题目中说了\(m\leqslant n\), ∴ \(m!|n!\) 于是我们只需要计算\(m!\)中与\(m!\)互质的数的个数,然后乘以\(\frac{n!}{m!}\)即可.. 我们发现上面加粗的这一坨就是\(\varphi(m!)\)…
题目链接 写了个70分暴力还挂了,第一遍提交只拿了十分……海星 首先建虚拟节点多叉树转成二叉,然后子集枚举DP 设g[x][i]是以x为根的子树内山贼集合i,x啥都不选也没贡献的时候的最大价值 f[x][i]是要求的答案 然后状压DP即可. #include<cstdio> #include<algorithm> #include<cctype> #include<cstring> #include<cstdlib> #define maxn 2…
这是一道杜教筛的入(du)门(liu)题目... 题目大意 求 \[ \sum_{i=1}^n\sum_{j=1}^nlcm(i,j) \] 一看就是辣鸡反演一类的题目, 那就化式子呗.. \[ \sum_{i=1}^n\sum_{j=1}^nlcm(i,j) \\ =\sum_{i=1}^n\sum_{j=1}^n\frac{ij}{gcd(i,j)} \\ =\sum_{i=1}^n\sum_{j=1}^n\sum_{k=1}^n\frac{ij}k[gcd(i,j)=k] \\ =\sum…
最近做了几道非常水非常水的dp...... 之后刷的一些水dp也会写在这里...... 此篇题目难度不递增!!! Emmmm....... 1.luogu1043数字游戏 以前看过这个题几遍,没做这个题(觉得太难了)...... 就是一道环形的区间dp......本来想按常规的思路拆成2n做,但是换算坐标好麻烦, 然后一看n,m好小于是就直接强行把数组错位做了...... 设\(f[i][j]\)为前i个点分j份能得到的最大值,\(g[i][j]\)为前i个分j份能得到的最小值, 用\(mod(…
题目在这里哦, 戳一下就可以了~ 题目大意: 支持两种操作,区间添加一种新元素,查询区间颜色种数.. 题目标签是线段树啊,我也本来想写一个线段树,后来写不出来……(我太弱了orz) 然后就草率地看了看题解里面的思路咯,感觉思路非常的不错,于是我就A掉这题之后写了这篇blog… 我们通过这幅图可以看到: - 我们直接统计区间的覆盖不是很好统计, 考虑前缀 - 当前我们已经进行了10次覆盖 - 从[1,R]这个区间中有9个覆盖 - 但是其中有3个覆盖完全在L的左侧(即右端点在[1,L-1]) - 所…
这是一道来自OIerBBS的题目.. 原帖地址:http://www.oierbbs.com/forum.php?mod=viewthread&tid=512?fromuid=71 (似乎是个很小众的BBS..不从洛谷空降根本到不了..) (原帖的排版我忍不了.. 把题目的样式重新处理了一遍..) 题目描述 味味最近对树很感兴趣,什么是树呢?树就是有n个节点和n-1条边形成的无环连通无向图. 味味在研究过程中想知道,对于一个无根树,当节点i作为根的时候树的高是多少.所谓树高指的是从根节点出发,到…
-题目の传送门- 题目大意: 找到第k个无平方因子数. 看到数据范围很大, 我们要采用比\(O(n)\)还要小的做法. 考虑如果前\(x\)个数中有\(k-1\)个无平方因子数, 而前\(x+1\)个数中有\(k\)个无平方因子数, 那么\(x\)即为所求. 而由某种我不会的方式可以证明出答案是不会超过\(2n\)的, 所以我们可以二分答案. 问题就转化成了求前\(x\)个数中有多少个无平方因子数. 我们要求无平方因子数就要把所有的有平方因字数筛掉, 为了保证不重不漏, 我们考虑容斥. 我们枚举…
退役之前写的 然后因为退役就咕咕咕了... 后来发现数学考试能用的到个鬼就发布出来了QwQ 主要是方便自己没登录的时候查阅... 显然子集什么的是没有学会的QwQ 所以学OI的话不要看本文!!!!!> 以下是懒得修改和编辑的原文: 基本引用自vfleaking大大的幻灯片... 我知道我写的没人看你萌只想要个链接而已~ 本文注释~ 为了不影响阅读就添加一个跳转咯~ 什么是反演: 假设有两个函数\(f\)和\(g\)满足 \[ f(n)=\sum_ka_{n,k}g(k) \] 已知\(g\)求\…
两个题的传送门 对于CF这道题, 分别考虑每种可能的集合大小, 每个大小为\(k\)的集合数量有\(\binom nk\)个, 所以最后的答案就是 \[\sum_{i=0}^n\binom{n}{i}i^k\] 对于bzoj这道题, 我们分别考虑每个点的贡献, 这个点可以和其他\(n-1\)个点连任意条边, 贡献是\(\sum_{i=0}^{n-1}\binom{n-1}ii^k\) 此时其他\(n-1\)个点间的\(\frac{(n-1)(n-2)}2\)条边可连可不连, 所以有\(2^{\f…
题目の传送门~ 题目大意: 将\(n\)个蛋糕分成恰好\(k\)份, 求每份中包含的蛋糕的种类数之和的最大值. 这题有两种做法. 第一种是线段树优化dp, 我还没有考虑. 另一种就是分治+主席树. 然后如果看到分治+主席树的话 可以看成是两道题的二合一~ 不过ADAMOLD正解应该是有\(O(nk)\)做法的吧, 我的\(O(nklogn)\)分治好像被卡了一点常数QwQ 首先我们可以非常容易的看出这题要用dp和状要用到的状态转移方程 \[ f[i][j]=max{f[i-1][k]+d(k+1…
省选前大致是刷不了几道题了... 所以就找一些裸一点的题目练练板子算了= = 然而这题一点都不裸, 也并不怎么好写... 于是就浪费了将近一下午的时间... 然而还不是因为后缀数组板子不熟= = 首先这个"r相似"很显然就是lcp的值, 也就能想到后缀数组上的height... 不会后缀数组的先左转百度~ 那么我们考虑如果有一个连续的区间, 它们的height值都是大于等于r的, 那么这段区间中的后缀两两"r相似". 而"r相似"的话, 也肯定有…
还有5天省选才开始点字符串这棵技能树是不是太晚了点... ~题目の传送门~ AC自动机不想讲了QAQ.其实很久以前是学过然后打过板子的, 但也仅限于打过板子了~ 之前莫名其妙学了一个指针版的但是好像不能用循环遍历fail好像就啥也干不了于是改成了数组...) 其实就是Trie树上挂fail指针... 然后可以完成多串的kmp的样子... 直接看题吧. 题目大意: 求长度为\(L\)的,包含给定的\(n\)个短串中的至少一个的字符串的数量. 考虑补集转化, 考虑不含这些短串的字符串的数量. 然后用…
特别说明: 为了避免以后搬家时的麻烦, 这里的文章继续沿用csdn的风格和分类好了~ Emmmm这个题是一道高精度的模板题啊~ 既然是高精度的裸题, 那我们这些懒人当然是选择:用python啦~ 懒癌晚期 你看这不就做完了么←_← a=input() b=input() while(b): c=b b=a%b a=c print a 当然这份代码并不能在luogu上AC 应该是数据出锅了. (当然也不能算是出锅, 只是不太符合题目中说的输入格式而已...刻意卡python (当然还是有一些pyt…
真是一道"简单"的数学题呢~ 反演题, 化式子. \[ ans=\sum_{i=1}^n\sum_{j=1}^nijgcd(i,j) \\ =\sum_{i=1}^n\sum_{j=1}^n\sum_{d=1}^nij[gcd(i,j)=d]\\ =\sum_{d=1}^nd\sum_{i=1}^n\sum_{i=1}^nij[gcd(i,j)=1]\\ =\sum_{d=1}^nd^3\sum_{i=1}^{\left \lfloor \frac nd \right \rfloor}…
只要你不强制在线, 我就能分块. --Reflash 就算你强制在线, 我还是要分块. --Enzymii 今天做了一波舒老师的毒瘤题, T1据说很水但是没思路所以直接放掉了.. 去看了看T2好像可以水不错的分数, 那就去做一下. 我们先把题目放一下: (画风很迷很迷 大家稍微忍一下 忍一下) 就很显然一道数据结构题... 本来想写线段树, 但是标记看上去好像并不怎么好维护, 看一下数据范围, \(n\leq100000\)? 那我们可以分块啊~ 题目的输入格式中有一行小字说的是: "想用离线分…
题目: 思路: 看到这种找前后的题目... 第一反应就是拓扑排序_(:з」∠)_ 每条线段都有左右两个端点咯, 然后就乱搞吧.. 我们用\(i\)和\(i'\)分别表示第\(i\)条线段的左右端点.. 然后如果\(x\)在\(y\)的左边, 那么\(x'\)一定小于\(y\), 我们就建一条\(x'->y\)的边 如果\(x\)与\(y\)相交, 那么一定\(x<y'\)且\(y<x'\)(显然), 我们就分别建\(x->y'\)和\(y->x'\)两条边. 然后对于每个点\…
淀粉质入门第一道 (现在个人认为spoj比bzoj要好_(:з」∠)_ 关于点分治的话推荐去看一看漆子超的论文>>>这里这里<<< 之前一直试图入点分治坑, 但是因为种(bu)种(duan)原(tui)因(fei)也没有入... 结果经常碰到点分治的题目... 然后就各种弃疗... 不少点分治的题目有非常明显的特征... 通常是给一棵树, 然后问你满足xx条件的路径有多少条/是否存在/最大(小)权值之类的... 然后点分治的做法也不尽相同 大致能写出如下的伪代码(好吧还…
前言 这是一道cf的比赛题.. 比赛的时候C题因为自己加了一个很显然不对的特判WA了7次但找不出原因就弃疗了... 然后就想划水, 但是只做了AB又不太好... 估计rating会掉惨 (然而事实证明rating一点没变) 就去看看别的题,, 但是英语不好, 看题要看半天, 看看这个E题题目名称像是数论?(mmp估计是受到了古代猪文的影响). 点进去没仔细读题好像是个等价表达式一样的题目? 好像很麻烦还1h不写了(没错C题细节各种挂调了好久好久, 当时已经是很绝望了OvO) 结果这题tm是个dp…
发现链剖这东西好久不写想一遍写对是有难度的.. 果然是熟能生巧吧.. WC的dalao们都回来了 然后就用WC的毒瘤题荼毒了我们一波, 本来想打个T1 44分暴力 然后好像是特判写挂了还是怎么的就只能得28pts.. 重新见到这些失踪的dalao灰常开心, 于是想让自己心情稍微差一点, 就想着把自己昨天写WA的QTREE重构一遍吧.. 于是重构的sb链剖果然挂掉了... 出现了各种各样的漏洞... 忘记各种各样的句子, 然而退化成了暴力小数据也随便过看不出来啊~~~ 但是还是在1h之内调对了_(…
这是学完主席树去写的第二道题_(:з」∠)_ 之前用树上莫队水过了COT2... 其实COT也可以用树上莫队水过去不过好像复杂度要带个log还是怎么样可能会被卡常数.. 那就orz主席吧.... 写了一发然后非常快速的WA掉了... 然鹅bzoj(luogu)搞成了强制在线, 那就真的不能orz莫队智能orz主席了... 结果在luogu写了一发交上去全RE... 然后发现讨论区一帮子病友... 但是根据他们的心得改一波还是RE啊... 后来发现是自己脑抽参数传错了... 于是就WA呗, 那么一…
======传======送======门======在======里======面====== 去年忘记可以预处理了... 然后就打了10pts的暴力... 现在学了莫比乌斯反演就可以来做了 这个题目看着非常的简单, 就是要求这个式子 \[ \prod_{i=1}^N\prod_{j=1}^Mf[gcd(i,j)] \] 这个式子虽然是\(\prod\)而不是\(\sum\), 但是还有个gcd, 我们也可以试着化出一个莫比乌斯反演的形式. 我们按照往常的套路来枚举gcd. \[ ans=\p…
花儿们已经很累了-- 无论是花形.颜色.还是气味, 都不是为了给人们摆出来欣赏的, 更不是为了当做出题的素材的, 她们并不想自己这些属性被没有生命的数字量化, 并不想和其它的花攀比, 并无意分出个三六九等, 它们只想静静地开放, 完成自己这一生的使命, 而你(出题人)考虑过这些吗? 不,你只关心你自己! 题目的传送门会有的,先不要着急... 首先来看一道大水题. 给定\(n\)个元组\((x)\), 询问对于每个元组\(i\), 有多少个元组\(j\)满足\(x_i<x_j\). (一维偏序)…
传送门~ 题目大意 先分析\((x\ or\ y)-(x\ and\ y)\), 就是\(x\)和\(y\)中存在的1减去\(x\)和\(y\)中相同的1 *那不就是\(x\ xor\ y\)么←_←* 给定\(n\)个人, 确定一个排列, 使得不存在\(i+b_i\)在\(i\)之前, 并最小化\(\sum_{i=2}^{n}t_i\ xor\ t_{i-1}\). 题目分析 \(1\leqslant b_i\leqslant7\), 数据范围一眼状压... 但是具体怎么定义状态呢? 假如说(…