做题记录--CF板子题 2023.9.13

1336A. Linova and Kingdom Problem - 1336A - Codeforces

给定 n 个节点的有根树,根是 11 号节点。

你可以选择 k 个节点将其设置为工业城市,其余设置为旅游城市。

对于一个工业城市,定义它的幸福值为工业城市到根的路径经过的旅游城市的数量。

你需要求出所有工业城市的幸福值之和的最大可能值。

思路

正向考虑--选取哪几个节点作为工业可以使幸福值最大。如果一个工业节点之前添加工业节点,其幸福值需要重新计算,难以计算,考虑反向思路

反向考虑--选取哪几个节点作为旅游可以使幸福值最大。可以想象,旅游节点一定是从根节点开始向子节点延伸,中间不会有工业节点。同时也意味着工业节点也是连续的

根据①可以知道,假设该节点为工业节点那么它的所有子节点也要为工业节点。因此一个节点的幸福值应该为dep-son(深度-子节点数),减去子节点是为了避免重复计算。

 1352G. Special Permutation Problem - 1352G - Codeforces 

给定 t 组数据,每组数据包含一个整数 n。

对于每个整数 n,你需要输出一个长度为 n 的全排列 p,求其中任意两个相邻(相邻)元素的绝对差(即差的绝对值)在2和4之间(包括2和4)的排列数p。形式上,求每一个 (1≤i<n)都是 2≤|pi−pi+1|≤4的这样的排列 p。

思路

很容易看出来全奇数顺序排列和全偶数顺序排列都满足2≤|pi−pi+1|≤4,只要将两个排列组合起来就可以。

由于需要尽可能少的改变序列的顺序,优先考虑拼接,再看条件--2≤|pi−pi+1|≤4

可以发现两数间隔最大为4,也就是任意两序列的第i个和第i+2个(例如1和4)都可以兼容

那么可以先放奇序列,再放偶序列,并在连接处改变偶序列前两个的相对位置。

(eg 1 3 5 7 9 6 8 4 2)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值