把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

luogu P2609 [ZJOI2012]数列

题面传送门
发现这道题主要不是思维难,而是高精难打。还难卡常
\(2i\)的显然很好处理,考虑\(2i+1\)怎么做
首先设两个分支为\(2k-1,2k\),那么会衍生出三个分支\(k-1,k,k\)容易发现仍然只有两个本质不同。
那么只要暴力递归下去判个重即可。
但是问题是这样\(O(Tlog^3n)\)过不去。
考虑化简一下不用map,直接递推即可。时间复杂度\(O(Tlog^2n)\)
高精要压位才能过去。
代码实现:

//高精就不贴了
int main() {
	freopen("1.in","r",stdin);
	scanf("%d",&t);
	while(t--){
		cin>>a;r=e;l=d;
		while(a!=0){
			//cout<<a<<endl;
			if(a%c==d) r+=l;
			else l+=r;
			a/=c;
		}
		cout<<r<<endl;
	}
}
posted @ 2021-01-23 19:28  275307894a  阅读(33)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end