2016-C08-team2

从 Trac 迁移的文章

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

原文章内容如下:

||User||Problem||Result||Memory||Time||Length||Submit Time||
||TaZoF||B||WA|| || ||873||2016-08-08 14:03:35||
||TaZoF||B||CE|| || ||873||2016-08-08 14:02:28||
||TaZoF||A||AC||0||866||2008||2016-08-08 13:44:26||
||TaZoF||A||WA|| || ||2010||2016-08-08 13:35:14||
||TaZoF||A||WA|| || ||1983||2016-08-08 13:21:21||
||TaZoF||I||AC||0||109||1378||2016-08-08 13:16:32||
||TaZoF||J||AC||0||4385||1680||2016-08-08 11:58:44||
||TaZoF||J||RE|| || ||1377||2016-08-08 11:51:30||
||TaZoF||H||AC||0||565||2594||2016-08-08 11:31:35||
||TaZoF||H||WA|| || ||2592||2016-08-08 11:25:54||
||TaZoF||H||WA|| || ||2445||2016-08-08 11:21:09||
||TaZoF||C||AC||0||2716||1259||2016-08-08 10:39:09||
||TaZoF||G||AC||0||586||778||2016-08-08 10:25:13||
||TaZoF||F||AC||0||6||1118||2016-08-08 09:37:08||
||TaZoF||E||AC||0||3||733||2016-08-08 09:16:21||

== 流水账 ==
=== TsReaper ===
今天学长们也比较平稳。开场后Starve学长'''E1y11''','''F1y32'''。之后我们本来想要用贪心做G,看到其他队错了很多,还是决定想一个dp做法,'''G1y80'''。Starve写G的过程中我和hzf学长讨论了C的做法,我上机后'''C1y94'''。Starve学长想到了H的构造姿势,我就和hzf学长讨论I和J。学长的I题似乎有一些想法,我的J只会比较卡时的做法,准备先放一放。后来我们看到大家都过了J,仔细看看J的时限有30s,就准备试试。'''H3y146'''我写了J,因为没考虑爆栈的问题'''J2y173'''。

午饭后我决定先写偏模拟的A,学长们考虑I。很快hzf学长想到了I的做法,我的A也还没调出来,就让hzf学长上机了。一段时间后'''I1y251''',我的A题也在队友的debug下发现了哈希值模太大等错误,'''A3y279'''。最后乱搞B并没有成功。

=== hzf ===
看了一下K,感觉毫无思路...看J,题意好难理解...~~其实还读错了~~看I,神奇的数学题,感觉见过类似这种不能连续两个相同的题目,tc和cf好想都见过类似的...然而死活想不起来...卒...继续看H,感觉像个比较可做的几何构造题,便和starve学长讲了一下题意。之后starve学长拉我讨论G,感觉像个一眼贪心题...但是看到那么多队wa了,我们还是决定动规...starve学长马上上机写...但是我其实有点懵逼...仍然不知道怎么动规,问了一发之后感觉很科学!之后我又和tsr学长讨论出了C的科学做法,tsr学长很快上机过了C。

之后starve学长调H,我和tsp学长确认了一发J的题意,同时发现其时限异常长...tsr学长最初提出的暴力配上bitset变的异常科学!之后stave学长做出了H,tsr学长准备上机写J,这时我对I题的一些性质也有了把握,在tsr学长写完J时我和学长们确认了I的做法,开始思考细节部分,并对用样例检验了一下公式...因为tsr学长A题卡住了,我就上机写了一发I,很快过了。之后A题学长们也发现了一些错误,很快过了。最后时间都花在乱搞B上...~~赛后我感觉搞D可能稍微科学?~~

== 总结 ==
=== TsReaper ===
 * 要考虑爆栈问题
 * 哈希值的模不能太大,考虑相乘可能超出long long

=== hzf ===
 * 推公式尽量保证字迹工整,不随便进行意义不明的省略,以尽量保证一次推对并使队友易于阅读

== 题解 ==
=== D - Association of Computer Maintenance ===
题目求的是k+n/k的最小值,其中k整除n。显然k越接近sqrt(n)越好。现在我们想办法得到一个小等于sqrt(n)且最大的k。一个个枚举因数肯定是不行的,因为因数最多有10^10^个。我们可以把质因数分成两组,使得每组自己组合起来的因数约10^5^个。这样我们只需要从两组因数中各取一个,把它们乘起来,看看能否得到符合要求的最大的k即可。用两个指针扫一遍就好了。

