The 17th Zhejiang Provincial Collegiate Programming Contest
Contest Link : Codeforces Gym
Statements & Solutions: Download
A | B | C | D | E | F | G | H | I | J | K | L | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
场上 | 🎈 | 🎈 | 🎈 | 🎈 | ☁️ | 🎈 | ☁️ | 🎈 | 🎈 | |||
Gyx | 🎈 | 💡 | 💡 | 🎈 | 🎈 | |||||||
Xzp | 💡 | 💡 | ☁️ | 🎈 | ||||||||
Zzk | 🎈 | 🎈 | 🎈 | ☁️ |
A. AD 2020
题意
给定一个日期区间(YYYYMMDD),求区间中有多少个日期,对应的八位字符串中含有 '202'
。
思路
求一下从20010101到每天的合法日期,用 \(ans[r] - ans[l - 1]\) 。
(三个人想了半天边界问题 淦)
B. Bin Packing Problem
题意
\(n\) 个物品,第 \(i\) 个大小是 \(a_i\),有无数个箱子,每个容量都是 \(C\) 。
问按照以下两种方式,最后需要多少个箱子:
-
维持箱子的顺序,每次取最靠前的能放进去 \(a_i\) 的箱子放进去,否则开一个新的
-
每次取剩余空间最小的,且能放进去 \(a_i\) 的箱子放进去,否则开一个新的
思路
第一个:查找最靠前的合法箱子,线段树维护区间最大值,线段树上二分
第二个:查找剩余容量最小的合法箱子, set
+ lower_bound
模拟
C. Crossword Validation
题意
给一个 \(n\times n\) 的图,要么是小写字母要么是障碍。给出一个 \(m\) 个单词的字典,每个单词有权值。图中水平顶到障碍和竖直顶到障碍的字符串必须在字典中出现过,求权值和。
思路
Trie就好了,注意仔细读题。
E. Easy DP Problem
题意
对于一个数列 \(b\) ,记 $ dp[i][j] $ 为:
给定一个数列 \(a\) ,每次询问一个区间 \(l_i,r_i\) 和一个整数 \(k_i\) :
当区间里的数字按原顺序作为 \(b\) 时,\(dp[r_i-l_i+1][k_i]\) 的值是多少
思路
手玩一下,发现 $dp[i][k]=\sum_{j=1}^i j^2 + $ { \(b_1...b_i\) 中的前 \(k\) 大和 }
写一个值域主席树,支持查询区间前 \(k\) 大和即可。
K. Killing the Brute-force
题义
给两个长度为 \(n\) 的序列 \(a_i,b_i\) ,求最小的 \(i\) ,使得 $a_i > 3 \times b_i $
思路
按题面模拟。