5^3 黄祭


为了避免水帖,我把最后一题讲一下。
首先我们知道 \bigoplus\limits_{i=1}^n i 的取值是确定的,也就是,

\begin{align*} \begin{split} \bigoplus\limits_{i=1}^n i= \left \{ \begin{array}{lr} 1&n\bmod4=1\\ n+1&n\bmod4=2\\ 0&n\bmod4=3\\ n&n\bmod4=0\\ \end{array} \right. \end{split} \end{align*}

考虑数学归纳法,

  • n=1 时,结论显然成立。

接下来分情况讨论,

  • n\bmod4=0 时, n\oplus n+1=1
  • n\bmod4=1 时, 1\oplus n+1=n+1
  • n\bmod4=2 时, n+1\oplus n+1=0
  • n\bmod4=3 时, 0\oplus n=n

综上,原命题成立。


下面进入正题部分,考虑先计算出 \bigoplus\limits_{i=1}^{k-1} i 。再计算出需要的 \bigoplus\limits_{i=1}^n i 的值,也就是 \bigoplus\limits_{i=1}^{k-1} i\oplus x
最后分类讨论,计算出所需要的 n 。(懒得写了,看代码)

int need=x^calc(k-1);
if(need==0){
	for(int i=l;i<=r;i++){
		if(i%4==3){
			cout<<i<<"\n",ans=0;
			break;
		}
	}
	if(ans) puts("-1");
}else if(need==1){
	for(int i=l;i<=r;i++){
		if(i%4==1){
			cout<<i<<"\n",ans=0;
			break;
		}
	}
	if(ans) puts("-1");
}else if(need%4==0){
	if(l<=need&&need<=r) cout<<need<<"\n";
	else puts("-1");
}else if(need%4==3){
	if(l<=need-1&&need-1<=r) cout<<need-1<<"\n";
	else puts("-1");
}else puts("-1");

其中 calc 为计算 \bigoplus\limits_{i=1}^n i

2 个赞

恭喜!

3 个赞

qp

3 个赞

qpzc

3 个赞

qp orz

3 个赞

恭喜!

3 个赞

最后一题是啥啊

3 个赞

P11798

1 个赞

居然可以切黑题

2 个赞

@览遍千秋 这不是很正常

1 个赞

image

2 个赞

这是你的?
%%%%%%%%%%%%%%%%%%%%%%

1 个赞

%%%%%%%,orz

2 个赞

@览遍千秋 sto‰‰‰‰‰‰‰‰‰‰‰‰‰OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz

2 个赞

可以看我信友队的主页,有我洛谷账号链接的

2 个赞

退谷快三个月了,从红名调到绿名了(大悲)

2 个赞

@览遍千秋 给我的tj点歌赞被 题解:P1763 埃及分数 - 洛谷专栏

2 个赞

@览遍千秋 我写过黑体 qwq

2 个赞

tql,orz,%%%

2 个赞

我要测试一下多久能掉橙(不写题解不打比赛只做题)

1 个赞