03 2017 档案
摘要:测试地址:道路修建做法:这个水的程度...不太像NOI的难度啊...不妨设点1为根,DFS时顺便求出以每个点为根的子树中点的数量,记为s[i],求完之后回来就可以求出边的费用了,因为任意一点i只有一个父亲,也只有一条连向父亲的边,所以我们算完一个点就求出对应的连向父亲...
阅读全文
摘要:测试地址:道路修建做法:这个水的程度...不太像NOI的难度啊...不妨设点1为根,DFS时顺便求出以每个点为根的子树中点的数量,记为s[i],求完之后回来就可以求出边的费用了,因为任意一点i只有一个父亲,也只有一条连向父亲的边,所以我们算完一个点就求出对应的连向父亲...
阅读全文
摘要:测试地址:Maze题目大意:有一个树形的迷宫,有N个房间(标号为1~N)以及N-1条通道将它们连通,一开始在1号房间,每进入一个房间i,有k[i]的概率被陷阱杀死回到房间1,有e[i]的概率找到出口逃离迷宫,如果没有找到出口也没有被杀,那么就在与该房间相连的通道中等概...
阅读全文
摘要:测试地址:Maze题目大意:有一个树形的迷宫,有N个房间(标号为1~N)以及N-1条通道将它们连通,一开始在1号房间,每进入一个房间i,有k[i]的概率被陷阱杀死回到房间1,有e[i]的概率找到出口逃离迷宫,如果没有找到出口也没有被杀,那么就在与该房间相连的通道中等概...
阅读全文
摘要:测试地址:矩阵游戏做法:观察递推式,很明显可以用矩阵优化,设矩阵C={a b \n 0 1},D={c d \n 0 1},所以F[1][m]=C^(m-1)*{1 \n 1},再推出F[2][1]=D*C^(m-1)*{1 \n 1},数学归纳得F[n][1]=(D...
阅读全文
摘要:测试地址:矩阵游戏做法:观察递推式,很明显可以用矩阵优化,设矩阵C={a b \n 0 1},D={c d \n 0 1},所以F[1][m]=C^(m-1)*{1 \n 1},再推出F[2][1]=D*C^(m-1)*{1 \n 1},数学归纳得F[n][1]=(D...
阅读全文
摘要:测试地址:B-number题目大意:给定一些整数,求以这些整数为n时,区间[0,n]中有多少既含有“13”这个子串又能被13整除的数(称为B数)。做法:以前没写过数位DP的记忆化搜索写法,代码风格是向这位大神学习的。记忆化搜索时是从高位到低位搜索,而dp数组的计算是从...
阅读全文
摘要:测试地址:B-number题目大意:给定一些整数,求以这些整数为n时,区间[0,n]中有多少既含有“13”这个子串又能被13整除的数(称为B数)。做法:以前没写过数位DP的记忆化搜索写法,代码风格是向这位大神学习的。记忆化搜索时是从高位到低位搜索,而dp数组的计算是从...
阅读全文
摘要:测试地址:Milk Patterns题目大意:求数列中至少出现K次的重复子串的最长长度。做法:和重复子串有关的题目,一下子就想到后缀数组。先对数列求一遍后缀数组,再求出height数组。我们发现答案是具有单调性的,所以我们二分答案M,将排序后的后缀序列按height数...
阅读全文
摘要:测试地址:Milk Patterns题目大意:求数列中至少出现K次的重复子串的最长长度。做法:和重复子串有关的题目,一下子就想到后缀数组。先对数列求一遍后缀数组,再求出height数组。我们发现答案是具有单调性的,所以我们二分答案M,将排序后的后缀序列按height数...
阅读全文
摘要:测试地址:变换序列做法:将原来的点i分为一个集合,变换序列中的点Ti分为一个集合,成为一个二分图,分析题目得知一个点最多跟四个其他的点相连,那么问题就转化为了求二分图的一个完美匹配,且使得变换序列字典序最小。对于每一个点i,如果Di>N/2,直接判定无解,因为根据Di...
阅读全文
摘要:测试地址:变换序列做法:将原来的点i分为一个集合,变换序列中的点Ti分为一个集合,成为一个二分图,分析题目得知一个点最多跟四个其他的点相连,那么问题就转化为了求二分图的一个完美匹配,且使得变换序列字典序最小。对于每一个点i,如果Di>N/2,直接判定无解,因为根据Di...
阅读全文
摘要:测试地址:抱歉...我能找到的测试地址只有一个私人OJ才有,所以就不贴出来了...题目大意:一个岛是环状的,环上排列有M个洞穴,顺时针编号为1~M,有N(不超过15)个野人,第i个野人一开始住在洞穴Ci中,每一年要顺时针迁移Pi个洞穴,走Li年后就会死去。求满足在野人...
阅读全文
摘要:测试地址:Musical Theme题目大意:一段旋律有N个音符,音符为1~88之间的一个整数,我们规定旋律的主题为旋律中一个连续的子串,且满足以下要求:1.至少包含5个音符;2.在旋律的另外一个地方也出现(可能会变调,即每一个音符都加上同一个整数);3.和另外一个出...
阅读全文
摘要:测试地址:Musical Theme题目大意:一段旋律有N个音符,音符为1~88之间的一个整数,我们规定旋律的主题为旋律中一个连续的子串,且满足以下要求:1.至少包含5个音符;2.在旋律的另外一个地方也出现(可能会变调,即每一个音符都加上同一个整数);3.和另外一个出...
阅读全文
摘要:测试地址:起床困难综合症做法:我们知道位运算各位之间是互不影响的,所以我们从高位开始枚举,先用0来走一遍,如果走下来当前位为1,那么这一位初始攻击力就选0,如果不行再用1来走,如果最后为1而且加上这一位之后初始攻击力不超过m,初始攻击力就加上这一位,因为在高位选1一定...
阅读全文
摘要:测试地址:起床困难综合症做法:我们知道位运算各位之间是互不影响的,所以我们从高位开始枚举,先用0来走一遍,如果走下来当前位为1,那么这一位初始攻击力就选0,如果不行再用1来走,如果最后为1而且加上这一位之后初始攻击力不超过m,初始攻击力就加上这一位,因为在高位选1一定...
阅读全文
摘要:测试地址:派遣做法:我们知道,对于每一棵子树,我们都贪心选里面费用最小的一些点,一直选直到如果再选费用就超限为止,这时以这棵子树的根为管理者的最优解显然是根的领导力乘上选的点数。但是,如果对于每棵子树都排序选择的话,时间复杂度O(N^2*logN),即使使用归并排序时...
阅读全文
摘要:测试地址:派遣做法:我们知道,对于每一棵子树,我们都贪心选里面费用最小的一些点,一直选直到如果再选费用就超限为止,这时以这棵子树的根为管理者的最优解显然是根的领导力乘上选的点数。但是,如果对于每棵子树都排序选择的话,时间复杂度O(N^2*logN),即使使用归并排序时...
阅读全文
摘要:测试地址:逃学的小孩做法:通过各种证明可以得到一个贪心的思路:当A,B分别为树直径的两端时,一定存在最优答案。求直径我们用树形DP可以O(n)求出:求出以某一个点为根的子树上与其距离最远和次远的点及根与它们的距离,而且要保证根到这两点的路径不相交,这样就可以求出通过某...
阅读全文
摘要:测试地址:逃学的小孩做法:通过各种证明可以得到一个贪心的思路:当A,B分别为树直径的两端时,一定存在最优答案。求直径我们用树形DP可以O(n)求出:求出以某一个点为根的子树上与其距离最远和次远的点及根与它们的距离,而且要保证根到这两点的路径不相交,这样就可以求出通过某...
阅读全文
摘要:测试地址:Eat the Trees题目大意:一个N*M的矩形场地,有一些格子不能走,要求走若干条回路使得走过每个格子一次且仅一次,求方案数。做法:一看到棋盘类型的题目和很小的数据范围就想到插头DP。因为题目中要求若干条回路,所以轮廓线状态定义直接和骨牌覆盖问题一样,...
阅读全文
摘要:测试地址:Eat the Trees题目大意:一个N*M的矩形场地,有一些格子不能走,要求走若干条回路使得走过每个格子一次且仅一次,求方案数。做法:一看到棋盘类型的题目和很小的数据范围就想到插头DP。因为题目中要求若干条回路,所以轮廓线状态定义直接和骨牌覆盖问题一样,...
阅读全文
摘要:测试地址:D-query题目大意:给一个长为N的数列,Q次询问,每次询问一个区间[i,j]内有多少个不同的数。做法:用主席树解决问题,将数列上的数字逐个插入,对于第i次操作,在第i个位置+1并生成一个新的版本,表示在第i个位置新出现一个数,然而要排除重复数字的干扰,我...
阅读全文
摘要:测试地址:D-query题目大意:给一个长为N的数列,Q次询问,每次询问一个区间[i,j]内有多少个不同的数。做法:用主席树解决问题,将数列上的数字逐个插入,对于第i次操作,在第i个位置+1并生成一个新的版本,表示在第i个位置新出现一个数,然而要排除重复数字的干扰,我...
阅读全文
摘要:测试地址:换教室做法:设f[i][j][0/1]表示前i个教室选j个申请,其中第i个不申请或申请(最后一个0或1)的最小期望,发现满足动态规划的无后效性原则,再根据和的期望等于期望的和,得到状态转移方程(太长就不在这写了,直接看代码吧),于是用Floyd预处理出两点之...
阅读全文
摘要:测试地址:换教室做法:设f[i][j][0/1]表示前i个教室选j个申请,其中第i个不申请或申请(最后一个0或1)的最小期望,发现满足动态规划的无后效性原则,再根据和的期望等于期望的和,得到状态转移方程(太长就不在这写了,直接看代码吧),于是用Floyd预处理出两点之...
阅读全文
摘要:测试地址:Lanterns题目大意:有N个灯和M个开关,每个开关控制若干个灯,开启开关会改变所有其控制的灯的状态,一开始所有灯都不亮,每个开关最多开启一次,问有多少种可能方案使所有灯达到某种状态?做法:经典的求解异或方程组的问题。列N个方程,有M个未知数,组成一个系数...
阅读全文
摘要:测试地址:Lanterns题目大意:有N个灯和M个开关,每个开关控制若干个灯,开启开关会改变所有其控制的灯的状态,一开始所有灯都不亮,每个开关最多开启一次,问有多少种可能方案使所有灯达到某种状态?做法:经典的求解异或方程组的问题。列N个方程,有M个未知数,组成一个系数...
阅读全文
摘要:测试地址:排序做法:首先我们知道,如果存在一个长度为k的可行操作序列(就是用了k个操作使原数列排好序),将它操作的顺序随意变换都是一个可行的序列,那么其对答案的贡献为k!。于是我们从小到大搜索操作,当搜索到第i种操作时,表示我们已经处理完前i-1种操作了。将原数列分成...
阅读全文
摘要:测试地址:排序做法:首先我们知道,如果存在一个长度为k的可行操作序列(就是用了k个操作使原数列排好序),将它操作的顺序随意变换都是一个可行的序列,那么其对答案的贡献为k!。于是我们从小到大搜索操作,当搜索到第i种操作时,表示我们已经处理完前i-1种操作了。将原数列分成...
阅读全文
摘要:测试地址:星际战争做法:注意到答案具有单调性,答案比某一个点大时都有可行解,比这个点小时都没有可行解,于是可以二分答案,转变为判定性问题:在某一个时间t内能否消灭所有敌人?再看这个题目的模型,注意到在时间t内一个武器最多能够削减(t*攻击速度)个单位的装甲值,我们要做...
阅读全文
摘要:测试地址:星际战争做法:注意到答案具有单调性,答案比某一个点大时都有可行解,比这个点小时都没有可行解,于是可以二分答案,转变为判定性问题:在某一个时间t内能否消灭所有敌人?再看这个题目的模型,注意到在时间t内一个武器最多能够削减(t*攻击速度)个单位的装甲值,我们要做...
阅读全文
摘要:测试地址:线性代数做法:从题目看出题目求的是将A矩阵中元素分为两个集合(取0或取1)使某一个值最大,那么我们可以把这个值转化成某个常数减去某个变量,转成求该变量的最小值,我们注意关键词“分为两个集合”“最小值”,就开始思考这是不是能用最小割解决,实际上是可以的,转化方...
阅读全文
摘要:测试地址:线性代数做法:从题目看出题目求的是将A矩阵中元素分为两个集合(取0或取1)使某一个值最大,那么我们可以把这个值转化成某个常数减去某个变量,转成求该变量的最小值,我们注意关键词“分为两个集合”“最小值”,就开始思考这是不是能用最小割解决,实际上是可以的,转化方...
阅读全文
摘要:测试地址:巡逻做法:贪心,对于K=1的情况下,只需要找树的直径(树上最长的路径),设这个直径为len,则结果为2*(n-1)-len+1。对于K=2的情况,先找树的一个直径,将答案总数tot赋值为2*(n-1)-len+1,然后把直径上所有边赋值为-1,再求一遍直径,...
阅读全文
摘要:测试地址:巡逻做法:贪心,对于K=1的情况下,只需要找树的直径(树上最长的路径),设这个直径为len,则结果为2*(n-1)-len+1。对于K=2的情况,先找树的一个直径,将答案总数tot赋值为2*(n-1)-len+1,然后把直径上所有边赋值为-1,再求一遍直径,...
阅读全文
摘要:测试地址:天天爱跑步做法:这里转载一下我看的题解:点这里,这里面对于整个题的做法应该写的很明确了,这里就不再赘述了。我的做法是实时用倍增求出路径两点的LCA(当然也可以离线用Tarjan做,貌似快一点),然后用类似邻接表的链表结构存储上面题解里面的“人”,结构体里有四...
阅读全文
摘要:测试地址:天天爱跑步做法:这里转载一下我看的题解:点这里,这里面对于整个题的做法应该写的很明确了,这里就不再赘述了。我的做法是实时用倍增求出路径两点的LCA(当然也可以离线用Tarjan做,貌似快一点),然后用类似邻接表的链表结构存储上面题解里面的“人”,结构体里有四...
阅读全文
摘要:测试地址:Mondriaan's Dream题目大意:求用1*2的骨牌完美覆盖h*w的棋盘的方法数。做法:这道题绝对是经典题啊,久仰大名......关于轮廓线和插头的思想可以看cdq大大的论文:点这里。但这题不用搞那么麻烦,因为骨牌之间相互独立,所以不用考虑插头的连通...
阅读全文
摘要:测试地址:Mondriaan's Dream题目大意:求用1*2的骨牌完美覆盖h*w的棋盘的方法数。做法:这道题绝对是经典题啊,久仰大名......关于轮廓线和插头的思想可以看cdq大大的论文:点这里。但这题不用搞那么麻烦,因为骨牌之间相互独立,所以不用考虑插头的连通...
阅读全文
摘要:测试地址:The Unique MST题目大意:给一个连通的无向图,要求判断该图的最小生成树是不是唯一的,如果对于该图的所有除了最小生成树之外的生成树,花费都严格大于最小生成树的花费,则该图的最小生成树是唯一的。如果唯一,输出最小花费,否则输出“Not Unique!...
阅读全文
摘要:测试地址:The Unique MST题目大意:给一个连通的无向图,要求判断该图的最小生成树是不是唯一的,如果对于该图的所有除了最小生成树之外的生成树,花费都严格大于最小生成树的花费,则该图的最小生成树是唯一的。如果唯一,输出最小花费,否则输出“Not Unique!...
阅读全文
摘要:测试地址:Monkey King题目大意:有N(N≤100000)只猴子,标号为1~N,每只猴子有一个强壮值,一开始他们互相之间都不认识,但猴子避免不了争吵,它们之间会进行M(M≤100000)次争吵,每次争吵都是标号为a和b的两只互不认识的猴子相互争吵,争吵过后,他...
阅读全文
摘要:测试地址:Monkey King题目大意:有N(N≤100000)只猴子,标号为1~N,每只猴子有一个强壮值,一开始他们互相之间都不认识,但猴子避免不了争吵,它们之间会进行M(M≤100000)次争吵,每次争吵都是标号为a和b的两只互不认识的猴子相互争吵,争吵过后,他...
阅读全文
摘要:测试地址:Dynamic Rankings题目大意:维护一个长度为N的数列,支持以下操作:询问区间[i,j]内的第k小的元素,修改一个元素。做法:这是一个很经典的问题:带单点修改的求区间第k小值问题。在我以前写的题解中我简述了用主席树求解不带修改的求区间第k小值问题的...
阅读全文
摘要:测试地址:Dynamic Rankings题目大意:维护一个长度为N的数列,支持以下操作:询问区间[i,j]内的第k小的元素,修改一个元素。做法:这是一个很经典的问题:带单点修改的求区间第k小值问题。在我以前写的题解中我简述了用主席树求解不带修改的求区间第k小值问题的...
阅读全文
摘要:测试地址:To The Moon题目大意:维护一个长度为N的数列,支持以下操作:将其中的某个区间内元素加上一个值然后将时间戳+1,询问当前时间戳内某一个区间内元素的和,询问某个时间戳内某一个区间内元素的和,将时间戳重置回某一个前面的时间。做法:这道题一看就是主席树了,...
阅读全文
摘要:测试地址:To The Moon题目大意:维护一个长度为N的数列,支持以下操作:将其中的某个区间内元素加上一个值然后将时间戳+1,询问当前时间戳内某一个区间内元素的和,询问某个时间戳内某一个区间内元素的和,将时间戳重置回某一个前面的时间。做法:这道题一看就是主席树了,...
阅读全文
摘要:测试地址:K-th Number题目大意:给定一个长度为N的数列,要求处理M个询问,每个询问三个参数i,j,k,表示询问区间[i,j]内第k小的数。做法:可持久化线段树的单点修改,网上有很多这里就不讲了。这里再简述一下这一题如何转化成可持久化线段树。首先将数列里所有数...
阅读全文
摘要:测试地址:项链工厂做法:之前没想出坐标变换的规律性,于是用Splay做,写了300+行,惨跪......现在回来一想,这不就是道线段树嘛!结果换线段树后只有200行左右,果然线段树还是区间处理的大杀器。我们设一个坐标的映射序列S,S[i]就是当前标号为i的珠子最原始的...
阅读全文
摘要:测试地址:项链工厂做法:之前没想出坐标变换的规律性,于是用Splay做,写了300+行,惨跪......现在回来一想,这不就是道线段树嘛!结果换线段树后只有200行左右,果然线段树还是区间处理的大杀器。我们设一个坐标的映射序列S,S[i]就是当前标号为i的珠子最原始的...
阅读全文
摘要:测试地址:程序自动分析做法:这个题目一看就很并查集是不是,先把相等的元素并成一个集合,然后再判断不等的条件,如果两个元素在同一个集合,直接输出NO,检查完后没有冲突的就输出YES。然而还有一点,元素的标号本身达到了10^9,直接用并查集存不下这么多,然而条件只有10^...
阅读全文
摘要:测试地址:程序自动分析做法:这个题目一看就很并查集是不是,先把相等的元素并成一个集合,然后再判断不等的条件,如果两个元素在同一个集合,直接输出NO,检查完后没有冲突的就输出YES。然而还有一点,元素的标号本身达到了10^9,直接用并查集存不下这么多,然而条件只有10^...
阅读全文
摘要:比赛地址:洛谷2017年3月月赛Round1这个比赛也是参加来玩的......结果第一题这是什么鬼!剩下的正经的三题里,前两题都挺简单的不说了,主要是这个第四题很有意思。题目的大意就是一个有向图,每个点入度都为1,每条边有边权,要修改这条边的指向要边权这么多的花费,问...
阅读全文
摘要:比赛地址:洛谷2017年3月月赛Round1这个比赛也是参加来玩的......结果第一题这是什么鬼!剩下的正经的三题里,前两题都挺简单的不说了,主要是这个第四题很有意思。题目的大意就是一个有向图,每个点入度都为1,每条边有边权,要修改这条边的指向要边权这么多的花费,问...
阅读全文
摘要:测试地址:随机数生成器做法:题目都把递推式给出来了,但是n达到了10^18,所以一个一个算肯定爆了,这个时候就要使用矩阵优化,这个递推式弄出状态转移矩阵还是很简单的,这里就不写了。但是还有一个问题,两个10^18数量级的长整数直接乘起来肯定会炸,所以还要写一个高精度....
阅读全文
摘要:测试地址:随机数生成器做法:题目都把递推式给出来了,但是n达到了10^18,所以一个一个算肯定爆了,这个时候就要使用矩阵优化,这个递推式弄出状态转移矩阵还是很简单的,这里就不写了。但是还有一个问题,两个10^18数量级的长整数直接乘起来肯定会炸,所以还要写一个高精度....
阅读全文
摘要:测试地址:聪聪和可可做法:先用N次BFS预处理出p(i,j):当聪聪在i,可可在j,轮到聪聪走时聪聪会选择的点,这个应该比较简单。然后我们再设f(i,j)为聪聪在i,可可在j,轮到聪聪走时聪聪抓到可可的期望步数,令to(i,k)为可可在i时下一步可能走到的点,可以得到...
阅读全文
摘要:测试地址:聪聪和可可做法:先用N次BFS预处理出p(i,j):当聪聪在i,可可在j,轮到聪聪走时聪聪会选择的点,这个应该比较简单。然后我们再设f(i,j)为聪聪在i,可可在j,轮到聪聪走时聪聪抓到可可的期望步数,令to(i,k)为可可在i时下一步可能走到的点,可以得到...
阅读全文
摘要:这两天学习了最大权闭合子图的模型以及将其转化为最大流求解的方法(见这里),这里就不再重复说明了,在这里我就再添加一些我自己对该模型的理解。这个模型可以解决的是有约束条件的点集的最佳选择问题,而这些约束条件通常都是“要选择点A,必须同时选择点B”这样的形式,称作A依赖B...
阅读全文
摘要:测试地址:植物大战僵尸做法:上次我们提到了最大权闭合子图的模型(见这里),这一个题目也容易看出是最大权闭合子图的模型,当一个植物被另一个植物保护的时候,隐含的关系就是:如果要选择攻击被保护植物,就必须也攻击保护植物,因此从被保护植物向保护植物连边,然后按照方法来建图求...
阅读全文
摘要:测试地址:植物大战僵尸做法:上次我们提到了最大权闭合子图的模型(见这里),这一个题目也容易看出是最大权闭合子图的模型,当一个植物被另一个植物保护的时候,隐含的关系就是:如果要选择攻击被保护植物,就必须也攻击保护植物,因此从被保护植物向保护植物连边,然后按照方法来建图求...
阅读全文
摘要:测试地址:最大获利做法:首先介绍一下闭合子图和最大权闭合子图的概念:在一个有向图中选择一个点集V,若V满足对于任意点X∈V,若有向边(X,Y)存在,则Y∈V,即V中所有点的出边终点也属于V,则称V为一个闭合子图,最大权闭合子图就是在原图有点权的情况下,在所有闭合子图中...
阅读全文
摘要:测试地址:最大获利做法:首先介绍一下闭合子图和最大权闭合子图的概念:在一个有向图中选择一个点集V,若V满足对于任意点X∈V,若有向边(X,Y)存在,则Y∈V,即V中所有点的出边终点也属于V,则称V为一个闭合子图,最大权闭合子图就是在原图有点权的情况下,在所有闭合子图中...
阅读全文
摘要:测试地址:动物园做法:这题目很迷,一开始以为想出一种不用预处理的求num的方法,事实证明是错的......为了方便,设prefix(s,i)为字符串s的前i个字符组成的前缀,suffix(s,i)为字符串s的后i个字符组成的后缀。实际上我们要先求一个“假”的num数组...
阅读全文
摘要:测试地址:动物园做法:这题目很迷,一开始以为想出一种不用预处理的求num的方法,事实证明是错的......为了方便,设prefix(s,i)为字符串s的前i个字符组成的前缀,suffix(s,i)为字符串s的后i个字符组成的后缀。实际上我们要先求一个“假”的num数组...
阅读全文
摘要:测试地址:志愿者招募做法:根据这位大牛的方法做的,看完之后觉得这题简直是神题啊!能想出来也是太强了。好了废话不多说,这位大牛说的构图原理是非常清楚的,就是利用线性规划建立等式,化成只有一边为0的形式,然后把正的量看成流入的流量,把负的量看成流出的流量,就可以满足流量平...
阅读全文
摘要:测试地址:志愿者招募做法:根据这位大牛的方法做的,看完之后觉得这题简直是神题啊!能想出来也是太强了。好了废话不多说,这位大牛说的构图原理是非常清楚的,就是利用线性规划建立等式,化成只有一边为0的形式,然后把正的量看成流入的流量,把负的量看成流出的流量,就可以满足流量平...
阅读全文
摘要:测试地址:社交网络做法:看完题目之后,可以看出问题主要在于如何求两点间最短路的方案数和两点间过某点最短路的方案数,看到N只有100,所以完全可以用O(N^3)的Floyd算法预处理,设dis[i][j]为i到j之间的最短路,c[i][j]为i到j之间的最短路方案数,用...
阅读全文
摘要:测试地址:社交网络做法:看完题目之后,可以看出问题主要在于如何求两点间最短路的方案数和两点间过某点最短路的方案数,看到N只有100,所以完全可以用O(N^3)的Floyd算法预处理,设dis[i][j]为i到j之间的最短路,c[i][j]为i到j之间的最短路方案数,用...
阅读全文
摘要:测试地址:瓷片项链注意,该测试地址中的式子写错了,应该是D=0.3*(V-V0)^0.5(也就是D=0.3*sqrt(V-V0)),漏了一个^0.5,看得我不明所以...找到了原题才知道少了个根号。做法:设分成s块,要求总长W=sD最大,化一下式子:W=sD=s*0....
阅读全文
摘要:测试地址:瓷片项链注意,该测试地址中的式子写错了,应该是D=0.3*(V-V0)^0.5(也就是D=0.3*sqrt(V-V0)),漏了一个^0.5,看得我不明所以...找到了原题才知道少了个根号。做法:设分成s块,要求总长W=sD最大,化一下式子:W=sD=s*0....
阅读全文
摘要:测试地址:单词查找树做法:裸的trie树,还只有插入操作,没想到NOI也有那么水的题......40多行解决问题。以下是本人代码:#include #include #include #include #include using namespace std;int ...
阅读全文
摘要:测试地址:Alice's Chance题目大意:演员Alice接到N个拍电影任务,一部电影在一周中只有某些日子能拍,并且每部电影都有一定的任务(至少要拍D天)和期限(在W周内拍完),而Alice一天只能去拍一部电影,求能不能制定一个排片计划,使得Alice能够接下所有...
阅读全文
摘要:测试地址:Alice's Chance题目大意:演员Alice接到N个拍电影任务,一部电影在一周中只有某些日子能拍,并且每部电影都有一定的任务(至少要拍D天)和期限(在W周内拍完),而Alice一天只能去拍一部电影,求能不能制定一个排片计划,使得Alice能够接下所有...
阅读全文
摘要:测试地址:Candies题目大意:幼儿园一个班里有N个小朋友(标号为1~N),一个小朋友flymouse(为N号)被校长指定去发糖,有M个条件,每个条件三个参数A,B,c,表示小朋友A不希望小朋友B有比他多超过c个的糖,班里还有另一个小朋友snoopy(为1号),fl...
阅读全文
摘要:测试地址:Candies题目大意:幼儿园一个班里有N个小朋友(标号为1~N),一个小朋友flymouse(为N号)被校长指定去发糖,有M个条件,每个条件三个参数A,B,c,表示小朋友A不希望小朋友B有比他多超过c个的糖,班里还有另一个小朋友snoopy(为1号),fl...
阅读全文

浙公网安备 33010602011771号