随笔分类 -  test

摘要:已经不知道这篇博客写给谁看的了。 T1 bracket Sol 维护一个栈,计算每个位置被统计了多少次就是一个乘法原理,然后直接差分即可。 Code #include<bits/stdc++.h> using namespace std; #define int long long namespac 阅读全文
posted @ 2021-11-18 21:30 wwlvv 阅读(54) 评论(0) 推荐(0)
摘要:T1 maware Sol 显然的60分做法是直接维护二维前缀和,复杂度$\mathcal{O}(n4)$ 看范围像是$\mathcal{O}(n3\log n)\(,很容易发现只有矩阵外的1个数能整除全部数个数的时候有可能有解。因数个数在随机情况下期望\)\log n$个,所以可以枚举因数,然后枚 阅读全文
posted @ 2021-11-14 18:40 wwlvv 阅读(52) 评论(0) 推荐(0)
摘要:T1 gem Sol 只会30分的记搜。以前做过一样的,这次写的DP,记录当前用了几枚红/蓝宝石,目前最多红-蓝/蓝-红后缀是多少。转移方程很显然。 T2 sale Sol 看完题很快就想到矩阵快速幂,然后发现是原题。 原题CF514E Darth Vader and Tree比这个甚至还多套了一层 阅读全文
posted @ 2021-11-14 18:21 wwlvv 阅读(42) 评论(0) 推荐(0)
摘要:T1 a Sol 典中典考后简单题。考场咋就做不对。 不过反悔贪心确实写的比较少。把所有区间按照左端点排序,然后枚举每个点查看之前尚未匹配的区间是否有与该区间不交的,不交则配对,否则查看是否有已配对的且右端点更加靠左的,有就反悔修改,否则新增一个未配对点。当前未配对和已配对点维护右端点从小到大的堆即 阅读全文
posted @ 2021-11-10 21:04 wwlvv 阅读(39) 评论(0) 推荐(0)
摘要:其实是新贺题目 T1 靶向药物治疗 合着靶向药物在我体内逛街呢,还字典序最小。 原题P5022 [NOIP2018 提高组] 旅行 Sol 显然从1出发。 对于一棵树就直接贪心选取子节点中编号最小的跑。 对于基环树就枚举删掉环上哪条边再跑树上的解法。 加强版可做$n\leq 10^5$,在树的基础上 阅读全文
posted @ 2021-11-09 21:36 wwlvv 阅读(66) 评论(1) 推荐(0)
摘要:T1 漂亮厨师 Sol 分块维护数列求合法数个数,然后莫队/分段打表求组合数。 Code #include<bits/stdc++.h> using namespace std; inline void File(){ freopen("cook.in","r",stdin); freopen("c 阅读全文
posted @ 2021-11-08 22:06 wwlvv 阅读(63) 评论(0) 推荐(0)
摘要:T1 构造(ryx) Sol 先考虑如何构造能最大化ryx个数:因为y在最终间,几次尝试后发现当数列为$ryxy$重复的时候答案最优。如此可以构造出一个40×40的矩阵,这个矩阵中ryx的个数为$(340-2)(10*2-1)=2204$。然而不难发现,最后一列全部是y,对答案没有贡献,考虑将横排的 阅读全文
posted @ 2021-11-04 22:01 wwlvv 阅读(339) 评论(0) 推荐(0)
摘要:T1 逻辑表达式 Sol 先把操作序列读入下来,然后把数存下来跑。 若要求出原式子计算结果,那就是一个栈,遇到操作符号就弹栈即可。再维护两个栈分别表示让栈顶元素为0或1的最小花费,一直做到最后即可。 注意字符串数组大小要开四倍。 Code #include<bits/stdc++.h> using 阅读全文
posted @ 2021-11-03 22:03 wwlvv 阅读(65) 评论(0) 推荐(0)
摘要:T1 下棋 Sol 直接记搜就可以了,记$f[i][j][k][l]$表示当前放了$i$个白棋$j$个黑棋,直至目前白棋$-$黑棋最大值为$k$,黑棋$-$白棋最大值为$l$。 能放黑棋白棋就枚举放置即可。 Code #include<bits/stdc++.h> using namespace s 阅读全文
posted @ 2021-11-02 20:35 wwlvv 阅读(111) 评论(0) 推荐(0)
摘要:T1 并王(bing) Sol 卡常臭题。但是关我一个考场写$O(n^3)$暴力什么事呢? 好像可以优化到$\sum_{i=1}n f(n)$,$f(n)$表示$n$二进制下1的个数。但是这是基于随机数据优化。如果全部是$2{64}-1$那效率甚至不如我的。 按位统计。从左往右: 如果第$i$个数二 阅读全文
posted @ 2021-11-01 19:12 wwlvv 阅读(31) 评论(0) 推荐(0)
摘要:T1 删数游戏 Sol 直接全部数字加起来减一然后除以9就可以了,非常好证正确性。 Code 懒得粘。 T2 格点迷踪 Sol 构造题。首先考虑直径最小的构造方案:先看$n,m$中有至少一个为奇数:取出奇数那一维的中轴线,然后线上每个点向两边一直延伸即可。 每次延长直径就把边上的延伸线撇过来。 按照 阅读全文
posted @ 2021-10-30 15:55 wwlvv 阅读(61) 评论(0) 推荐(0)
摘要:T1 clique Sol 考场上降智了没写出来。。 把给定的参数$W_i,X_i$转换成区间$(X_i-W_i,X_i+W_i)$,问题转化成求数轴上最多不重区间数。 把所有区间按右端点排序,枚举贪心获取即可。 Code #include<bits/stdc++.h> using namespac 阅读全文
posted @ 2021-10-29 20:52 wwlvv 阅读(46) 评论(0) 推荐(0)
摘要:T1 眼镜 Sol 一次转换子串显然其内部的答案不会造成影响。所以实际贡献就在转换的边界形成差异。而一次转换有两个边界,至多造成两个差异,所以直接从左往右扫一遍,与上一位相异则$ans++$,否则$cnt++$,最后答案就是$ans+min(2,cnt)$ Code #include<bits/st 阅读全文
posted @ 2021-10-28 16:58 wwlvv 阅读(36) 评论(0) 推荐(0)
摘要:T1 普通快乐 Sol 两种解法。 第一种是我考场上想到的。首先把所有奇葩点推入优先队列中。然后按照dijkstra的写法枚举每个点的入队时序,如果访问到一个点已经访问过,且两次访问来源不是同一奇葩点则最短路径就是两次的距离和。时间复杂度$O(n,log,n)$。 第二种解法复杂度略高,但能解决单向 阅读全文
posted @ 2021-10-20 10:47 wwlvv 阅读(75) 评论(0) 推荐(0)
摘要:T1 pay Sol 扩欧求最小解,然后计算方案数和总和。注意一细节即可。不过我根本没写扩欧,我求最小解用的暴力...但是可以证明暴力的时间复杂度不超过$O(\sqrt n)$。 Code #include<bits/stdc++.h> using namespace std; #define in 阅读全文
posted @ 2021-10-15 21:46 wwlvv 阅读(39) 评论(0) 推荐(0)
摘要:T1 P2619 [国家集训队]Tree I Sol 题目实际上的意思就是把原来的最小生成树加上了一个黑白边限制。为了保证我们的答案在符合要求的同时能够最优,用$Kruskal$算法的思想:把全局的边排序求解。那么为了满足要求我们考虑对白色边的权值进行统一修改,使得黑白边顺序在保证正确性的前提下重新 阅读全文
posted @ 2021-10-14 20:31 wwlvv 阅读(29) 评论(0) 推荐(0)
摘要:题意略。 T1 AT2672 [AGC018C] Coins Sol 考场上面想的是六遍贪心做法,可惜写了300行使用替换功能的时候C++死了,心态爆炸就没再写。事后证明算法是正确的,但是码量上并不优秀。 这是我当时考试的解法:首先有个显然的贪心:每个人尽可能去取他有的最多的币种。但是会出现有的币种 阅读全文
posted @ 2021-10-13 21:47 wwlvv 阅读(43) 评论(0) 推荐(0)
摘要:菜鸡只会做这种题/kk T1 Birthday 题目大意 有$n$个物品$m$元钱,每个物品有三个参数$W_i,A_i,B_i$,分别表示该物品价格、价值以及首次购买的额外价值,求用这$m$元钱能得到的物品的最大价值和。 \(1\leq n\leq 1000\) \(1\leq m,W_i,A_i, 阅读全文
posted @ 2021-10-10 19:36 wwlvv 阅读(26) 评论(0) 推荐(0)
摘要:T1 打表(table) Sol 所谓最优不最优都是假的。因为显然当一个取法最优的时候,其对立面就是最不优的,而每次选择优和不优是等概率的,所以实际上每个数都是等概选取,答案就是所有数与原数的差的绝对值之和除$2^k$。 Code #include<bits/stdc++.h> using name 阅读全文
posted @ 2021-09-29 20:20 wwlvv 阅读(36) 评论(0) 推荐(0)
摘要:T1 Dove 打扑克 sol 先想暴力做法:合并直接用并查集统计即可,查询暴力扫一遍处理前缀和,在反着扫一遍计算答案, \(c=0\) 的时候特判。 然后想怎么才能优化:在查询的过程中其实有大量的数是$0$,也就是说其实很多地方可以优化。具体地,简单计算不难发现:至多有$\sqrt n$个值非零, 阅读全文
posted @ 2021-09-27 22:03 wwlvv 阅读(43) 评论(0) 推荐(0)