2020 区域赛(南京)

亚洲区域赛(南京)A:Ah, It's Yesterday Once More打表题,我也不知道为什么B:Baby's First Suffix Array Problem神题C:Certain Scientific Railgun神题D:Degree of Spanning Tree给出一个图,求一棵生成树,它的所有节点的度数不超过 n/2。这里有一个结论是:对于一棵树,最多只有一个节点的度数超过n/2。假设树有n个点,则有n-1条边,总...
摘要由CSDN通过智能技术生成

亚洲区域赛(南京)

 

A: Ah, It's Yesterday Once More

 

打表题,我也不知道为什么

 

B:Baby's First Suffix Array Problem

神题

 

C:Certain Scientific Railgun

神题

 

D:Degree of Spanning Tree

给出一个图,求一棵生成树,它的所有节点的度数不超过 n/2。

这里有一个结论是:对于一棵树,最多只有一个节点的度数超过n/2。假设树有n个点,则有n-1条边,总度数是2*(n-1)。如果有两个节点的度数超过n/2,其他节点的度数为1,那么总度数则>n+(n-2)=2*(n-1)。

因此没有度数大于n/2时直接输出生成树

否则,取度数大于n/2的节点为根,尝试使用非树上的边替换与根相连的边。

    得出的生成树与根断开,形成独自的块(并查集维护)。然后枚举非树上的边且不与根连接的边,重新生成新的树。当使用边时,根的度数和对应的块减1,边的两个节点度数对应加1.如果加上后大于n/2,则需要回退。

 

if(f(u)!= f(v)) {
  d[u]++;
  d[v]++;
  int iny = ft[f(v)]; //和根连接的点
  d[idx]--;
  d[iny]--;
  if(d[u]>n/2 || d[v]>n/2){ //加上非树边后,度数超过n/2
	d[idx]++;
	d[iny]++;
	d[u]--;
    d[v]--;
    continue;
  }					
  vis[iny]=1;
  e[i].ok =1;
  e[i^1].ok=1;
  fa[f(v)] = f(u);
}

E: Evil Coordinate

给出一个UDLR字符串表示机器人的动作序列。机器人一开始在(0,0), 有一个炸弹在(mx,my)。问是否存在一个字符串的排列使得机器人根据这个排列去走不会经过(mx,my)。

 

字符串的终点是固定的,如果起点或者终点在(mx,my),则无解。将上下左右合并,然后枚举走的顺序,如果合法则输出

 

F: Fireworks 

制作花火,每制作k次则需要m分钟去点亮。每制作一次需要n分钟,花火被点亮的概率是p。制作完k个花火后,如果有花火被点亮后则停止,否则继续。

 

k次花火有一支被点亮的概率为q=1-(1-p)^k.则被点亮的期望次数是1/q. 总时间是k*n+m。

求k使得值最小。3分求极值

 

G: Go

神题

 

H: Harmonious Rectangle

给出一个n,m的矩阵,里面填1,2,3。求有多少种填法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值