2021-team02-047

从 Trac 迁移的文章

这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。

原文章内容如下:

[/wiki/2021-team02 返回]

[[Image(Rank.png,1000px)]]

[[Image(Submissions.png,1000px)]]

= 流水账 =

春节连休后的第一次线上比赛。
被橄榄了。
只过了三道签到。
甚至其中有一道,就在刚刚,还被自己hack了……

= 总结 =

=== pb: ===
~~这里是总结~~

=== Creatix: ===
~~这里是总结~~

=== Eden_CY: ===
~~这里是总结~~

= 题解 =

 * A:

 * B:

 * C:问怎么找到或声明不存在一组 x,y, s.t. a[x] + a[y] < a[x | y] + a[x & y];

转化成 a[x | y] + a[x | z] < a[x] + a[x | y | z],然后移项,然后搞出一条不等式链,就证明了有解则必有 y、z 的 bitcount 为 1 的解


 * D:

 * E:

 * F:

 * G:

 * H:n个线段,每次选一个线段,其所表示的区域未被填满的区域最少,然后填满这些区域,求出顺序。
 首先注意到A包含B则一定是B先选。把所有区间按照左端点排序,然后如果有一个区间包含另外的区间就把他设置成inactive。
 每次删一个区间是区间操作(只考虑active的区间),可以线段树维护每个区间有多少个数。

 * I:

 * J:

 * K:

 * L:问最多可以放多少个折线形,才能使之后上帝有办法完成这个拼图。核心要点是,每个折线形,都可以看成左右两个方向里面选一个,然后上下两个方向里面选一个。所以说行和列可以分开考虑。然后把奇数行的格子上下翻转,奇数列的格子左右翻转,就变成需要同色连通块。对于每个两端不同的非同色连通线段,跑一个匹配。

[/wiki/2021-team02 返回]

流水账

春节连休后的第一次线上比赛。

被橄榄了。

只过了三道签到。

甚至其中有一道,就在刚刚,还被自己hack了……

总结

pb:

这里是总结

Creatix:

这里是总结

Eden_CY:

这里是总结

题解

  • A:
  • B:
  • C:问怎么找到或声明不存在一组 x,y, s.t. a[x] + a[y] < a[x | y] + a[x & y];

转化成 a[x | y] + a[x | z] < a[x] + a[x | y | z],然后移项,然后搞出一条不等式链,就证明了有解则必有 y、z 的 bitcount 为 1 的解

  • D:
  • E:
  • F:
  • G:
  • H:n个线段,每次选一个线段,其所表示的区域未被填满的区域最少,然后填满这些区域,求出顺序。

首先注意到A包含B则一定是B先选。把所有区间按照左端点排序,然后如果有一个区间包含另外的区间就把他设置成inactive。

每次删一个区间是区间操作(只考虑active的区间),可以线段树维护每个区间有多少个数。

  • I:
  • J:
  • K:
  • L:问最多可以放多少个折线形,才能使之后上帝有办法完成这个拼图。核心要点是,每个折线形,都可以看成左右两个方向里面选一个,然后上下两个方向里面选一个。所以说行和列可以分开考虑。然后把奇数行的格子上下翻转,奇数列的格子左右翻转,就变成需要同色连通块。对于每个两端不同的非同色连通线段,跑一个匹配。