暑期集训第一场欧拉回路 | 思维 | 数论构造 | 容斥原理 | 线段树 | 归并排序

Posted 403 Forbidden

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了暑期集训第一场欧拉回路 | 思维 | 数论构造 | 容斥原理 | 线段树 | 归并排序相关的知识,希望对你有一定的参考价值。


集训1(HDU2018 Multi-University Training Contest 2)


ID A B C D E F G H I J
AC O O
补题 ? O ? O


代码 & 简易题解


[A]:期望?

神仙题,留坑..


[B]:??

\(\text{A}\)


[C]:求欧拉通路条数,以及每条的路径

小学数竞里有讲过,无向图一笔画的充要条件是有零个或两个“奇点”(偶点个数不限),“奇点”在这里就是指度为奇数的点...

其实上面两种情况就分别对应着欧拉回路和欧拉通路,并且如果把两个奇点连起来的话欧拉通路就变成欧拉回路了。

于是我们考虑本题应该也可利用这种思路。对于至少有 \(2\) 个点的无向连通块,如果它有 \(2*k\) 个奇点(注意奇点必有偶数个,因为每条边可看做贡献了两个度,所以总度应该是偶数,而偶点不管有多少个他们的总度都是偶数,所以奇点的总度也应该也是偶的,所以奇点就必须有偶数个),那么我们把这 \(2*k\) 个奇点任意两两连接就可以使这个连通块不含任何奇点,也就成为一个欧拉回路了。找到欧拉回路后,再断掉这 \(k\) 条新增的边,就得到 \(k\) 段欧拉通路,也就得解了。

当然,如果这个连通块只有一个点,那就特判一下,此时不存在欧拉通路。


\(\text{AC}\) 代码:


[D]:思维

两个人玩游戏,轮流每次从 \(\{1, 2, 3, ..., n\}\) 的集合中选一个数,然后把集合中存在的这个数的所有因子剔除(包括自身),如果某个人无法再操作(面对?)则输掉游戏,问是否先手必胜?

答案是肯定的。若 \(n==1\),那显然先手必胜。若 \(n>1\),先考虑 \(\{2, 3, ..., n\}\),如果面对这一批后手有必胜策略,则加上 \(1\) 之后先手者第一步拿 \(1\),那么就先手必胜了;而如果先手者对 \(\{2, 3, ..., n\}\) 已经有必胜策略,那么算上 \(1\) 后还是按原来必胜策略来即可必胜,因为先手者不管拿什么非 \(1\) 都会拿走 \(1\)

\(\text{AC}\) 代码(C):

main(){while(~scanf("%*d"))puts("Yes");}


[E]:数论构造

\(\text{AC}\) 代码:


[F]:容斥




[G]:线段树


[J]:思维+归并排序


补题方案

  • E、G 较简单,赛后应马上补上。

  • C、F 属于常见知识点,也应尽快补上。

  • 其余神仙题...待进一步提升实力后再回来填坑吧QAq


总结

  • 死磕没有结果时,应该去跟榜...


实在是菜的一笔>A<
好好补题吧


集训1(HDU2018 Multi-University Training Contest 2)


ID A B C D E F G H I J
AC O O
补题 ? O ? O


代码 & 简易题解


[A]:期望?

神仙题,留坑..


[B]:??

\(\text{A}\)


[C]:求欧拉通路条数,以及每条的路径

小学数竞里有讲过,无向图一笔画的充要条件是有零个或两个“奇点”(偶点个数不限),“奇点”在这里就是指度为奇数的点...

其实上面两种情况就分别对应着欧拉回路和欧拉通路,并且如果把两个奇点连起来的话欧拉通路就变成欧拉回路了。

于是我们考虑本题应该也可利用这种思路。对于至少有 \(2\) 个点的无向连通块,如果它有 \(2*k\) 个奇点(注意奇点必有偶数个,因为每条边可看做贡献了两个度,所以总度应该是偶数,而偶点不管有多少个他们的总度都是偶数,所以奇点的总度也应该也是偶的,所以奇点就必须有偶数个),那么我们把这 \(2*k\) 个奇点任意两两连接就可以使这个连通块不含任何奇点,也就成为一个欧拉回路了。找到欧拉回路后,再断掉这 \(k\) 条新增的边,就得到 \(k\) 段欧拉通路,也就得解了。

当然,如果这个连通块只有一个点,那就特判一下,此时不存在欧拉通路。


\(\text{AC}\) 代码:


[D]:思维

两个人玩游戏,轮流每次从 \(\{1, 2, 3, ..., n\}\) 的集合中选一个数,然后把集合中存在的这个数的所有因子剔除(包括自身),如果某个人无法再操作(面对?)则输掉游戏,问是否先手必胜?

答案是肯定的。若 \(n==1\),那显然先手必胜。若 \(n>1\),先考虑 \(\{2, 3, ..., n\}\),如果面对这一批后手有必胜策略,则加上 \(1\) 之后先手者第一步拿 \(1\),那么就先手必胜了;而如果先手者对 \(\{2, 3, ..., n\}\) 已经有必胜策略,那么算上 \(1\) 也不造成任何影响,因为先手者不管拿什么都会拿走 \(1\)

\(\text{AC}\) 代码(C):

main(){while(~scanf("%*d"))puts("Yes");}


[E]:数论构造

\(\text{AC}\) 代码:


[F]:容斥




[G]:线段树


[J]:思维+归并排序


补题方案

  • E、G 较简单,赛后应马上补上。

  • C、F 属于常见知识点,也应尽快补上。

  • 其余神仙题...待进一步提升实力后再回来填坑吧QAq


总结

  • 死磕没有结果时,应该去跟榜...


以上是关于暑期集训第一场欧拉回路 | 思维 | 数论构造 | 容斥原理 | 线段树 | 归并排序的主要内容,如果未能解决你的问题,请参考以下文章

2018 HNUCM ACM集训队选拔第一场

2019暑期集训感悟

经典欧拉回路应用——旋转鼓轮模型

经典欧拉回路应用——旋转鼓轮模型

HDU 4850 Wow! Such String! 欧拉回路一顿乱构造

图的路径:欧拉路(欧拉回路)