另外由于n太大了,我们可以用对数来比大小。这题貌似有点精度问题,最好用long double。

== 补题 ==
=== TsReaper ===
B, ~~D~~, K

=== hzf ===
B, ~~D~~, K
UserProblemResultMemoryTimeLengthSubmit Time
TaZoFBWA 8732016-08-08 14:03:35
TaZoFBCE 8732016-08-08 14:02:28
TaZoFAAC086620082016-08-08 13:44:26
TaZoFAWA 20102016-08-08 13:35:14
TaZoFAWA 19832016-08-08 13:21:21
TaZoFIAC010913782016-08-08 13:16:32
TaZoFJAC0438516802016-08-08 11:58:44
TaZoFJRE 13772016-08-08 11:51:30
TaZoFHAC056525942016-08-08 11:31:35
TaZoFHWA 25922016-08-08 11:25:54
TaZoFHWA 24452016-08-08 11:21:09
TaZoFCAC0271612592016-08-08 10:39:09
TaZoFGAC05867782016-08-08 10:25:13
TaZoFFAC0611182016-08-08 09:37:08
TaZoFEAC037332016-08-08 09:16:21

流水账

TsReaper

今天学长们也比较平稳。开场后Starve学长E1y11F1y32。之后我们本来想要用贪心做G,看到其他队错了很多,还是决定想一个dp做法,G1y80。Starve写G的过程中我和hzf学长讨论了C的做法,我上机后C1y94。Starve学长想到了H的构造姿势,我就和hzf学长讨论I和J。学长的I题似乎有一些想法,我的J只会比较卡时的做法,准备先放一放。后来我们看到大家都过了J,仔细看看J的时限有30s,就准备试试。H3y146我写了J,因为没考虑爆栈的问题J2y173

午饭后我决定先写偏模拟的A,学长们考虑I。很快hzf学长想到了I的做法,我的A也还没调出来,就让hzf学长上机了。一段时间后I1y251,我的A题也在队友的debug下发现了哈希值模太大等错误,A3y279。最后乱搞B并没有成功。

hzf

看了一下K,感觉毫无思路...看J,题意好难理解...其实还读错了看I,神奇的数学题,感觉见过类似这种不能连续两个相同的题目,tc和cf好想都见过类似的...然而死活想不起来...卒...继续看H,感觉像个比较可做的几何构造题,便和starve学长讲了一下题意。之后starve学长拉我讨论G,感觉像个一眼贪心题...但是看到那么多队wa了,我们还是决定动规...starve学长马上上机写...但是我其实有点懵逼...仍然不知道怎么动规,问了一发之后感觉很科学!之后我又和tsr学长讨论出了C的科学做法,tsr学长很快上机过了C。

之后starve学长调H,我和tsp学长确认了一发J的题意,同时发现其时限异常长...tsr学长最初提出的暴力配上bitset变的异常科学!之后stave学长做出了H,tsr学长准备上机写J,这时我对I题的一些性质也有了把握,在tsr学长写完J时我和学长们确认了I的做法,开始思考细节部分,并对用样例检验了一下公式...因为tsr学长A题卡住了,我就上机写了一发I,很快过了。之后A题学长们也发现了一些错误,很快过了。最后时间都花在乱搞B上...赛后我感觉搞D可能稍微科学?

总结

TsReaper

  • 要考虑爆栈问题
  • 哈希值的模不能太大,考虑相乘可能超出long long

hzf

  • 推公式尽量保证字迹工整,不随便进行意义不明的省略,以尽量保证一次推对并使队友易于阅读

题解

D - Association of Computer Maintenance

题目求的是k+n/k的最小值,其中k整除n。显然k越接近sqrt(n)越好。现在我们想办法得到一个小等于sqrt(n)且最大的k。一个个枚举因数肯定是不行的,因为因数最多有1010个。我们可以把质因数分成两组,使得每组自己组合起来的因数约105个。这样我们只需要从两组因数中各取一个,把它们乘起来,看看能否得到符合要求的最大的k即可。用两个指针扫一遍就好了。

另外由于n太大了,我们可以用对数来比大小。这题貌似有点精度问题,最好用long double。

补题

TsReaper

B, D, K

hzf

B, D, K

附加文件