2020-team06/C111
从 Trac 迁移的文章
这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。
原文章内容如下:
== trac writer == zgz
== 训练模式 == 三人线下,日常训练。
== 赛时提交 == [[Image(2.png,700px)]]
== 最终结果 == [[Image(1.png,700px)]]
== 比赛链接 == Opentrains 10475
== 训练经历 ==
打之前就知道这场好像挺毒的,然后打起来不出意外的崩了。
前期开题还挺顺利,进入中期后我(zgz)就掉到F的调试里面去了。此时队友应该是开了几个题但是没有开出来(病名为菜),进入后期时cyb和zyh好像是开出了I题,然后cyb去写,同时我给zyh一行行讲我的代码逻辑,但是这并没有什么卵用,还是查不出错。
最后I也没过。GG&WP
因为一共也没开几道题所以好像也没什么可写的
== 简易题解 ==
A:Solved by cyb
B:
C:
D:
E:
F:Unsolved by zgz
题意:希尔伯特大酒店。有两种来客人的方式,一种是来k个,于是所有人向后移动k位来空出前k间房,另一种是来无穷多个,于是所有人位置*2,把奇数位空出来以提供入住。询问有两种,一种是目前k号房的人是哪一批来的,另一种是第k批来的人中编号第x小的房间号。
题解:
对房间号的询问 k<=1e9 ,暴力回溯寻找是哪一波来的即可。对于一整段加法操作的区间可以直接二分,对于乘法操作,最多log次,可以暴力。
对第x个人的询问可以考虑一个区间的操作对编号的影响,其是一个一次函数,可以通过维护一次函数的前缀和来解出某个区间的对应的一次函数。
于是问题从精神上得以解决,还没调过去。
G:Solved by zgz
题意:求两点间最小字典序路径,长度超过1e6则输出TOO LONG.
题解:对每个点处理出能到达T的边中字典序最小的即可,然后暴力贪心转移。
H:Solved by cyb & zgz
题意:有两个排列,对排列B进行相邻位置交换操作,使得两序列相对应位置差的绝对值的和尽可能小。输出最小操作次数。
题解:显然要大于n/2的和小于n/2的配对,如果都是小于的配对或者都是大于的配对就可以更优。对于所有优的配对,交换其中的一些是不影响答案的,那么把大于n/2的赋为1,否则赋为0,让1和0配对即可。可以贪心解决。需要注意的是n为奇数时需要考虑n/2+1的配对。
I:
J:好像是Solved by cyb ?
K:
== trac writer == zgz
== 训练模式 == 三人线下,日常训练。
== 赛时提交 == 
== 最终结果 == 
== 比赛链接 == Opentrains 10475
训练经历
打之前就知道这场好像挺毒的,然后打起来不出意外的崩了。
前期开题还挺顺利,进入中期后我(zgz)就掉到F的调试里面去了。此时队友应该是开了几个题但是没有开出来(病名为菜),进入后期时cyb和zyh好像是开出了I题,然后cyb去写,同时我给zyh一行行讲我的代码逻辑,但是这并没有什么卵用,还是查不出错。
最后I也没过。GG&WP
因为一共也没开几道题所以好像也没什么可写的
简易题解
A:Solved by cyb
B:
C:
D:
E:
F:Unsolved by zgz
题意:希尔伯特大酒店。有两种来客人的方式,一种是来k个,于是所有人向后移动k位来空出前k间房,另一种是来无穷多个,于是所有人位置*2,把奇数位空出来以提供入住。询问有两种,一种是目前k号房的人是哪一批来的,另一种是第k批来的人中编号第x小的房间号。
题解:
对房间号的询问 k<=1e9 ,暴力回溯寻找是哪一波来的即可。对于一整段加法操作的区间可以直接二分,对于乘法操作,最多log次,可以暴力。
对第x个人的询问可以考虑一个区间的操作对编号的影响,其是一个一次函数,可以通过维护一次函数的前缀和来解出某个区间的对应的一次函数。
于是问题从精神上得以解决,还没调过去。
G:Solved by zgz
题意:求两点间最小字典序路径,长度超过1e6则输出TOO LONG.
题解:对每个点处理出能到达T的边中字典序最小的即可,然后暴力贪心转移。
H:Solved by cyb & zgz
题意:有两个排列,对排列B进行相邻位置交换操作,使得两序列相对应位置差的绝对值的和尽可能小。输出最小操作次数。
题解:显然要大于n/2的和小于n/2的配对,如果都是小于的配对或者都是大于的配对就可以更优。对于所有优的配对,交换其中的一些是不影响答案的,那么把大于n/2的赋为1,否则赋为0,让1和0配对即可。可以贪心解决。需要注意的是n为奇数时需要考虑n/2+1的配对。
I:
J:好像是Solved by cyb ?
K: