自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

StaroForgin的博客

某不科学的小蒟蒻

  • 博客(14)
  • 收藏
  • 关注

原创 [hdu5304]Eastest Magical Day Seep Group‘s Summer

Eastest Magical Day Seep Group's Summer题解看到题面时应该很容易想到矩阵树定理,但是由于是一个条边的连通图,并不能直接用矩阵树来处理。很容易发现,任意一个个点条边的连通图,一定是一棵基环树,于是我们可以考虑缩点。考虑状压,表示一根起点为的链状态为的图的构成方案数,可以通过背包来进行更新。之后枚举每个,再计算出每个状态为的环的构成方案数,将所有在中的点缩点后再将该图的基尔霍夫矩阵建出来,计算出它的行列式值,加上它的贡献即可。由于每个环有两个方向,还需要

2020-09-29 21:34:49 240

原创 植物大战僵尸(pvz)

植物大战僵尸题解写这道题的过程贞德好艰辛呀。很容易发现一个结论,如果我们把每个转化,如果所有的总和大于等于1,就一定有解。因为如果这样的话,我们一定可以找出一种方法将两条路分成两个权值使得两边都不小于,除非你有一只僵尸跑到别人家里去了。而此时它肯定会选择其中一行全部消灭掉,我们还剩一行权值不小于,它们前进后得到的权值一定会不小于,不断重复这个过程,我们就得到必胜的策略。这样,第一个问题就解决了,我们接下来思考如何求出第一次策略的数量,就是将所有分成两个的方案数。考虑容斥,答案就是总方

2020-09-26 17:32:43 669 2

原创 [poj2728]Desert King

Desert King题解最优比率生成树的一道板子题。很容易发现,我们要求的是最小的生产树上边集,使得最大。我们可以考虑0/1分数规划。记表示第条边是否属于集合,答案变成了,其中表示这个图的边集。设表示这个比值,构造函数。其表示将边权修改为后,最小生成树的值。而当使得时,我们就得到了答案。由于本题是一个稠密图,,所以需采用prim求最小生成树。先二分,通过生成最小生成树来求出当前的值,二分左右边界不能直接设为最大值,会T,需设为与。最后输出答案需要用%f,%lf会

2020-09-23 21:17:42 164 1

原创 [hdu3440]House Man

House Man题解很经典的一道差分约束的题目。我们现在有两个约束条件:相邻两点的距离大于1。 两个高度紧挨着的点的距离不超过d。(注意,两个高度相邻的点之间如果有一个更高的他会直接跳过这个更高的,一脸懵*)于是我们就得到了两个约束条件,设表示第个点的位置,表示第高的点的编号。,。根据这两个条件差分约束建图,跑一遍spfa,注意判负环。源码#include<cstdio>#include<cmath>#include<cstring&

2020-09-22 21:54:20 167

原创 [bzoj3083]遥远的国度

遥远的国度题解如果没有换根的操作,那这道题就是一个板子题了。我们只需考虑在换根的情况下如何对其进行维护了。我们发现,如果这个根在它的子树内的话,就是它所在的儿子会成为这个点的父亲,而其他点都会产生贡献,所以每次查询除这个儿子所在子树的区间即可。所以这又成一个板子题了。源码#include<cstdio>#include<cmath>#include<cstring>#include<iostream>#include<a

2020-09-16 21:51:20 127

原创 [NOI2014]魔法森林

魔法森林题解看到这道题应该是很容易想到贪心,我们可以先将所有边根据值排序,再当前基础上找到所需值最小的一条路径。但是由于边会产生改变,于是每次都要跑一遍最短路,明显是会T飞的。很容易发现,当前加入的一条边只对部分的路径产生影响,而这些路径都是在已有路径的最小生成树上构成一个环的。由于当前到每个点的最优路径都会对以后的答案产生影响,所以我们要实时维护当前最小生成树的形态。每次加入边时如果这个环上最劣的边比加入的这条边值更大,就将其删去,再加入当前边。于是我们就需要用LCT来维护这棵最小生成

2020-09-14 21:37:20 194

原创 [bzoj2589]Count on a tree II

Count on a tree II题解看到这道题,如果不加强制在线什么的,应该是很容易想到树上莫队的,根据欧拉序很容易解决。可是由于要强制在线,就不能离线下来做了,于是我们就想到了用树上分块来进行处理。容易证明,如果我们在一棵节点数为的树上选择一些点使得树上任意一点到被选择点的距离不会超过,那么一定存在一种方法使得选择的点数不会超过个。如果我们从深度最大且未被覆盖的点开始,往上找最多个点,将最远处即与那个点距离达到的祖先或是根节点的点选择,则一定可以使当前的选择成为这个点子树上的最优解

