题解:P10765 「CROI · R2」在相思树下 I

原题链接

更好的观感

Solution

赛事思路:
观察了一下100%的数据范围, 1 0 18 10^{18} 1018 很显然,如果按照题目描述做的话,只能拿部分分,所以我们考虑其他思路。

假设最初答案的位置在 1 1 1。那么如果执行的是操作 2 2 2 无论如何也无法改变答案,只有操作为 1 1 1 的时候可以改变。

如何改变答案呢?

由于删除操作是删除所有的奇数位,所以删除的数的个数肯定是 2 2 2 n n n 次方。进一步分析,由于每次删除的数的个数都是 2 2 2 的幂,所以第 i i i 次操作会使答案变为 a n s + 2 i − 1 ans+2^{i-1} ans+2i1

证明:
我们发现每次拿走的都是两个数中间的数,所以当前序列相邻两个数的差为 2 i 2^i 2i 其中 i i i 代表了当前操作的次数,由此可以发现,如果操作为 1 1 1 答案将变为 a n s + 2 i − 1 ans+2^{i-1} ans+2i1 而 如果操作为 2 2 2 则答案不变。

Code

#include<bits/stdc++.h>
using namespace std;
long long n,k,T,p,ans;
int main()
{
	cin>>T;
	while(T--)
	{
		ans=1;
		cin>>n>>k;
		for(long long i=1;i<=k;i++)
		{
			cin>>p;
			if(p==1)
				ans+=pow(2,i-1);
		}
		cout<<ans<<"\n";
	}
	return 0;
} 

本题虽然有些巧妙,但总体难度不高,适合作T1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值