牛客IOI周赛16-提高组 像鱼

牛客IOI周赛16-提高组 像鱼_第1张图片

 

接着向下画,我们能发现规律三角形边长每增加1,操作次数增1,1,1,2,2,2,3,3,3...
这样就能直接n(1)复杂度解决这个问题了

 

代码

#include
#include 
using namespace std;
const long long mod=23333333333333333;
int t; 
long long n;
int main()
{	
	scanf("%d",&t);
	while(t--)
	{
		scanf("%lld",&n); n--;
		__int128 t=(n/3)%mod;
		__int128 ans=3*(t+1)*t/2;
		__int128 s=n%3;
		ans+=s*(t+1); ans%=mod;
		printf("%lld\n",ans);
	}
	return 0;
}

 

你可能感兴趣的:(算法,算法)