• Personal Training of RDC


    20/3/26


    763C. Timofey and remoduling - 2500

    题意 在模 (m) 意义下,给 (n) 个数字,能否 shuffle 出等差数列。

    复盘 第一想法是好难不会,然后随手抓两个数字作差一下,发现一定是 (kd) 形式的,其中 (-(n-1)leq kleq n-1),枚举 (k) 可求出 (d),然后 check (d) 是否合法,怎么 check 呢?先根据元素和等于等差数列之和来算首项 (x),然后依次判断 (x,x+d,x+2d...) 是否存在。然后TLE on 57,然后企图通过随机扰动解决问题,施展了半天,倒在了第59个点上,遂黔驴技穷。Bad Ending,每次施展随机化都是 Bad Ending 啊,马季恨。

    题解

    • 求出 (d) 就稳了。
    • 先不考虑模域什么的啊。观察等差数列 (a_1,a_2,...,a_n) 发现差为 (kd) 的有序对个数恰为 (n-k) 个,那随手选两个元素作差一下,其结果 (x) 一定是 (kd) 的形式,统计一下几个有序对差为 (kd) 就能确定 (d) 了。
    • 考虑模域呢,(i)(i+d) 连边会成一个环,脑补一下长度为 (n) 的子串。
    • 发现 (mgeq2n) 以上性质成立!
    • (m<2n) 考虑 (a[]) 的补集可归结到上种 case,可求 (d)
    • 很有趣的 Big-Small 战法。

    coding time 22(-6) here WA题小能手,能WA的地方都WA了一WA

    20/3/27


    788C. The Great Mixing - 2500

    题意 给出浓度为 (a_i) 的一些溶液,配制指定浓度的溶液。

    想法(11)

    • 首先 (k leq 1000)
    • (v_i=a_i-n),选出最少个数物品权值之和为 0。
    • (v_i) 全正或者全负一定完蛋。
    • 否则答案一定小于 2000
    • (f[i][j]) 表示选 (i) 个物品能否凑数 (j)
    • 思考一下发现 (j) 的取值从 ([-1000,1000]) 就无敌了
    • 再思考一下 (f[j]) 表示凑出 (j) 最少用几个元素。BFS 即可。

    coding 5 here

    786C. Till I Collapse - 2600

    想法(解体)

    • 对于确定的一个 (k),贪心地拿
    • (sum ans leq nlogn)
    • 枚举 (k) 一段一段拿,主席树 + 二分。好,我们得到了一个三个 log 做法。哦豁,完蛋。
    • 考虑怎么优化?好难不会。
    • 换做法,考虑一个元素一个元素 append?
    • 注意到对于确定的 (k),每 append 一个元素,答案要么 + 1,要么不变。
    • 那什么时候 +1 呢?显然是 append 这个元素后,最后一段元素个数超过 (k)
    • (append) 这个元素后哪些 (k) 最后一段元素种类数会 +1 呢?
    • 这个得考虑 (append) 的元素上次出现的位置 (x),如果一个 (k) 上一段结束位置 (leq x) 那么最后一段元素种类数会 +1。
    • 权值线段树维护一下上一段结束位置为 (x) 的,元素种类数还需要增加多少,才会新开一段,这么个东西的区间最小值。
    • 我觉得这个做法太卜了,5h 肯定写不完。

    题解

    • 我觉得自己苟狗附体了,主席树+二分....
    • 施展主席树,对每个 (l),将 ([l,n]) 中,每种元素最早出现的位置设为 1,其它位置设为 0,建线段树维护区间和。(O(n(logn)^2))

    coding 17 (-1) here 写主席树,请想清楚空间,谢谢。

    800C. Vulnerable Kerbals - 2400

    想法(10)

    • (ax\%m=b) 有解的充要条件是 (gcd(a,m)|b)
    • 前缀积为 (a) 如果 append 某个元素后,前缀积变成 (b)(a)(b) 连边,当然有些节点是被 ban 掉的,求图上求最长路径。
    • DP 即可。

    coding here


    20/3/28

    今天起床后队切了场 300iq contest,静坐了 4h 啥也做不出,非常马季恨,然后想参加 ABC160 快活一下,结果又被打了,不幸啊!

    CF 800D. Varying Kibibits - 2700 高维前缀和教学怪。基本思想是用 (f(i,x)) 表示 (0)(i-1) 位比 (x) 大,其它位和 (x) 一致的元素集合。

    coding here

    ABC 160F 考虑以 1 为根,节点 (u) 作为 (u) 的子树中写着的数字最小的概率为 (frac{1}{sz[u]}),且对于不同的 (u) 是独立的,因此答案为 (frac{n!}{prod sz_i})。考虑以其它点为根,换根 dp 即可。(能不能从树推广到 DAG 呢?杨表的性质是怎么来的呢?疑惑!)

    2020.3.29

    开火车

    2020.4.1


    CF1332G. No Monotone Triples - 3000

    题意 给序列 (a)(q) 组查询,每组给 ([l,r]),求 ([l,r]) 中极长子序列,不存在长度为 3 的子序列单调。

    做法

    • 打表验证,答案 (leq 4)
    • 四元组 ((i,j,k,l)) 一定满足 (min(a_j,a_k)<a_i,a_l<max(a_j,a_k))
    • 先考虑 (a_i) 两两不同的 case。
    • 考虑 (O(n^2)) 做法,枚举 (i),从小到大枚举 (l),即可求出每个 (i) 对应的最小 (l)
    • 倒着将元素插入,维护一个递增的,一个递减的单调栈,当前插入了 (a_i)(a_i) 是栈顶的元素。考虑不出现在单调栈中的元素有什么性质。
    • 再小心处理非两两不同的 case,处理答案为 3 的 case。

    coding here,写一年,调一年,屡次诈胡,我怎么这么憨啊。

    2020.4.2


    睡不着,打印度区域赛玩,WA 晕了,遂逃跑。

    776F. Sherlock's bet to Moriarty

    诈胡

    • 建图是树。
    • 树分治。
    • 胡了。
    • 不会建图。

    1332D. Walk on Matrix

    看蓝猫学蓝猫题。嗯,就是按照样例搞一搞。

    2020.4.4


    2020.4.5


    CF788C. Peterson Polyglot - 2600

    启发式合并一下 trie,因为不难发现计算 (sz_1,sz_2) 的两棵 Trie 合并后 size 的复杂度为 (min(sz_1,sz_2))

    VP 了场 CF,玩杂技玩得躺地上了。

    Codeforces Round #441 (Div. 1, by Moscow Team Olympiad)

    A. Classroom Watch - 1200

    枚举 (digsum) 即可。

    B. Sorting the Coins - 1500

    仔细观察一下操作趟数。

    C. National Property - 2100

    尝试按位考虑然后完蛋了,然后发现考虑两个相邻的字符串,找到位置最靠前的不同位置,讨论大小关系,good job,然后不知道哪根筋搭错了,开始玩 2-SAT,玩就算了,然后开始对着一份正确的 2-SAT 板子自闭了几乎整场比赛,每个点都被选中,非常令人沮丧!结果发现边建少了。

    D. High Cry - 2200

    idea 是枚举最大值的位置(有多个取最左边或最右边),单调栈搞一下位置 (pos) 上一个大于的位置,下一个大于等于的位置,再按 bit 预处理一下,在位置 (pos) 前面最近的 1,后面最近的 1。

    E. Delivery Club - 2600

    二分答案 (d),考虑怎么 check。 想想这两个人怎么走位,一定是一个人站在原地,另一个到处抽搐,然后抽搐完后站在原地不动,换人抽搐..... 依次类推(好恐怖啊!),哎!我们发现只要相邻两个原地不动的位置 (x[i],x[j](i<j))(x[i+1],x[i+2],...,x[j])(x[i]) 距离都小于等于 (d),win 了啊!

    F. Royal Questions - 2500

    忽然发现,一个人有两个 choice 的问题,好多可以在这两个 choice 直接连边。问题转化为点向边的最大权 match!然后和派大星抓来一只水母,一看!哇!水母点和边一定存在完美匹配哎!问题转化为最大权水母森林。 (注意!连通性不一定要 keep!)

    1328F. Make k Equal - 2400

    if 写成 else if,卡一年。

    1328E - Tree Queries - 2100

    距离为 1?那爸爸一定在根到叶子路径上!

    2020.4.19


    • 快开学啊!
    • 打牛客小白赛衣服被爆了
    • 子集卷积 是个好东西

    2020/4/23


    一年一度的 GCJ!1A 被闹钟叫醒心情不好直接逃跑了。

    • R1A Pattern Matching:构造题。(2sum len) 的上限,苟住前后缀,再把各字符串去掉星号拼一拼插在中间。
    • R1A Pascal Walk:构造,注意第 k 行加起来是 (2^{k-1})(1+...+30 < 500) 太令人开心了,从上往下走,要么拿一行,要么拿一个 1。
    • R1A Square Dance:链表,小心实现。
    • R1B Expogo: 手玩会发现每次四种决策至多只有一种合法,另外 3 种拿头也走不到,从起点出发模拟即可。另解:考虑 (k) 步可以 reach 的集合,倒着枚举每步填什么。
    • R1B Blindfolded Bullseye: 先乱随机找到圆内任意一点,向右走到达 P,从 P 上走,从 P 下走,搞出了一条竖直的弦。垂径分弦。
    • R1B Join the Ranks: 序列中相同的连续的数字可以 compress 一下,从中间割开很憨,一次操作段数至多减 2,因此答案下界为 (lceil frac{r(s-1)}{2} ceil)[1 2] [3 4 5 1] 2.... 每次这样打就无敌了,成功取到下界。Corner case 是 [5] [1 2 3 4] 这样的。
  • 相关阅读:
    交换变量方法总结
    Java Object Model(一)
    Git命令文本手册
    移动端浏览器touch事件的研究总结
    jQuery中的end()方法
    AngularJs开发——控制器间的通信
    网站收藏
    HTTP Content-type 对照表
    ViewData和ViewBag的那些事
    jQuery选择器
  • 原文地址:https://www.cnblogs.com/FST-stay-night/p/12571910.html
Copyright © 2020-2023  润新知