Warning: session_start(): open(/tmp/sess_0ec7d1c06238a78d8d63f7d72f852b5b, O_RDWR) failed: No space left on device (28) in /data/wiki/inc/init.php on line 239

Warning: session_start(): Failed to read session data: files (path: ) in /data/wiki/inc/init.php on line 239

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/auth.php on line 430

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/actions.php on line 38

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/lib/tpl/dokuwiki/main.php on line 12
2020-2021:teams:hotpot:200711-200717 [CVBB ACM Team]

用户工具

站点工具


2020-2021:teams:hotpot:200711-200717

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
2020-2021:teams:hotpot:200711-200717 [2020/07/17 16:26]
lotk
2020-2021:teams:hotpot:200711-200717 [2020/07/17 17:16] (当前版本)
misakatao 更新
行 10: 行 10:
  
 =====专题===== =====专题=====
 +
 +
  
 =====比赛===== =====比赛=====
行 17: 行 19:
 =====题目===== =====题目=====
  
-     *atcoder E - Camel Train +  ​*atcoder E - Camel Train 
- +      *分类:贪心 
-          ​*分类:贪心 +      *题目大意:对于一个队列,里面每个元素有 $li,ri,ki$ 三个量。当期排在前 $ki$ 时价值为 $li$, 否则为 $ri$, 求一个序列最大化价值。 
-          *题目大意:对于一个队列,里面每个元素有 $li,ri,ki$ 三个量。当期排在前 $ki$ 时价值为 $li$, 否则为 $ri$, 求一个 ​ +      *题目解法:我们对其按 $li-ri$ 正负进行分类再按k从小到大/​从大到小排序,并分别从前后用小根堆来进行贪心即可(随时保证堆内元素小于等于 $ki$ 个或是 $n-ki$ )
-           序列最大化价值。 +
-          *题目解法:我们对其按 $li-ri$ 正负进行分类再按k从小到大/​从大到小排序,并分别从前后用小根堆来进行贪心即可(随时 ​ +
-           保证堆内元素小于等于 $ki$ 个或是 $n-ki$ )+
  
 ======陶吟翔====== ======陶吟翔======
行 64: 行 63:
 =====比赛===== =====比赛=====
  
-2020.07.11 [[tyxaisingprogrammingcontest2020|AIsing Programming Contest 2020]] ''​prob:​4/​5/​6''​ ''​rank:​933''​+2020.07.11 [[tyxaisingprogrammingcontest2020|AIsing Programming Contest 2020]] ''​prob:​4/​5/​6''​ ''​rank:​826''​
  
 =====题目===== =====题目=====
 +
 +  *Codeforces Round #655 (Div. 2) C - Omkar and Baseball
 +      *分类:思维
 +      *题目大意:给定一个1到n的排列,一次操作选中连续的一段,改变其中每个元素的位置(不能还在原来的位置)。问最少几次操作使其递增。
 +      *数据范围:$1 \le n \le 10^5$
 +      *解题思路:对任意一段,我们一定可以通过一次操作使得$a_i\neq i$
 +      *Comment:不是很难
 +
 +  *Codeforces Round #655 (Div. 2) D - Omkar and Circle
 +      *分类:思维
 +      *题目大意:给定一个长度为2n+1的环。每次操作,可以选中一个数,用它两边的数之和代替这个数,并删除它两边的数。最终只会剩一个数,问这个数最大是多少
 +      *数据范围:$1 \le n \le 10^5$
 +      *解题思路:显然,最终的结果一定是这个序列中若干元素之和。可以证明,这些元素最多有一组在原先数列中是相邻的。所以只需要看是哪组相邻,然后剩下的隔一个选一个。
 +      *Comment:结论很难想
 +  ​
 +  *Codeforces Round #655 (Div. 2) E - Omkar and Circle
 +      *分类:区间dp
 +      *题目大意:n行m列的方格,每行被划分为连续的若干块。在每块中选一个地方填1。设第i列有$q_i$个1,使得$\sum^n_1q_i^2$最大。求这个最大值
 +      *数据范围:$1\le m,n\le 100$
 +      *解题思路:大致的思路是区间dp。dp[i][j]表示所有完整包含在[i,​j]列的块所能做出的贡献,最终答案即为dp[1][m]。首先证明,在最优策略中,对于[i,​j]区间,一定存在一列k,满足所有完整包含在[i,​j]列且覆盖k的块都在k填了1。因为我们显然希望1尽量地聚集,我们选择1最多的一列,将其他列的1移到这一列,一定使结果变优。所以$dp[i][j]=max\{dp[i][k-1]+dp[k+1][j]+(num[i][j]-num[i][k-1]-num[k+1][j])^2\}$,其中num[i][j]表示在[i,​j]列内的块数。
 +      *Comment:很好的区间dp
  
 ======本周推荐====== ======本周推荐======
行 80: 行 100:
 推荐理由:这种表面上范围很大的题目,很多时候可以考虑第一步的特殊情况进行处理,达到从第二步开始范围就缩小的效果。这种思想极其重要,运用也较为广泛(像是区间取根号)。 推荐理由:这种表面上范围很大的题目,很多时候可以考虑第一步的特殊情况进行处理,达到从第二步开始范围就缩小的效果。这种思想极其重要,运用也较为广泛(像是区间取根号)。
  
-陶吟翔:+陶吟翔:[[https://​ac.nowcoder.com/​acm/​contest/​5667/​I|传送门]] 
 + 
 +题目大意:有一个区间$[1,​n]$,现在可以进行操作把区间$[l,​r]$变成$[l-1,​r],​[l,​r-1],​[l+1,​r]$或$[l,​r+1]$,但是一旦区间变成$[l,​l]$就不能再变,现在有$m$个选择,你可以花费$c$把某一个区间$[l,​r]$向$[l-1,​r]$或$[l,​r-1]$的操作禁止,问能不能完全避免把区间变成$[l,​l]$,如果能,最小花费 
 + 
 +数据范围:$2 \le n \le 500$,$0 \le m \le n(n-1)$,$1 \le c \le 10^6$ 
 + 
 +解题思路:可以把整个过程看作在一个$n \times n$的网格上从$(1,​n)$走向对角线,我们可以断开其中某些地方使得不能从起点走到对角线上,这显然是一个最小割模型,考虑到这道题数据规模较大而图又比较规则,所以我们可以采取建对偶图的方式求解 
 + 
 +推荐理由:这道题看似是一道区间题,但是可以通过转化将其与最小割模型建立联系,考察了做题者对模型进行转化和理解的能力,并且本题建立对偶图虽然有多种方式,但是都必须要保证从起点到终点所经过的一条路径能够组成一组割,考察了做题者对对偶图的理解。
  
 郭衍培: 郭衍培:
2020-2021/teams/hotpot/200711-200717.1594974399.txt.gz · 最后更改: 2020/07/17 16:26 由 lotk