牛客练习赛76 C.CG的通关秘籍与codeforces 1478D

在这里插入图片描述
这个题主要的一点是找到一个关系f(x,y)来实现对总的方案的划分,这种用两个元素之间的关系形成的函数似的东西来划分一个对象的思路用对了比较好使,往往找准之后就能一下子明朗。发现题目有这种势头的可以以此观点为指引方向。
那么这个题的势头就很明显,设x1,x2为紧挨着的两个元素,f(x1,x2)表示x1,x2这两个元素之间所能搞出来的贡献点,总共有n-1个这样的f关系,且是相等的,算出其中一个。
当x1选定,成顺序就是x1-1个,成逆序就是n-x1个,然后枚举x1,算出所有,然后这两个点固定完,剩下的n-2个点随便放,求出方案数在乘上,这样就求出了f(x1,x2),之后再乘上n-1。

cf 1478 D
这个题说的是给n个数,任选其中两个数x,y,可通过2x-y来生成新的数,给一个数k,问k能否由给出的数生成。
这个问题,通过k倒着解方程根本没戏,那么可以考虑找一个二元的关系表示生成的数,因为2
x-y是二元的运算,两个元素生成的新元素再与另一个元素发生作用还是二元的运算,所以最终的生成数的表示方法的基本单位应该是两个元素的相互作用然后在组合在一起的形式。
那么只考虑x1,x2,然后发现可以生成2x1-x2, 2x2-x1, 3x1-2x2, 3x2-2x1,4x1-3x2, 4x2-3x1,

那么用表达式给出就是kx2-(k-1)x1,或者是kx1-(k-1)x2;
那么设生成的数为z,则z-x1=k
x2-(k-1)x1,得到z-x1=k(x2-x1),
z=k
x1-(k-1)x2; z-x1=(k-1)(x1-x2),也就是(x2-x1) | z-x1。
对于三个情况,x1,x2,x3,则就有x3-x1 | z1-x1, x2-x1 | z2-x1 , x1,x2,x3 相互组合搞出来的东西总
能表示成 a
(x3-x1)+b*(x2-x1)的形式,比如 2(2x1-x2)-x3 - x1 = - ( (x3-x1)+2(x2-x1)) =z-x1,
再多写几个还是这样, 并且 由k*k1(x2-x1)-(k-1)(k2(x3-x1))这样的形式,在加上多写点其他的算式
可以看出 这样的表示具有a,b的任意性,那么 生成的最小单位就是 gcd(x1-x2,x1-x3) ,正负号随意,那么x1,x2,x3,x4,的最小单位就是 gcd(x1-x2,x1-x3,x1-x4) | z-x1.

二元的关系作为一种分割划分组合的依据是一种指引,对题目有这样的势头的,可以顺着慢慢的延伸下去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值