示例#1
0
文件: Ans.cpp 项目: niyuzheno1/CODES
int main(int argc, char *argv[])
{
    setIO("sample");
    n = gi,build(1,1,n),m = gi;
    while(m--) {
    type = gi,x = gi,y = gi;
     if(type){
       k = gi; int len = 0,ans = 0;
       while(len < k){
        query(1,1,n,x,y,o[++len]);
        if(o[len].a[1].m <= 0) {--len;break;}
        ans += o[len].a[1].m;
        rev(1,1,n,o[len].a[1].L,o[len].a[1].R);
       }
       printf("%d\n",ans);
       for(int i = len;i;--i)
        rev(1,1,n,o[i].a[1].L,o[i].a[1].R);
     }
     else modify(1,1,n,x,y);
    }  
    closeIO();
    return EXIT_SUCCESS;
}
示例#2
0
文件: Ans.cpp 项目: niyuzheno1/CODES
int main(int argc, char *argv[])
{
    srand(233);
    setIO("sample");
    n = gi; m = gi; q = gi;
    for(int i = 1;i<=n;++i) mp[i] = ((rand())*p+pp*(rand()+ppp))*pppp;
    size[1] = n;
    for(int i = 1;i<=n;++i) room[1] ^= mp[i],bel[i] = 1;
    s.insert(1);
    while(q--)
    {
     char opt[3];scanf("%s",opt);
     if(opt[0] == 'C'){
      int i = gi,j= gi;
      Change(i,j);
     }else {
      int l = gi,r = gi;
      printf("%d\n",Qsum(l,r));
     }
    }
    closeIO();
    return EXIT_SUCCESS;
}
示例#3
0
文件: Ans.cpp 项目: niyuzheno1/CODES
int main(int argc, char *argv[])
{
    setIO("QTREE7");
    scanf("%d",&n);
    t[1].init(n);t[0].init(n);
    for(int i = 1,x,y;i<=n-1;++i)
    {
     scanf("%d%d",&x,&y);
     ae(x,y);ae(y,x);
    }
    for(int i = 1;i<=n;++i)
     scanf("%d",&col[i]);
    for(int i = 1;i<=n;++i)
     scanf("%d",&we[i]);
    bfs(1);
    scanf("%d",&m);
    for(int i = 1,x,y,z;i<=m;i++)
    {
     scanf("%d%d",&x,&y);
     if(x == 0)
      printf("%d\n",t[col[y]].query(y));
     else if(x == 1)
     {
      t[col[y]].cut(y);
      col[y]^=1;
      t[col[y]].link(y);
     }
     else if(x == 2)
     {
     scanf("%d",&z);
     t[0].modify(y,z);
     t[1].modify(y,z);
     }
    }
    closeIO();
    return EXIT_SUCCESS;
}
示例#4
0
文件: Ans.cpp 项目: niyuzheno1/CODES
int main(int argc, char *argv[])
{
    setIO("sample");
    srand(19961028);
    n = gi,m = gi;
    for(int i = 1;i<=n;++i) a[i] = NULL;
    init();
    while(m--){
     char tp = getchar();
     while(tp != 'C' && tp != 'Q') tp = getchar();
     if(tp == 'C')
     {
      int l= gi,r = gi,k = gi;
      change(l,r,k);
     }
     else if(tp == 'Q')
     {
      int l = gi,r = gi;
      printf("%d\n",query(l,r));
     }
    }
    closeIO();
    return EXIT_SUCCESS;
}
示例#5
0
文件: Ans.cpp 项目: niyuzheno1/CODES
int main(int argc, char *argv[])
{
    setIO("sample");CLEAR(st,0xff);
    n = gi;
    for(int i = 1;i<=n;fa[i]=i,++i) a[i] = gi,b[i] = a[i];
    sort(b+1,b+1+n);
    int l = unique(b+1,b+1+n)-b-1;
    for(int i = 1;i<=n;++i) a[i] = lower_bound(b+1,b+l+1,a[i])-b;
    a[0] = -INF,a[n+1] = -INF;
    for(int i = 0;i<=n+1;++i)
    {
     while(top && a[stk[top]]>a[i]) rm[stk[top]]=i,--top;
     ++top;stk[top] = i;
    }
    top = 0;
    for(int i = n+1;i>=0;--i)
    {
     while(top && a[stk[top]]>a[i]) lm[stk[top]]=i, --top;

     ++top;stk[top] = i;
    }
    top = 0;
    for(int i = 1;i<=n;++i)
     add(lm[i]+1,rm[i]-1,0,i);
    for(int i = 1;i<=n;++i){
     while(top && a[stk[top]] <= a[i]) unions(i,stk[top]),--top;
     ++top; stk[top] = i;
     TRA(x,i) 
     ans[lk[x].w] = a[gf(lk[x].v)];
    }
    for(int i = 1;i<=n;++i)
     printf(i==1?"%d":" %d",b[ans[i]]-b[a[i]]);
    puts(" ");
    closeIO();
    return EXIT_SUCCESS;
}
示例#6
0
unsigned char initClasses(void) {
	unsigned short numberOfclasses;
	unsigned short count;
	uint16 classDataSize;
	uint16 inheritanceMatrixSize;

	numberOfclasses = readShort();
	printStr("deserializing ");
	printShort(numberOfclasses);
	printStr(" classes");

	classes = _malloc_(sizeof(ClassInfo) * numberOfclasses);

	if (!classes) {
		return 0;
	}

	for (count = 0; count < numberOfclasses; count++) {
		ClassInfo *current = &classes[count];
		printStr(".");
		current->superClass = readShort();
		current->dimension = readByte();
		current->hasLock = readByte();
		current->dobjectSize = readShort();
		current->pobjectSize = readShort();
		{
			unsigned short length;
			length = readShort();
			if (length) {
				current->interfaces = readClassInterfaces(length);
			}
		}
		current->name = readName();
	}
	printStr("done\n");

	classDataSize = readShort();
	printStr("Allocating class data [");
	printShort(classDataSize);
	printStr("]\n");

	classData = _malloc_(classDataSize);
	if (!classData) {
		return 0;
	}

	inheritanceMatrixSize = readShort();
	printStr("Allocating inheritanceMatrix [");
	printShort(inheritanceMatrixSize);
	printStr("]\n");

	inheritanceMatrix = _malloc_(inheritanceMatrixSize);

	for (count = 0; count < inheritanceMatrixSize; count++) {
		inheritanceMatrix[count] = readByte();
	}

	printStr("deserializing class store configuration variables\n");
	tupac = readByte();
	JAVA_LANG_STRING_var = readShort();
	JAVA_LANG_OBJECT_var = readShort();
	JAVA_LANG_INTEGER_var = readShort();
	JAVA_LANG_BYTE_var = readShort();
	JAVA_LANG_SHORT_var = readShort();
	JAVA_LANG_BOOLEAN_var = readShort();
	JAVA_LANG_LONG_var = readShort();
	JAVA_LANG_CLASS_var = readShort();
	JAVA_LANG_CLASSCASTEXCEPTION_var = readShort();
	JAVA_LANG_OUTOFMEMORYERROR_var = readShort();
	JAVA_LANG_THROWABLE_var = readShort();
	JAVA_LANG_ARITHMETICEXCEPTION_var = readShort();
	VM_HARDWAREOBJECT_var = readShort();
	JAVA_LANG_NULLPOINTEREXCEPTION_var = readShort();
	_C_var = readShort();
	_I_var = readShort();
	VM_MEMORY_var = readShort();
	printStr("done\n");
	closeIO();
	printStr("deserialized ");
	printShort(getByteCount());
	printStr(" bytes from ");
	printStr(getOutputFile());
	printStr("\n");
	return 1;
}
示例#7
0
SerialIO::~SerialIO()
{
	closeIO();
}
示例#8
0
文件: Ans.cpp 项目: niyuzheno1/CODES
int main(int argc, char *argv[])
{
    setIO("sample");
    n = gi;
    l = n;
    for(int i = 1; i<=n-1; ++i)
    {
        int x = gi,y = gi;
        add(x,y);
        add(y,x);
    }
    CLEAR(f,1);
    CLEAR(son,0);
    CLEAR(deep,0);
    f[1] = false,tim = 0,deep[1] = 1;
    dfs(1);
    tot = 0;
    int tmp = build(0,1,n);
    for(int i = 1; i<=n; ++i) c[i] = tmp;
    m = gi;
    for(int i = 1; i<=m; ++i)
    {
        int x = gi,y = gi;
        ins(point[x],point[y],1);
        ins(point[y],point[x],1);
    }
    int count = gi;
    while(count--)
    {
        int opt = gi,x= gi,y=gi;
        if(opt == 1)
        {
            ins(point[x],point[y],1);
            ins(point[y],point[x],1);
        }
        if(opt == 2)
        {
            ins(point[x],point[y],-1);
            ins(point[y],point[x],-1);
        }
        if(opt == 3)
        {
            if(point[x]>point[y]) swap(x,y);
            if(point[x]+son[x]-1>=point[y]) //case 1:y belongs to x
            {
                tmp = lca(x,y);
                int x1,x2,y1,y2;
                x1 = point[tmp]-1;
                x2 = point[tmp]+son[tmp];
                y1 = point[y];
                y2 = y1 + son[y]-1;
                printf("%d\n",getsum(y2,1,x1)-getsum(y1-1,1,x1)+getsum(y2,x2,n)-getsum(y1-1,x2,n));
            }
            else { //case 2:y not belongs to x
                int x1,x2,y1,y2;
                x1 = point[x];
                x2 = x1 + son[x]-1;
                y1 = point[y];
                y2 = y1 + son[y]-1;
                printf("%d\n",getsum(y2,x1,x2)-getsum(y1-1,x1,x2));
            }
        }
    }
    closeIO();
    return EXIT_SUCCESS;
}
示例#9
0
void* CDSPControl::Entry()
{
	// Open for business
	m_running = true;

	m_rxWriter->enable();

	while (!TestDestroy()) {
		wxSemaError ret = m_waiting.WaitTimeout(500UL);

		if (ret == wxSEMA_NO_ERROR) {
			if (m_transmit == TXSTATE_INT || m_transmit == TXSTATE_EXT) {
				unsigned int nSamples = m_txRingBuffer.getData(m_txBuffer, m_blockSize);
				if (nSamples != m_blockSize) {
					// Copy the last buffer of good data to the output
					::memcpy(m_txBuffer, m_txLastBuffer, m_blockSize * sizeof(float) * 2U);
					m_txFills++;
				} else {
					// Save the last full buffer in case it's needed
					::memcpy(m_txLastBuffer, m_txBuffer, m_blockSize * sizeof(float) * 2U);
				}

				if (nSamples > 0U)
					m_txWriter->write(m_txBuffer, nSamples);
			}

			unsigned int nSamples = m_rxRingBuffer.getData(m_rxBuffer, m_blockSize);

			// Create silence on transmit if no sidetone is being transmitted
			if (nSamples == 0U && (m_transmit == TXSTATE_INT || m_transmit == TXSTATE_EXT)) {
				::memset(m_rxBuffer, 0x00U, m_blockSize * 2U * sizeof(float));
				nSamples = m_blockSize;
			}

			// Only send audio to the external protocol handler when not transmitting
			if (m_extHandler != NULL && m_transmit != TXSTATE_EXT)
				m_extHandler->writeAudio(m_rxBuffer, nSamples);

			if (nSamples != m_blockSize) {
				// Copy the last buffer of good data to the output
				::memcpy(m_rxBuffer, m_rxLastBuffer, m_blockSize * sizeof(float) * 2U);
				m_rxFills++;
			} else {
				// Save the last full buffer in case it's needed
				::memcpy(m_rxLastBuffer, m_rxBuffer, m_blockSize * sizeof(float) * 2U);
			}

			// Don't record when transmitting
			if (m_record != NULL && (m_recordType == RECORD_MONO_AUDIO || m_recordType == RECORD_STEREO_AUDIO) && m_transmit == TXSTATE_RX)
				m_record->write(m_rxBuffer, nSamples);

			// Scale the audio by the AF Gain setting
			for (unsigned int i = 0U; i < (nSamples * 2U); i++)
				m_rxBuffer[i] *= m_afGain;

			m_rxWriter->write(m_rxBuffer, nSamples);
		}
	}

	m_running = false;

	m_rxWriter->disable();
	m_txWriter->disable();

	wxLogMessage(wxT("DSPControl: RX Overruns=%u, RX Fills=%u"), m_rxOverruns, m_rxFills);
	wxLogMessage(wxT("DSPControl: TX Overruns=%u, TX Fills=%u"), m_txOverruns, m_txFills);

	closeIO();

	return (void*)0;
}
示例#10
0
文件: Ans.cpp 项目: niyuzheno1/CODES
int main(int argc, char *argv[])
{
    setIO2("tsinsenD5530");
    n= gi,m =gi;
    len = int(sqrt(n))+1;
    num = n/len+1;
    for(int i = 0;i<=num;++i) a[i].resize();
    for(int i = 1;i<=n;++i)
    {
     pii tmp = getpos(i);
     a[tmp.X].a[tmp.Y] = gi%modd;
     a[tmp.X].b[tmp.Y] = gi%modd;
    }
    for(int i = 0;i<=num;++i) a[i].getup();
    int times = 0;
    for(int i = 1;i<=m;++i)
    {
     clock_t start,end;
     start = clock();
     int opt,x,y;
     scanf("%d%d%d",&opt,&x,&y);//int opt = gi,x = gi,y=gi;
     if(opt == 1)
     {
      pii tmp1 = getpos(x);
      pii tmp2 = getpos(y);
      if(tmp1.X == tmp2.X){
       a[tmp1.X].pd();
       a[tmp1.X].rebuild(tmp1.Y,tmp2.Y,opt);
      }
      else{
       a[tmp1.X].pd();
       a[tmp2.X].pd();
       a[tmp1.X].rebuild(tmp1.Y,len-1,opt);
       a[tmp2.X].rebuild(0,tmp2.Y,opt);
       for(int i = tmp1.X+1;i<tmp2.X;++i)
        a[i].change(opt);
      }
     }
     if(opt == 2)
     {
      pii tmp1 = getpos(x);
      pii tmp2 = getpos(y);
      if(tmp1.X == tmp2.X){
       a[tmp1.X].pd();
       a[tmp1.X].rebuild(tmp1.Y,tmp2.Y,opt);
      }
      else{
       a[tmp1.X].pd();
       a[tmp2.X].pd();
       a[tmp1.X].rebuild(tmp1.Y,len-1,opt);
       a[tmp2.X].rebuild(0,tmp2.Y,opt);
       for(int i = tmp1.X+1;i<tmp2.X;++i)
        a[i].change(opt);
      }
     }
     if(opt == 3)
     {
      if(times == 4)
      times=4; 
      int ret = 0;
      pii tmp1 = getpos(x);
      pii tmp2 = getpos(y);
      if(tmp1.X == tmp2.X){
       a[tmp1.X].pd();
       for(int i = tmp1.Y;i<=tmp2.Y;++i)
        ret = add(ret,mut(a[tmp1.X].a[i],a[tmp1.X].b[i]));
      }else{
       a[tmp1.X].pd();
       a[tmp2.X].pd();
       for(int i = tmp1.Y;i<len;++i)
        ret = add(ret,mut(a[tmp1.X].a[i],a[tmp1.X].b[i]));
       for(int i = 0;i<=tmp2.Y;++i)
        ret = add(ret,(mut(a[tmp2.X].a[i],a[tmp2.X].b[i])));
       for(int i = tmp1.X+1;i<tmp2.X;++i)
        ret = add(ret,a[i].upd());
      }
      ++times;
      printf("%d\n",ret);
     }
     end = clock();
     double duration = (double)(end - start) / CLOCKS_PER_SEC;
     ff(debug,"%f\n",duration);
    }
    closeIO();
    return EXIT_SUCCESS;
}