zoukankan      html  css  js  c++  java
  • ZJOI2021 游记

    Day1

    没有给每一道题分别建子文件夹,爆零了

    算了还是简单写一下吧。

    8:25

    下发了密码

    开题一看 T2T3 都不会,T1 好像不难。

    8:30

    开始敲代码。

    8:50

    发现题目看错了,没有看到 (m) 的限制。

    仔细思考了一下好像又会了,枚举最小值在什么位置,然后第一次跑是 ( m min)(a) 数组里的,第二次交换 (a)(b)(m = n - m) 去跑 ( m min)(b) 数组里的。

    然后中间的东西用优先队列去随便搞搞即可。

    10:00

    经过长时间的调试终于过了前两个样例。

    第三个样例输出十分离谱?

    10:20

    发现自己犯了十分 zz 的错误,但是输出更离谱了。

    冷静分析发现自己做法假了,( m min)(b) 数组里的不能这么做,要换种做法,然后又去胡了个做法。

    11:00

    新做法过了小样例和第三个样例,但是没有过第二个。

    11:20

    冷静分析发现自己做法又假了,于是把那个对于 ( m min)(b) 数组的部分给删掉了,由于脑子快要爆炸了决定不管 ( m T1) 了,如果后面又可做题没做就可惜了。

    然后 ( m T2)( m T3) 都仔细思考了一下,觉得 ( m T2) 更可做一些就去搞 ( m T2)

    11:40

    如果枚举第一行和第一列,然后设 (f_{x, y} = sumlimits_{i = 1}^{x} sumlimits_{j = 1}^{y} b_{i, j} (-1)^{x+y-i-j})

    那么可以发现 ( m T2) 的一个性质:

    (a) (x_1) (x_2) (x_3) (x_4) (...)
    (y_1) (f_{1,1}-x_1-y_1-a) (f_{1,2} -x_2 +y_1+a) (f_{1,3}-x_3-y_1-a) (f_{1,4}-x_4+y_1+a) (...)
    (y_2) (f_{2,1}+x_1-y_2+a) (f_{2,2}+x_2+y_2-a) (f_{2,3}+x_3-y_2+a) (f_{2,4}+x_4+y_2-a) (...)
    (y_3) (f_{3,1}-x_1-y_3-a) (f_{3,2} -x_2 +y_3+a) (f_{3,3}-x_3-y_3-a) (f_{3,4} -x_4 +y_3+a) (...)
    (y_4) (f_{4,1}+x_1-y_4+a) (f_{4,2}+x_2+y_4-a) (f_{4,3}+x_3-y_4+a) (f_{4,4}+x_4+y_4-a) (...)
    (...) (...) (...) (...) (...) (...)

    于是分行列的奇偶性讨论一下就是一个线性规划问题了。

    但是这个表格看上去有很优美的性质?

    12:00

    发现:

    对于 (x_i),令 (X_i = egin{cases} a+x_i ; iequiv 1 pmod 2 \ a-x_i; iequiv 0 pmod 2 end{cases})

    对于 (y_i),令 (Y_i = egin{cases} -y_i ; iequiv 1 pmod 2 \ y_i; iequiv 0 pmod 2 end{cases})

    然后就是一个差分约束问题了。

    疯狂敲代码。

    12:30

    写完了,感觉来不及调。

    12:55

    终于过了样例。

    手忙脚乱地加了个文操,把代码放到文件夹里。

    12:58

    发现自己 T2 有个调试没删,赶快删了。

    然后比赛就结束了,T3 的暴力也没时间打。

    13:??

    听说自己又把文件夹建错了,回忆了一下确实,爆零了

    Day2

    面到了神 yzc2005 和 ylwang /se

    8:20

    看了眼题,T1 大数据结构,T2 小清新 ( m DP),T3 貌似是科技题?

    8:30

    决定正开(

    T1 很像 ( m XJ) 模拟赛的一道题,但是那场模拟赛太毒瘤了还没有讲题就没去补。。。

    想了想只会 (Theta(n log^2 n)),但是想了想又假了,变成了 (Theta(n log^3 n))

    9:20

    写完了?

    写了 ( m 4.5k)。。。不知道要调多久。。。

    9:40

    过第一和第二个样例了,但是第三个样例 ( m RE) 力!!!!1

    点开数据一看,是个类似于链的东西,需要开栈。但是我发现我不会开栈,于是就测不了了。

    写了个拍子,大概在 (10:20) 的时候拍上了。测了下随机数据都要跑 4s,怕不是要 T 非。

    10:50

    这个 T2 感觉很简单,懒得拍了就去看看 T3 。

    T3 的 (Theta(nmq)) 暴力就是把每一个点删掉跑 bfs,但是总感觉这个可以 (bitset) 优化。

    想了半天无果,于是写完暴力就跑了。

    12:00

    啊我好像会 T1 的 (Theta(nlog^2n)) 的了。

    7k 的代码,没调出来。

    13:00

    我 T3 树的分忘记写了 /dk

    简单思考了一下 T1,貌似把我的 lower_bound 查表换成哈希表就是 (Theta(n log^2 n)) 了,那是我不太行。

    但是如果这个时候再加我最后想加的优化(链顶向下的一段用主席树做)并用 (k) 叉树就是 (Theta(frac{n log^2 n}{loglog n})) 的了(在线)。

    不过我好像没有去往离线算法方面想,说不定有更优的?

    估分是 ([25, 100] + 100 + 30 = [155, 230])(这里只考虑卡常问题)


    接着就是发现自己 D2T3 数组开小了(test1 和 test2 挂了,我的空间和询问多少有关)。

    D1T2 忘了把 (dis) 数组请空(尽管本来也爆零了233)

    upd :确实有更优的,离线倍增/点分 好像都可以 (Theta(n log n))

    恭喜 hehezhou 成为 ( m A) 队队长!!!!!!!1


    出分了。。。

    [0+0+0+100+100+30 ]

  • 相关阅读:
    shell脚本day06-sed
    shell脚本day05-交互式输入与for语句
    shell脚本day04-if语句
    shell脚本day04-grep与正则表达式
    shell脚本day03-编程原理
    shell脚本day02-重定向与管道符
    编程原理大致介绍
    进程管理
    Linux网络
    shell脚本--grep以及正则表达式
  • 原文地址:https://www.cnblogs.com/zkyJuruo/p/14641005.html
Copyright © 2011-2022 走看看