Hdu 5047 Sawtooth(平面分割)(2014上海Online)


前に自分で似たような問題をまとめたことがあるので、この問題を見てから考える方向ができました.
平面分割問題小結-時雨晴天-ブログ園
最後に公式を出して、見るときっと超_int 64は、チームメイトのJava大数処理に渡され、結果TLE.私は再びC言語を交換して大数のテンプレートを使って、それからTLEを続けます...10万組のcaseを見ると、思い切って1つの数を2つに分解します.int 64はその後、コードを参照してください.
試合後、C言語は大きく入力して加速して掛けることができると言われた.
#include 
#include 
#include 
using namespace std;


const __int64 mod=1000000;


int main ()
{
	int T;
	scanf("%d",&T);
	for (int Cas=1;Cas<=T;Cas++)
	{
		__int64 n,a,b,c,d;
		scanf("%I64d",&n);
		a=8*n+1;
		c=n-1;
		b=a%mod;
		a=a/mod;
		d=c%mod;
		c/=mod;

		__int64 x=a*c;
		__int64 y=a*d+b*c;
		__int64 z=b*d+2;
		y+=z/mod;
		z%=mod;
		x+=y/mod;
		y%=mod;
		printf("Case #%d: ",Cas);
		if (x==0)
		{
			if (y==0)
				printf("%I64d
",z); else printf("%I64d%06I64d
",y,z); } else printf("%I64d%06I64d%06I64d
",x,y,z); } return 0; }