2020-09-11 21:07:44 197

原创 [hdu4418]Time travel

Time travel题解无论如何,这题面是真的难理解如果我们用来表示从点走到点的期望步数的话,我们很容易得到一个方程。由于这种逆推式不能转化为状态转移方程式来dp求解,我们只能用高斯消元来对其进行求解。于是,可以得到方程式。再用高斯消元进行求解。可是,它可以向两个方向走,我们就把原来的数列再往后翻折一半,将变成。之后再通过bfs求出可达的点,如果终点不可达就直接输出,否则,再此基础上建出期望方程,解出来输出的值即可。注意需特判起点与终点是否不同,否则会因的情况RE。源码

2020-09-09 09:55:17 129

原创 [hdu4870]Rating

Rating题解分明8个月前才做过的,现在做又想了半天。容易发现,两个账号打的轮数是可以分开考虑的,它们之间不会互相影响,而最后的情况肯定是一个账号的分数为19*50,另一个为20*50。我们设表示将一个账号的分数打到i*50的期望轮数,答案就是。可以得到方程式,。如果我们根据这个方程式来代换出的值的话你会发现一个问题,就是所对应的概率并不为1,因为它是逆推的,转化出来的递推式子是错误,它的答案也是错的。我们考虑定义为在分数为时赢一轮的期望轮数,可以用表示出来。而关于我们可以

2020-09-08 21:14:17 132 1

原创 [hdu6482]A Path Plan

A Path Plan题解很容易发现,如果两个起点与终点的连线相交时,即时,无论怎么走都是一定会相交的。因此我们只需考虑的情况。不妨设,如果会相交的话,路径一定是这样的两者一定会相交于一个点,我们尝试将它们的终点互换一下,就成了这样可以发现,任意一条会相交的路径相当于从的合法方案数。于是答案就是从。源码#include<cstdio>#include<cmath>#include<cstring>#include<cs

2020-09-08 10:37:38 166

原创 [CF1204E]Natasha, Sasha and the Prefix Sums

Natasha, Sasha and the Prefix Sums题解很明显,如果我们直接求最大前缀和为某个值时的序列数量是比较困难的,于是我们就先求最大前缀和大于某个值时的序列数量。记为前缀和大于的合法序列个数,那么答案为。很容易发现根据前缀和构造出来的路径的函数图像一定至少与存在一个交点。由于求出的的值是没有意义的,毕竟所有序列构造出来都是大于这个值的,他们的值都与相等,最后将其加上去即可。可如何求出这些的值呢?先给出一个前缀和函数图像我们可以像计算卡塔兰数一样先将

2020-09-07 20:27:18 117

原创 [hdu6314]Matrix

Matrix题解本来打着很快的,但是卡常硬是把这道题给卡了一个下午,于是就叫它“贞卡常”了先令表示将一个大小的矩阵,每个格子都涂成黑白,没有任何行与列全为黑的方案数。根据容斥,枚举其中全为黑的方格数,可以得到。于是答案便为将的表达式带进去,可以得到设,有记,,这两者可以分别用和处理出来,带入原式得...

2020-09-07 09:20:43 154

原创 [hdu6467]简单数学题

简单数学题题解题目已经说得很明显了,就是一道数学推导的题,虽然我也不知道为什么我会推错容易得到,,将两者相减。,可以通过这个求出,将其扩大2倍,再相减得源码#include<cstdio>#include<cmath>#include<cstring>#include<iostream>#include<algorithm>#include<map>using namespace std;

2020-09-07 09:09:22 137

原创 [POJ1487/SERC1998]Single-Player Games

Single-Player Games题解第二位贞难调诞生了其实大体的思路挺好想的,主要是写着字符串处理与高斯消元比较麻烦。根据每一个数我们是很容易得到一个方程,毕竟它给我们的就是一个方程我们很容易发现一个括号内的期望值,就是它可以走的儿子的期望值的平均数,我们可以先将后面那一大堆括号化简,得到一个方程,形如的方程式,我们先将左边的移动过去,再将右边表示常数的移动过来,就得到了一个典型的高斯消元的方程式,我们总共有个这样的方程式,解出来即可。说一些需要注意的点吧方程式中的常数读入

2020-09-04 21:43:39 193

空空如也

空空如也

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

TA关注的人

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