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] $ 为:

\[d p[i][j]=\left\{\begin{array}{ll} 0 & (i=0) \\ i^{2}+d p[i-1][j] & (i>0, j=0) \\ i^{2}+\max (d p[i-1][j], d p[i-1][j-1]+b[i]) & (i>0, j>0) \end{array}\right. \]

给定一个数列 \(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 $

思路

按题面模拟。


posted @ 2020-10-23 17:05  OwOOwO  阅读(327)  评论(0编辑  收藏  举报