雅礼集训 Day5

今日得分:100+0+40 = 140

题解

T1:考虑线性基,考虑每个数位是否会在线性基里,显然除了L的第一位1以外,其他位置只有从0变成1的时候才会加入线性基,对每一位分别判断即可

T2:考虑二分图匹配,对于每一个枚举到的一类点,我们把二类点按照极角序尝试匹配,显然按照这个顺序匹配不会出现冲突问题,因为如果一个点没选,那么直接形成匹配,如果一个点无法增广,那么它一定被选,不会对之后的点产生影响

T3:最后发现是求一个基环树森林的不同构标号个数,分别处理环和树,树哈希,环枚举循环节大小

时间: 2024-12-28 11:40:34

雅礼集训 Day5的相关文章

#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 ??. 你的任务是

「6月雅礼集训 2017 Day5」吃干饭

[题目大意] 询问[L,R]中选若干个数异或起来得到的答案集合大小.多组数据. 对于50%的数据,$R - L \leq 10^4$ 对于100%的数据,$R - L \leq 10^{18}, T \leq 10^2$ [题解] 考虑50%的数据,暴力线性基即可. 这样的复杂度是$O(T(R-L)logn)$ 观察到数据比较特殊,是连续的一段正整数,我们写完线性基暴力然后打个表观察数在什么时候被插入到线性基里. 我们以[23333, 66666]为例: 首先L=23333,这个数一定被插入到线

「雅礼集训 2017 Day5」矩阵

填坑填坑.. 感谢wwt耐心讲解啊.. 如果要看这篇题解建议从上往下读不要跳哦.. 30pts 把$A$和$C$看成$n$个$n$维向量,那$A_i$是否加入到$C_j$中就可以用$B_{i,j}$表示了 枚举矩阵$A$,求出它的秩$r$,如果$C$在$A$的线性空间内则$C$可以被$A$表示出来 那么$B$矩阵的方案数就是$(2^{n-r})^n$ 这时候我们可以发现,由于枚举$A$覆盖了所有情况,秩相同的$C$的答案都是一样的 然后就可以打表算答案了.. 60pts 如果不想看可以跳过这段

雅礼集训——day1、day2

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

雅礼集训 Day6

今日得分:10+0+20=30,修改后90+90+100=280 今日题解: T1:题中所给的结构构成一个内向环套树森林,对于每棵环套树,首先树上的每个点的孩子只能留一个最大的,其他的都需要修改,处理后变为一个环上面连一些链,每个链可以断开链首或者断开环上的前驱节点,并且至少要断开一条环上的边,特判只有一个环的情况即可 T2:一个位置如果先吃掉左边的三明治,那么它左边的位置也会先吃左边,于是我们对于每一行的都搜一遍即可 T3:如果所有操作都是在1~n区间内进行,那么它的实际作用就是去掉最大值再加

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

雅礼集训——day3、day4

day3: 上午考试就拿了10分... T1写了个N^3的暴力,然后就拿了10分...正解是要二分时间然后找到前m个脚,然后用二分套二分求第k大.... T2看了半天感觉并不可做...然后正解居然要用斐波拉契数列的通项来求解.... T3求最小生成树的个数,我以为这道题还是可以拿50分的,然后就没有然后了.推了2小时的样例然后强行把自己劝退了...正解是要用字母树+贪心... 要学的东西又多了好多,压力好大... 下午讲的字符串算法,最后的那个回文树不是很明白...这两天得学一下字符串算法 da

「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$个左引号没有匹配,的方案数 每次,要么有

2017雅礼集训 Day1

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