求助站外题
  • 板块学术版
  • 楼主Maysoul
  • 当前回复9
  • 已保存回复9
  • 发布时间2023/7/11 21:32
  • 上次更新2023/11/3 10:26:31
查看原帖
求助站外题
409774
Maysoul楼主2023/7/11 21:32

几分钟前我刚刚发过求这题的证明过程

实际上就是调不出来才怀疑证明思路的

欲求l(l+1)(l+2)l(l+1)(l+2)…… (r−1)r(r-1)r的拼接所成的数mod 9mod \ 9

如:l=2,r=5l=2,r=5时,该数为23452345

用等差数列求和公式可知:

(r−l+1)l+(r−l+1)(r−l)2(r-l+1)l+\frac{(r-l+1)(r-l)}{2}

用以上公式计算出的数mod 9mod \ 9 即为所求

感觉思路没问题,但是WA了三个点

#include<iostream>
#define int long long 
using namespace std;
const int MAXN=1e6+10;
int num,ans;
signed main()
{
	int q;
	cin>>q;
	while(q--){
		int l,r;
		cin>>l>>r;
		int len=r-l+1;
		int left=l*len;
		int right=(len*(len-1))/2;
		cout<<(left+right)%9<<endl;
	}
	return 0;
}
2023/7/11 21:32
加载中...