[省选模拟]array】的更多相关文章

这题真是太神了! 考试的时候冲着四十分写了个$O(\frac{N^3logN}{32})$的制杖算法. 然后就狠狠的T掉了.如果没有充分的理解单调性和应用单调性就只有10分的傻逼分拿了. 首先考虑枚举两维,那么随着第二维的递增,第三维必定不上升,搞个指针瞎贪贪就是$O(N^2)$了(而我却SB的硬上了个二分) 然后考虑再优化掉一维,我们把值离散化后求出每个值在A,B,C的第一次出现位置,然后按在A的出现位置递减排序. 那么我们枚举A,这样就只用考虑枚举到的之前的情况了,因为枚举到的后面已经被覆盖…
今天是[LnOI2019]长脖子鹿省选模拟赛的时间,小编表示考的不怎么样,改了半天也只会改第一题,那也先呈上题解吧. T1:P5248 [LnOI2019SP]快速多项式变换(FPT) 一看这题就很手软,没有告诉具体多项式到底有多少项,只好一个一个暴力枚举,但是这也不现实,于是小编就开始骗分,还一分也没骗着.赛后小编看到的题解,才明白这是一道转进制的题,将十进制转换成m进制,m^0,m^1,m^2这不刚好对应上m进制的单位吗?所得结果刚好就是问题的解.那么用短除法模拟算出m进制下f(m)的每一位…
t1-Painting 这道题目比较简单,但是我比较弱就只是写了一个链表合并和区间DP. 别人的贪心吊打我的DP,嘤嘤嘤. #include <bits/stdc++.h> #define ll long long using namespace std; namespace chhokmah { #define N 100005 #define M 5005 int a[N], l[M], r[M], pos[N]; int n, m, cnt; ll sum[M], f[M][M]; ll…
一 稍微转化一下,就是找所有和原树差距不超过k的不同构树的个数 一个挺trick的想法是: 由于矩阵树定理的行列式的值是把邻接矩阵数值看做边权的图的所有生成树的边权乘积之和 那么如果把不存在于原树中的边的边权设为x,做矩阵树定理得到n-1次的多项式第i次项系数就是选择新选择i个边的方案数! 带着x不好做,x=1~n带入,然后插值即可 O(n^4) 二 开始碾标算了: 还是可以树形DP,经典的树形DP套路难办的原因是不知道干掉的子树接在哪里 所以我们干脆先不管接在哪里,先都砍断 一个公式: htt…
爆炸了QAQ 传送门 \(A\) \(Mas\)的童年 这题我怎么感觉好像做过--我记得那个时候还因为没有取\(min\)结果\(100\to 0\)-- 因为是个异或我们肯定得按位考虑贡献了 把\(a\)做个前缀异或和,记为\(s_i\),那么就是要找到 \[\max_{j<i}\{s_j+(s_j\oplus s_i)\}\] 我们假设\(s_i\)第\(k\)位为\(a\),\(s_j\)第\(k\)位为\(b\),\(s_j+(s_j\oplus s_i)\)第\(k\)位为\(c\)…
传送门 又炸了-- \(A\) 唐时月夜 不知道改了什么东西之后就\(A\)掉了\(.jpg\) 首先,题目保证"如果一片子水域曾经被操作过,那么在之后的施法中,这片子水域也一定会被操作" 这个意思就是说,如果一个点\((x,y)\)被操作过,那么它被进行的操作一定是所有操作的一个后缀和 这样的话我们只要对于每个点维护一下它有几个操作,并把操作的后缀和维护起来,就能知道它到底被怎么操作了 维护有几个操作的话二维前缀和就行了 然后关键是后缀和我们应该怎么处理 因为这是一个矩阵,那么我们考…
1 arg (arg.cpp/in/out, 1s, 512MB)1.1 Description给出一个长度为 m 的序列 A, 请你求出有多少种 1...n 的排列, 满足 A 是它的一个 LIS.1.2 Input Format第一行两个整数 n,m.接下来一行 m 个整数, 表示 A.1.3 Output Format一行一个整数表示答案.1.4 Sample1.4.1 Input5 31 3 41.4.2 Output111.5 Constraints对于前 30% 的数据, n ≤ 9…
「题目背景」 小奇在家中的花园漫步时,总是会思考一些奇怪的问题. 「问题描述」 小奇的花园有n个温室,标号为1到n,温室以及以及温室间的双向道路形成一棵树. 每个温室都种植着一种花,随着季节的变换,温室里的花的种类也在不断发生着变化. 小奇想知道从温室x走到温室y的路径中(包括两个端点),第t种花出现的次数. 「输入格式」 第一行为两个整数n,q,表示温室的数目和操作的数目. 第二行有n个整数T1,T2…Tn其中Ti表示温室i中的花的种类. 接下来n-1行,每个两个整数x, y,表示温室x和y之…
题目 题目大意 有一堆点,每个点都有其权值\(c_i\). 每次插入边\((u,v)\),\(u\)和\(1\)连通,\(v\)和\(1\)不连通.最后保证形成一棵树. 每次插入的时候询问\(1\)到\(u\)的路径上逆序对的个数.然后将\(1\)到\(u\)的路径上的所有节点的权值设为\(c_v\). 思考历程 一看就知道是什么数据结构题了-- 然而刚了很久都不知道怎么做-- 于是就直接打暴力.暴力跳\(fa\),用树状数组计算逆序对的个数. 后来还有点时间,于是看准了\(c_i\leq 2\…
目录 @description@ @solution@ @accepted code@ @details@ @description@ 一棵 k-超级树(k-SuperTree) 可按如下方法得到:取一棵深度为 k 的满二叉树,对每个节点向它的所有祖先连边(如果这条边不存在的话). 例如,下面是一个 4-超级树: 请统计一棵 k-超级树 中有多少条不同的简单有向路径,对 mod 取模. input 一行两整数 k, mod. output 一行一整数表示答案. example input1: 2…