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; }
void gpio_set(gpio_t *gpio, bool value) { if (value) _set(gpio); else _clr(gpio); }
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); } }
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); } // »ö ³Ö´Â ÇÔ¼ö Á¤ÀÇ
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; }
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) ; }
gm_mst::~gm_mst() { _clr(); }