Beispiel #1
0
void solve() {
	ll r;
	int i,j;
	int divs[MAX];
	scanf("%d %d",&n,&k);
	if(k>n) k=n;
	calcdp();
	r=calclen(n);
	for(i=1;i<n;i++) if(n%i==0) divs[i]=n/i-1;
	for(i=n-1;i;i--) if(n%i==0) for(j=i-1;j;j--) if(i%j==0) divs[j]-=divs[i];
	for(i=1;i<n;i++) if(n%i==0) r=(r+divs[i]*calclen(i))%((ll)MOD*n);
	if(n==k) r+=n;
	printf("%I64d\n",r/n);
}
Beispiel #2
0
Datei: wrap.c Projekt: kahrs/cda
void
wrap(Signal *s)
{
	if(s->alg == 0)
		s->alg = defroute;
	switch(s->alg)
	{
	case RTSP:	tsp(s); s->prfn = prseq; break;
	case RTSPE:	tspe(s); s->prfn = prseq; break;
	case RHAND:	hand(s); s->prfn = prseq; break;
	case RMST:	mst(s); s->prfn = prmst; break;
	case RMST3:	mst3(s); s->prfn = prmst; break;
	default:
		f_major("Unknown routing algorithm %d", s->alg);
		abort();
		return;
	}
	calclen(s);
}