2020.09.12【省选组】模拟

T1:首先如果这个串本身就不是回文串,那么答案就是1。

这题可以通过各种方法发现答案要么是2,要么是-1。而且-1只有xxxxxx,xxxyxxx,xyxyxyxyx这三种情况。(第二种情况的意思是长度为奇数而且最中间的位置为y,其他都为x)这样这题就做完了。

 

T2:网络流。

首先建立S和T,中间一列n个点。首先每个点和S有流量为1的边,和T有-1边,表示如果割左边则该点选正,割右边则该点选负。

然后对于每一个a|w[x]-w[y]|,我们可以发现如果x和y的正负性不相同则贡献为2a,否则贡献为0。那么对于每一对x和y,我们都在x->y和y->x连上2a边即可。

接着考虑d(w[x]-w[y]),我们可以把括号拆开,就变成了d*w[x],那么在S和x之间连d,x和T之间连-d就可以了。

然后考虑大小限制。对于w[x]<=w[y],我们发现若y取负则x必定取负,那么在y->x连上inf。对于w[x]=w[y],在x->y和y->x上都连inf。对于w[x]<w[y],则必定是w[x]取负,w[y]取正,所以在S->x和y->T连inf。

至此就建图完毕了。不过可能会有负边,这时我们发现负边只可能出现在S-x或x-T上,而且每次对于S、x和T之间的连边都是类似于S->x连a,x->T连-a这种形式的,所以我们可以每次把两条边都加上|a|。因为最后一定有一条边被割掉,那么最终的答案减去sum(|a|)即可。

 

T3:首先把每一对石子模(a+b),这样对答案不产生影响。

然后先保证a<=b,接着把每一堆石子分类:

1、x<a,这种石子无用,记堆数位cnt1

2、a<=x<b,如果这种石子出现则a必赢

3、b<=x<=a*2-1,这种石子a和b都只能取一次,所以可将其视为交换先后手,cnt3

4、a*2<=x<=a+b-1,如果这种石子出现超过1次,那么a必胜(手推即可证明),如果只有1堆,那么若a先手则a必胜(a会将其变成2),若b先手则就相当于3

至此我们可以发现b是不能必胜的。所以我们可以考虑算出先手必胜和后手必胜的方法,然后用2^n减去它们就是a必胜的方案。

先手必胜:sum(C(cnt3,i)(i%2==1))+sum(C(cnt3,i)(i%2==0))*cnt4

后手必胜:sum(C(cnt3,i)(i%2==0))

最后将它们乘上2^cnt1就是先手必胜和后手必胜的答案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值