Skip to content

Commit

Permalink
new post ICPC0921
Browse files Browse the repository at this point in the history
  • Loading branch information
triccsr committed Sep 22, 2024
1 parent c636158 commit 8a296ae
Showing 1 changed file with 61 additions and 0 deletions.
61 changes: 61 additions & 0 deletions content/post/ICPC20240921/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
title : 'ICPC2024网络赛第二场战犯寄录'
date : 2024-09-22T20:35:46+08:00
draft : false
url : 7327d411
math: true

tags:
- XCPC
---
## 摘要

3人场,~~队友过了~~8题,~~我只负责贡献罚时~~

大佬们只需要负责A题就行了,而战犯要考虑的可就多了。

## 签到

吸取了~~但没完全吸取~~CCPC网络赛和ICPC网络赛第一场的502、503、404等教训,PTA决定比赛的前三分钟只有主机位能看题,其他两个机位禁止进入系统。这次确实没有出现卡顿。

前三分钟3人看A,然后~~~~被A题冗长的题面吓退。

然后副机进入系统,发现F有人过,强大的fyc发现F是大水题,于是写,WA,发现题面理解有误,AC。

我随机点进L,感觉L很可做~~但我想了半天也不会~~,此时fyc发现J排个序就行了,AC。

然后我推了下L的式子,~~和强大的fyc讨论要不要三分这个式子,fyc让我进一步化简~~,然后发现是个对勾函数,AC。

在此期间,强大的队友们AC了A、I。我AC L后强大的Dew会了G,并去写G。

## 战犯

此时所有没开的题都是个位通过人数。我去看了一下C但完全没看懂题,所以去看通过人数稍多一点的E。E的题面很长,但看完题~~并听到旁边队伍的讨论~~之后我和强大的fyc很快就搞出了两次奇偶性bfs的做法。正好我在多校时刚写过一遍奇偶性bfs,所以让我去写E。我很快写完E(在写E的过程中听到旁边的队伍AC了E),交,WA。于是虚拟打印,把机位留给想写C的Dew。

我和fyc一起看我E的代码,看了几遍也没找出bug,改了一些实现细节交上去,不出意外又WA。Dew建议我们再看一下题面以防题意理解有误,于是我们重新看题+问出题人问题,最后确定了题意理解是正确的。

此时Dew发现自己C题的做法假了,于是下机思考C并让fyc重写E题(Dew:把原来的代码忘掉)。然后fyc用前向星写了一遍(我用的vector),仍旧WA。

此时E题的通过人数越来越多,但我和fyc完全看不出任何一份代码的任何一个问题,一度怀疑数据有问题。此时强大的Dew会了C的正解,~~抓我当小黄鸭然而我连C题题意都不清楚~~,去写C。

强大的Dew AC了C题。我和fyc debug E很是红温,于是也抽空想想K题。

然后强大的Dew在我和fyc的建议下又写了一遍E,**然后 把 E AC 了**

## 破案

此时离比赛结束只有20min,此时我虽然想出了K的拆位递归做法,但K题$n=200$,时限1秒,而我不知道怎么把复杂度降到$O(n^3)$,预计无法在比赛结束前通过K。

于是三人一起找不同。最显而易见的不同是Dew使用了Dijkstra而其他人使用了bfs,但在边权为1的情况下两者答案没有区别。此外大家就只能看出变量名的区别了。

终于在比赛结束前1分钟我发现了问题:题目要求输出一条从1到n的最短合法路径,但最短合法路径不一定是简单路径,所以跳前驱时不能到1号点就停止,而应该走完全部长度。

。。。。。。

( fyc:我为了实现出区别,特意把`while(1)`改成了`while(x!=1)`

## 后续

强大的Dew发现只有自己的代码是$O(n)$的,而其他人的代码都是$\Omega(n\log n)$的。后来有人发现C题的$O(n)$做法是CF的原,难度3300。Orz Dew。

我怎么也想不出K的$O(n^3)$做法,然后题解告诉我正解是$O(n^4)$的,由于常数小可以$n^4$1秒过200???

0 comments on commit 8a296ae

Please sign in to comment.