2017雅礼集训 Day2

今日得分:60+100+25 = 185,修改后60+100+100

今日题解:

T1:有nlogn对不合法的数对,这些数对在DFS序上的支配范围画在平面上是一个或两个矩形,求矩形面积并即可

T2:递推,考虑新增加的一行一列的状态

1、与前面的一行共同完全占据了两行两列,为避免重复我们规定必须选第i列,那么行有C(i,2)种选法,列有i-1种:f[i-2]*C(i,2)*(i-1)

2、没有与前面一行共同占据两行两列,那么相当于把冲突的其中一个位置换到最后一列去:f[i-1]*C(i,2)*2

加起来即可

T3:考虑费用流,发现费用流可以模拟,因为树的特性,链长很短,可以用f[i][0/1]维护一个点向左/右子树走到一个有容量点的最短距离,每次新加入一只鸟的时候从这个点向他的父亲枚举拐点即可,注意信息更新顺序

时间: 2024-10-12 07:16:06

2017雅礼集训 Day2的相关文章

2017雅礼集训 Day1

今日得分:60+0(忘记关调试输出)+50 = 110 今日题解: T1:std做法:直接暴力n^2枚举,搜索加最优性剪枝 做法2:O(17n)DP,记录匹配偏移量 T2:求出通项,把不同的幂次拆开计算,单独一项的幂次可以分治FFT 我的做法:分治矩乘,但我不知道矩阵怎么FFT T3:虚树+树链剖分维护,标程400行 感觉还行?明天会做得更好的

2017雅礼集训 Day4

今日得分:100+100+80(puts("nan")骗得70分) = 280 今日题解: T1:依赖关系构成一个森林,直接树形DP T2:最终答案只会选两个区间,除去覆盖情况后枚举右端点,单调队列维护左端点即可 T3:积分后发现是求最终距离的4次方的期望,直接平方求出二次方的期望,然后容斥求出四次方 T3什么玩意

#6030. 【雅礼集训 2017 Day1】矩阵

#6030. 「雅礼集训 2017 Day1」矩阵 题目描述 有一个 n×n  的矩阵,每个位置 (i,j) 如果是 . 表示为白色,如果是 # 表示为黑色. 初始时,每个位置可以是黑色或白色的,(i,j)  位置的值会作为 ai,j 给你. 现在有一种操作,选择两个整数 i,j∈[1,n],记 (i,1),(i,2),…,(i,n) (i, 1), (i, 2)的颜色为 C1,C2,…Cn ??,将 (1,j),(2,j),…,(n,j)  的颜色赋为 C1,C2,…,Cn ??. 你的任务是

2017雅礼省选集训做题记录

嘛,最近在补雅礼省选前集训的题.都是我会做的题..那一定是最水的那些题啦 题目在loj.ac上都有.过段时间如果搬了雅礼NOI集训的题应该也会做做的吧.. Day1 T1 一道经典套路题,做法跟UOJ #228基础数据结构练习题类似. 使用线段树维护.考虑相邻两个数的差值最多变化log次.也就是说,对于每个区间,只要操作二进行大概log次就能使得这个区间内所有数完全一样.所以对于操作二,只要记录一下区间最大最小值,就能直接打标记或者暴力DFS下去. 和UOJ那个题一样,注意一个特殊情况,就是一个

「6月雅礼集训 2017 Day2」A

[题目大意] 给出一棵树,求有多少对点(u,v)满足其路径上不存在两个点a,b满足(a,b)=1 n<=10^5 [题解] 考虑找出所有不符合的点对,共有n*ln(n)对,他们要么是祖先->儿子边,要么是不是. 考虑祖先->儿子边,那么一个点在祖先以上,一个点在儿子以下的点对全部无法访问. 考虑另外一种边,就是LCA不是两个端点的,这就比较好统计了,两个点在这两棵子树的点对无法访问. 考虑用DFS序,这样子树就是连续的一段(祖先以上是连续两段) 然后就是一个二维覆盖问题,用扫描线+线段树

雅礼集训 2017 Day2

水箱 loj6032 先分析一波考试时乱搞搞 对于 20% 的数据,n,m≤16: 暴力枚举每个条件是否满足,然后检查,复杂度O(2m) (然而我太菜了,这都能打错) 对于另外 10% 的数据,只存在指明某处有水的条件: 水箱的高度是无限的,所以无论条件给出的y有多大,均能满足,直接输出m 原文地址:https://www.cnblogs.com/XYZinc/p/8603852.html

雅礼集训——day1、day2

day1: 嗯上午考试拿了100分.第一题40,第二题60.看完题的时候我就觉得第二题的部分分是最好得到的,因为数据范围只有300,而且一眼看上去就是网络流的二分图多重匹配模型?然后就建了个网络流写了些,期望得分是70分,但是第1组数据有点劲,被卡掉了,就拿了60分.正解是map+set的贪心...并不会STL 写完T2去看T1,先用DFS乱搞了一下,结果样例都没过去,我手推了一下样例,得到了一个公式,就是从一个点出发需要加上的边数=这个点通过DFS能够遍历到的点的个数-与这个点直接相连的点的个

loj6029 「雅礼集训 2017 Day1」市场

传送门:https://loj.ac/problem/6029 [题解] 考虑如果有一些近似连续的段 比如 2 2 2 3 3 3,考虑在除3意义下,变成0 0 0 1 1 1,相当于整体-2 又:区间增加很容易造成这种段,所以我们猜测可以暴力维护 用一棵线段树即可.(好像真的能暴力维护啊 我不知道怎么证明复杂度) # include <stdio.h> # include <string.h> # include <iostream> # include <al

「6月雅礼集训 2017 Day10」quote

[题目大意] 一个合法的引号序列是空串:如果引号序列合法,那么在两边加上同一个引号也合法:或是把两个合法的引号序列拼起来也是合法的. 求长度为$n$,字符集大小为$k$的合法引号序列的个数.多组数据. $1 \leq T \leq 10^5, 1 \leq n \leq 10^7, 1\leq K \leq 10^9$ [题解] 显然引号序列可以看做括号序列,于是我们有了一个$O(n^2)$的dp了. 设$f_{i,j}$表示到第$i$个位置,前面有$j$个左引号没有匹配,的方案数 每次,要么有