设三角形的周长为n,三角形的个数用a[n]表示
当n为偶数时:a[n] = a[n-3];
当n为奇数时:a[n] = a[n-3] + [n + (-1)^((n+1)/2)]/4;
三角形(2,1,2),(2,2,1),(1,2,2)视为同一个三角形。
void init(){
a[0]=0;a[1]=0;a[2]=0;
a[3]=1;a[4]=0;a[5]=1;a[6]=1;
for(int i=7; i<=M; i++){
if(i%2 == 0){
a[i] = a[i-3];
}
else{
int tmp;
if(((i+1)/2)%2 == 0) tmp = 1;
else tmp = -1;
a[i] = a[i-3] + (i+tmp)/4;
}
}
}