【5.20】【VP】Codeforces Round #782 (Div. 2)

ALL:6
AC:3
补题:2


A略。

B. Bit Flipping

  • 题意:给定一个长为 n n n 的 01 串,你可以进行 k k k 次操作。每次操作中,你可以选择任意一位,并将除了这一位以外的其它位翻转(1 变 0,0 变 1),输出 k k k 次操作后能获得的字典序最大的字符串,并输出每一位在操作中被选择的次数。若有多解输出任意一解。

  • 思路:首先发现性质:对某两位分别操作的话,这两位会置反,且其他位不变。这启发我们可以消去一对0。如果最后剩下一个0的话,将其与末尾配对即可。但是注意到 k 有可能是奇数,因此找到第一个1并操作,这样可以贪心的使得字典序最大且将 k 调整至偶数。

  • AC代码:https://codeforces.com/contest/1659/submission/157654609


C. Line Empire

  • 题意:

你是一个野心勃勃的帝王,但在你征服实数集的王国前,你需要先征服整数集的王国。
假设有一个数轴,你的王国以及其首都初始均位于原点。除此之外数轴上还有 n n n 个未被征服的王国,它们分别位于整数 x 1 , x 2 , ⋯   , x n x_1,x_2,\cdots,x_n x1,x2,,xn 处。你的目标即是征服这些王国。
给定常数 a , b a,b a,b,你可以进行下列操作若干次:

  • 你可以选择一个已经被征服的王国,然后把首都迁到那个王国。
    假设你的首都与所选王国距离为 c c c,那么这次操作的代价为 a × c a\times c a×c
  • 你可以选择一个没有被征服的王国,满足你的首都与其之间没有其他未被征服的王国,然后征服那个王国。
    假设你的首都与所选王国距离为 c c c,那么这次操作的代价为 b × c b\times c b×c

求出征服所有王国的最小总代价。
每个测试点包含 T T T 组数据。


D. Reverse Sort Sum

  • 题意:

对于序列 a a a,我们定义 f ( k , a ) f(k,a) f(k,a) 表示将 a a a 的前 k k k 个元素从小到大排序后得到的序列。
现在我们有一个长度为 n n n01 序列 A A A,我们将根据其进行下列操作:

  • 对于 1 ∼ n 1\sim n 1n 的每个整数 i i i,设序列 B i = f ( k , A ) B_i=f(k,A) Bi=f(k,A)
  • 然后设长度为 n n n 的序列 C C C,满足 C i = ∑ j = 1 n B j , i C_{i}=\sum_{j=1}^nB_{j,i} Ci=j=1nBj,i

给你 n n n C C C,你需要构造任意一个长度为 n n n01 序列 A A A,满足我们根据 A A A 经过上述操作可以得到 C C C保证有解
每个测试点包含 T T T 组数据。


E. AND-MEX Walk

  • 题意:

给定一个 n n n 个节点 m m m 条边的无向简单连通图,边有边权。
我们定义一条途径(即可以重复经过同一个节点或同一条边的路径)的权值如下:

  • 设该途径按顺序经过的边的权值为 w 1 , w 2 , w 3 , ⋯ w_1,w_2,w_3,\cdots w1,w2,w3,
    则该途径的权值为 mex ( { w 1 , w 1 & w 2 , w 1 & w 2 & w 3 , ⋯   } ) \text{mex}(\{w_1,w_1\&w_2,w_1\&w_2\&w_3,\cdots\}) mex({w1,w1&w2,w1&w2&w3,})
    其中 & \& & 表示按位与运算, mex ( S ) \text{mex}(S) mex(S) 表示 S S S 中未出现过的最小自然数。

给定 q q q 次询问,每次给定两个不同的整数 u , v u,v u,v,求所有从节点 u u u 开始到节点 v v v 结束的途径中,途径权值的最小值。

保证:
2 ≤ n ≤ 1 0 5 ; n − 1 ≤ m ≤ min ⁡ ( n × ( n − 1 ) 2 , 1 0 5 ) 2\leq n\leq10^5;n-1\leq m\leq\min(\frac{n\times(n-1)}{2},10^5) 2n105;n1mmin(2n×(n1),105) 且给定的是简单连通图。
边权 w w w 满足 0 ≤ w < 2 30 ; 0\leq w<2^{30}; 0w<230;
1 ≤ q ≤ 1 0 5 ; 1\leq q\leq 10^5; 1q105;

  • 题解:CF1659E AND-MEX Walk 题解

  • 思路:首先,路径是非递增的。然后发现,1 和 2 不可能同时出现在一条路径里,因此答案之有0,1,2这三种情况。

  • 如果存在路径使得mex为0,则必然存在某一位使得经过的边权在这一位上恒为1。因此对于每一位,如果在这一位上为1,则视为连通,建立出32个并查集。如果存在某一位使得两点连通,则mex最小为0。

  • 否则,考虑如何构造mex=1。题解给出,先经过若干奇数权边(可以不经过),到达一条偶数边,然后就可以随便走了,这样就可以保证不会出现1。最后的思路就是,如果在后31个的某个并查集当中,有特殊点(特殊点就是偶数边的两个点),那么就能实现上述构造。

  • AC代码:https://codeforces.com/contest/1659/submission/159596678

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值