自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 CodeForces - 559C Gerald and Giant Chess

题面题意有一个m*n的棋盘,其中有k个黑点,问从左上角向右下角走,每次只能向右或向下走,问有几种不经过黑点的走法。做法首先因为n*m很大,而k较小,因此从k开始考虑算法,首先可以发现从(a,b)->(c,d)只向右或向下的走法一共有C(b+d-a-c,b-a)种,然后考虑减去经过黑点的情况。对于这类题目我们不用根据一共经过哪些黑点来考虑,而是可以考虑第一个经过的黑点是哪一个来分类,...

2018-09-28 15:10:30 144

原创 UVA - 12304 2D Geometry 110 in 1!

题面题意计算几何模板题,一共有六种操作:1.给出三个点,求它们的外接圆。2.给出三个点,求它们的内切圆。3.给出一个点个一个圆,求过这个点且与圆相切的直线与X轴的夹角。4.给出一给点,一条线和r,求半径为r且与这条直线相切并过这个点的圆的圆心坐标。5.给出两条直线和r,求半径为r且同时与这两条直线相切的圆的圆心坐标。6.给出两个圆和r,求半径为r且同时与这两个圆相切的圆的圆心坐标。...

2018-09-27 21:53:09 209

原创 Codeforces 388D Fox and Perfect Sets

题面题意一个集合如果是完美的,则集合如果包含a,b,那么a^b也一定在这个集合内,求所有最大数小于等于n的集合数量。做法对于完美集合,我们可以发现一个线性基一定对应一个合法的完美集合,因此我们可以对线性基进行数位dp,因为一个完美集合可以对应多种线性基,所以可以通过高斯消元使其唯一,也就是说,对于一个经过高斯消元的线性基的每一位,如果它是某个基的最高位,则只有那一个基的这一位为1,反之任何...

2018-09-27 09:44:54 734

原创 CodeForces 1051F The Shortest Statement

题面题意给出一张无向连通图,边数最多比点数多20,多次询问两点之间的最短路。做法这题的关键就是边数比点数多20,因此可以考虑先建出一棵树,这样仅在树上的路径就可以以log复杂度求出。下面考虑不在树上的21条边,易知,如果最短路经过这多出来的至多21条边,则必定经过这21条边两端的至多42个点,因此我们可以预先处理出这至多42个点到图中每个点的最短路,这样a,b两点间的最短路即为min(d...

2018-09-21 14:08:30 291 1

原创 [NOI2015]寿司晚宴

题面题意给出n,在2~n中选择一些数,分成两组,使不存在两个数a,b,分别属于这两组数

2018-09-21 07:49:48 454

原创 CodeForces - 1042F Leaf Sets

#题面#题意给出一棵树,要求将其叶子分成几个集合,要求每个集合中叶子两两之间的距离不大于k,求至少要将其分成几个集合。#做法因为n很大,所以考虑贪心。首先dfs,我们可以自下而上逐个子树考虑,对于一个子树,可以将其拆成几条链,可以将较短的几条链合并在一起,而长的链独自一个集合,然后其父节点与短链集合相连,这样可以保证答案较优。具体见代码,比较难描述。#代码#include<i...

2018-09-18 07:58:04 657 1

原创 BZOJ1098: [POI2007]办公楼biu

题面题意给出一张无向图,求其补图(将原图的边去掉,没有的边全部连上)的联通块的个数。做法因为n很大,所以建出其补图根本不现实,但是我们可以根据原图的边判断那两个点有可能不在同一个联通块内,而若原图中的两点间没有边,则在补图中,两点一定在同一联通块内。 基本的思路使用bfs,枚举一个点,然后枚举与其在补图中与其相连的点(即在原图中与它不相连的点),这样复杂度较高。 考虑优...

2018-09-14 20:38:43 150

原创 [APIO2018] Duathlon 铁人两项

题面题意给出一张无向图,问有多少组点a,b,c满足存在至少一条从a经过b到c的简单路径。做法首先考虑枚举点a,c,这样每一组a,c对答案的贡献就是可能在ac路径之间出现的点的个数,然后我们可以对图建圆方树,使圆点的点权为-1(去重),方点的点权为点双的大小,这样ac路径之间出现的点的个数就是a,c两点在圆方树上的路径的点权和,然后用树形dp统计每个点对答案的贡献即可。 注...

2018-09-04 07:51:03 264

原创 圆方树

解释对每一个点双新建一个方点,由这个方点向点双中的每一个点连一条新边,新边构成的新图即为圆方树,可以发现这张图必然是一棵树(如果原图不连通就是森林)。 可以发现,圆方树中任意两个圆点和任意两个方点之间都没有边。 圆方树可以用于处理图的问题,方点可以用于存储所有与它相连的圆点的信息(有时候存储部分,据题目而定)。代码void dfs(int now){ int p,q,t;...

2018-09-03 20:27:47 312

原创 [ZJOI2009]多米诺骨牌

题面题意给出一张矩形表格,一些地方有障碍物,向其中放1*2的多米诺骨牌(不用填满),要求任何相邻两行之间都有至少一个骨牌横跨,任何相邻两列之间也都至少有一个骨牌横跨,求方案数。做法为方便,用S(i,j,p,q)表示左上角为(i,j),右上角为(p,q)的子矩形 首先用dp预处理出dp[i][j][p][q]表示S(i,j,p,q)随意放骨牌的方案数(不考虑行列有无横跨),...

2018-09-02 18:36:47 893

原创 loj #2322. 「清华集训 2017」Hello world!

题面题意给出一棵树,要求支持两种操作: 1.给出u,v,从u开始每次向v条k条边(如果到v的距离小于k则直接到达v),对所有经过的点的权值开根。 2.给出u,v,从u开始每次向v条k条边(如果到v的距离小于k则直接到达v),求所有经过的点的权值和。做法根据每次跳的长度k进行分块,令块大小为S。 然后对于1~S中的每一个数i建一个森林,每个点的父亲是这个点在原树上与它深...

2018-09-02 11:35:33 630 1

原创 [ZJOI2009]染色游戏

题面题意给出一个m*n的矩形,每个格子内有一枚硬币,正面朝上或反面朝上,每次可以选择一个连通块,要求这个连通块中的所有硬币都在某个反面朝上的左上方,并将这个连通块中的所有硬币翻面,双方轮流行动,问先手有无必胜策略。做法整个图的SG函数值为每个反面朝上的硬币的SG函数值(也就是只有这个硬币反面朝上的局面的SG函数值)的异或和,因此我们可以先算出每个硬币反面朝上的SG函数值,然...

2018-09-02 10:58:09 365 1

空空如也

空空如也

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

TA关注的人

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