int hungary(int m,int n,int mat[][MAXN],int* match1,int* match2){
	int s[MAXN],t[MAXN],p,q,ret=0,i,j,k;
	for (_clr(match1),_clr(match2),i=0;i<m;ret+=(match1[i++]>=0))
		for (_clr(t),s[p=q=0]=i;p<=q&&match1[i]<0;p++)
			for (k=s[p],j=0;j<n&&match1[i]<0;j++)
				if (mat[k][j]&&t[j]<0){
					s[++q]=match2[j],t[j]=k;
					if (s[q]<0)
						for (p=j;p>=0;j=p)
							match2[j]=k=t[j],p=match1[k],match1[k]=j;
				}
	return ret;
}
Пример #2
0
void gpio_set(gpio_t *gpio, bool value)
{
   if (value)
      _set(gpio);
   else
      _clr(gpio);    
}
Пример #3
0
static void _set_led(unsigned char bank, unsigned char pin, unsigned char inverted, unsigned char brightness) {
	unsigned char start = pin;
	
	if(inverted) {
		_clr(bank, start, pin, brightness);
		start += brightness;
		if(start >= MAX_BRIGHTNESS)
			start -= MAX_BRIGHTNESS;
		_set(bank, start, pin, MAX_BRIGHTNESS - brightness);
	} else {
		_set(bank, start, pin, brightness);
		start += brightness;
		if(start >= MAX_BRIGHTNESS)
			start -= MAX_BRIGHTNESS;
		_clr(bank, start, pin, MAX_BRIGHTNESS - brightness);
	}
}	
Пример #4
0
void setColor(int fore_color, int back_color)
{
   HANDLE hOut;
   hOut = GetStdHandle(STD_OUTPUT_HANDLE);
 
   int color = _clr(fore_color, back_color);
   SetConsoleTextAttribute(hOut, color);
} // »ö ³Ö´Â ÇÔ¼ö Á¤ÀÇ
Пример #5
0
void gm_mst::_init()
{
	_clr();

	c_brd_.stp(opts_);
	assert(opts_.hght_ > 1 && opts_.wdth_ > 1);
	c_brd_.rst();

	plrs_[0] = (opts_.pl1_ == opts::pt_hmn) ? dynamic_cast<player*>(new hmn_plr(*this, pc_wht)) : dynamic_cast<player*>(new cmp_plr(*this, pc_wht));
	plrs_[1] = (opts_.pl2_ == opts::pt_hmn) ? dynamic_cast<player*>(new hmn_plr(*this, pc_blc)) : dynamic_cast<player*>(new cmp_plr(*this, pc_blc));

	trn_n_ = 0;
	c_plr_ = pc_wht;
}
 void _clr(node *n) { if (n) _clr(n->l), _clr(n->r), delete n; }
 void clear() { _clr(root); root = NULL; }
Пример #8
0
double logdp_c(double a)
{


// double One=1.0 ;
double Zero = 0.0, Half = 0.5 ;
double srHalf= 0.70710678118654752440 ;         /*  sqrt(0.5)   */
double MIN   =    2.2250738585072014e-308 ;
double LnMin = -708.3964185322641 ;
double MAX   =    1.7976931348623157e+308 ;
double LnMax =  709.7827138470578 ;
double  a0 =-0.64124943423745581147e+2 ;
double  a1 = 0.16383943563021534222e+2 ;
double  a2 =-0.78956112887491257267e+0 ;
double  b0 =-0.76949932108494879777e+3 ;
double  b1 = 0.31203222091924532844e+3 ;
double  b2 =-0.35667977739034646171e+2 ; /*  Note b3 = 1.0        */
double  c1 = 0.693359375  ;       		 /*  355/512      */
double  c2 =-2.121944400546905827679e-4 ;

double  Y,Z,zn,zd,X,W,Rz,Sa,Bd,Cn,Da ;
int     N, exp, upper; 

        Y = a ;
        exp = _extu(_hi(Y),1,21);
       	N = exp - 1022;

 		upper = _clr(_hi(Y),20,31);
		upper = 0x3fe00000 | upper;
		Z = _itod(upper, _lo(Y));
		if (exp == 0) Z = 0;


        if (Z > srHalf)
                { zn=(Z-Half)-Half ; zd=Z*Half+Half  ; }
        else
                { zn=Z-Half; zd=zn*Half+Half ; N=N-1 ; }
        
        
        //X = zn/zd;
        X = divdpMod_clog(zn,zd);
        
        W = X*X ;
        Bd= ( (W+b2) * W + b1) * W + b0 ;
        Cn= (W*a2 + a1) * W + a0 ;
        Rz= W * divdpMod_clog(Cn,Bd);//Cn / Bd ;
        Sa = X + X*Rz ;
        Cn= N ;
        Da = (Cn*c2 + Sa) + Cn*c1 ;



		if (Y <= Zero) Da = 0;//{Z = setnmx(Y) ; Da = (Z) ; }
        if (Y < MIN)  Da = (LnMin)  ;
        if (Y > MAX)  Da = (LnMax)  ;




        return (Da) ;

}
Пример #9
0
gm_mst::~gm_mst()
{
	_clr();
}