コード例 #1
0
ファイル: contig_graph.cpp プロジェクト: binma/idba
void ContigGraph::GetContigs(deque<Sequence> &contigs, deque<ContigInfo> &contig_infos)
{
    contigs.resize(vertices_.size());
    contig_infos.resize(vertices_.size());

#pragma omp parallel for 
    for (int64_t i = 0; i < (int64_t)vertices_.size(); ++i)
    {
        contigs[i] = vertices_[i].contig();
        contig_infos[i] = vertices_[i].contig_info();
    }
}
コード例 #2
0
ファイル: assembly_utility.cpp プロジェクト: binma/idba
bool ReadHashAlignerRecords(FILE *fp, deque<HashAlignerRecord> &records)
{
    int size = 0;
    if (fread(&size, sizeof(int), 1, fp) != 1)
        return false;

    records.resize(size);
    for (unsigned j = 0; j < records.size(); ++j)
    {
        if (fread(&records[j], sizeof(HashAlignerRecord), 1, fp) != 1)
        {
            records.resize(j);
            return false;
        }
    }

    return true;
}
コード例 #3
0
ファイル: unicode.cpp プロジェクト: HTshandou/codelite
/**
 * Convert the array of bytes into an array of ints
 */
bool decode_bytes(const vector<UINT8>& in_data, deque<int>& out_data)
{
   out_data.resize(in_data.size());
   for (int idx = 0; idx < (int)in_data.size(); idx++)
   {
      out_data[idx] = in_data[idx];
   }
   return true;
}
コード例 #4
0
ファイル: particle.cpp プロジェクト: runemoennike/asteroids
    void initParticles()
    {
        particles.resize(OPT_NUM_INITIAL_PTLS);
        deque<cParticle>::iterator ptlIter;
        for( ptlIter = particles.begin(); ptlIter != particles.end(); ptlIter ++ )
        {
            ptlIter->active = false;
        }

        cModel dummyModel;
        texId = dummyModel.loadTexture(OPT_PATH_TEXTURES + (string)"particle" + OPT_PATHEXT_TEXTURES);
    }
コード例 #5
0
ファイル: C2.cpp プロジェクト: spalac24/training
int main (){
	long long x;
	cin>>x;
	for (int cas = 1; cas <= x; ++cas){
		cin>>n>>k>>a>>b>>c>>r;
		arr.resize(k);
		memset(mapa,0,sizeof mapa);
		//REACH;
		OUTPUT(solve());
	//	print_arr();
	}
}
コード例 #6
0
/* Function:	addProcessBlockByBurst
 *    Usage:	deque<processBlock> p 
 *				addProcessBlockByBurst(b, bs);
 *  -------------------------------------------
 *  Adds the processBlock in the apporpriate position in the vector, 
 *  keeps it sorted by the processescpu burst time from least to greatest.
 */
void addProcessBlockByBurst(processBlock & b, deque<processBlock> & bs)
{
	if(bs.size()==0 || b.p.burst >= bs.back().p.burst )
		bs.push_back(b);
	else 
	{
		int i = (int)bs.size()-1;
		bs.resize(bs.size()+1);
		do
		{
			bs[i+1] = bs[i];
			i--;
		} while(i>=0 && b.p.burst<bs[i].p.burst);
		bs[i+1] = b;
	}
}
コード例 #7
0
// Searches for an augmenting path rooted at r via a breadth first search.
bool BFS(int r) { 
  if (graph[r].size() == 0) return false;

  // Set up union-find (initially, all nodes are their own representatives)
  // Reset lca and d memory, we cut this time from the total recorded.
  time_t t = clock();
  for (int i = 0; i<n; ++i) pp[i] = i;
  memset(v, -1, sizeof(v));
  memset(d, -1, sizeof(d));
  mem_time += clock() - t;

  // Initialize values and push root onto the queue.
  q.resize(0);
  d[r] = 0;
  q.push_front(r);
  while (!q.empty()) {
    // Pop front of queue, take to be the current node, x.
    // Iterate over all neighbours of the current node, y.
    int this_is_dumb = q.front(); q.pop_front();
    for (int x = this_is_dumb, i = 0, y = graph[x][0]; i < (int)graph[x].size(); ++i, y = graph[x][i]) {

      if (m[y] != y && f(x) != f(y)) {  // if neighbour not unmatchable and not in blossom with x:
        if (d[y] == -1) {               // if neighbour not in tree yet:
          if (m[y] == -1) {             // if neighbour not matched:
            path(r, x);                
            m[x] = y;                   
            m[y] = x; 
            return true;                // AUGMENTING PATH FOUND, update m and return

          } else {                      // if neighbour matched:
            p[y] = x;                   // update tree growing structure (m and d)
            p[m[y]] = y;                // and push y's match onto queue.
            d[y] = 1; 
            d[m[y]] = 0; 
            q.push_front(m[y]); 
          }
        } else if (d[f(y)] == 0) {      // if root-distance to neighbour known and even
          int b = lca(x, y, r);         // then we have found a blossom.
          shrink_one_side(x, y, b); shrink_one_side(y, x, b); 
        } 
      }
    }
  }
  return false; 
}
コード例 #8
0
void topological_sort1(graph_list g, deque<graph_node>& topo)
{//图G有g_l.size()个节点,下标从0到g_l.sizeZ()-1
 //返回的队列中的节点顺序即为拓扑序列
	topo.resize((int)g.g_l.size());
	int visited[MAX], time(0);
	memset(visited, 0, MAX * sizeof(int));
	for(int i = 0; i < (int)g.g_l.size(); ++ i)
		topo[i].g_idx = i;
	for(int i = 0; i < (int)g.g_l.size(); ++ i)
		if(!visited[i])
			dfs_visit(g, i, visited, time);
	for(int i = 0; i < (int)g.g_l.size(); ++ i)
		topo[i].g_value = g.g_l[i][0].g_value;
	//按照dfs搜索到的时间排序,时间大的在前面,小的在后
	//可以认为时间最小的是dfs次数最少的节点,即拓扑排序中最后面的节点
	//而dfs次数最大的节点是起始节点
	sort(topo.begin(), topo.end(), compare);
}
コード例 #9
0
int main() {
	int	X,	Y,	T = 0;
	char	input[2];
	while( scanf( "%d%d", &M, &N ) != EOF ) {
		if( T++ ) putchar( '\n' );
		for( int i = 0; i < M; i++ )
			scanf( "%s", grid[i] );
		scanf( "%d%d%s", &X, &Y, input );
		Force.resize( 0 );
		Force.push_back( oper( X - 1, Y - 1, *input ) );
		while( !Force.empty() ) {
			knockDown( Force[0].x, Force[0].y, Force[0].c );
			Force.pop_front();
		}
		for( int i = 0; i < M; i++ )
			printf( "%s\n", grid[i] );
	}
}
コード例 #10
0
ファイル: idba.cpp プロジェクト: binma/idba
 IDBAOption()
 {
     extra_read_files.resize(4);
     directory = "out";
     mink = 20;
     maxk = 50;
     step = 10;
     inner_mink = 10;
     inner_step = 5;
     prefix_length = 3;
     min_count = 2;
     min_support = 1;
     min_contig = 200;
     similar = 0.95;
     max_mismatch = 3;
     seed_kmer_size = 30;
     num_threads = 0;
     min_pairs = 3;
     max_gap = 50;
     is_no_local = false;
     is_no_coverage = false;
     is_no_correct = false;
     is_pre_correction = false;
 }
コード例 #11
0
ファイル: DCGAMEv2.cpp プロジェクト: sohamd95/CodeChef
int main() {

	ios::sync_with_stdio(false);

	int M, K, imax, tmp;
	char C, X;
	stack <int> S;

	cin >> N >> M;
	A.resize(N+1);
	
	for(int i = 1; i<=N ; i++)
		cin >> EL(i);

	for(int i = N ; i >= 1 ; i--) {
		while(!S.empty() && (EL(S.top()) <= EL(i))) S.pop();
		if(S.empty()) {TIMES(i) = N-i; S.push(i);}
		else {TIMES(i) = S.top()-i-1; S.push(i);}
	}
	while(!S.empty()) S.pop();
	for(int i = 1 ; i <= N ; i++) {
		while(!S.empty() && (EL(S.top()) < EL(i))) S.pop();
		if(S.empty()) {tmp = TIMES(i)*(i-1); TIMES(i) += (i+tmp); S.push(i);}
		else {tmp = TIMES(i)*(i-S.top()-1); TIMES(i) += (i-S.top()+tmp); S.push(i);}
	}
	
	sort(++A.begin() , A.end() , comp);
	
	print();
	
	int count = TIMES(1), dup = 0;

	for (it1 i = A.begin(); i != --A.end() ; ) {
	  if ((i+1)->first == i->first) {
	  	i = A.erase(i);
	  	count += i->second;
	  	dup++;
	  } else {
	  	i->second = count;
	  	count = (i+1)->second;
	  	++i;
	  }
	}  (*(--A.end())).second = count; N -= dup;
	
	print();

	for(int i = N-1 ; i>=1 ; i--)
		TIMES(i) += TIMES(i+1);
	
	//print();
	
	lli freq;
	for(int i = 1 ; i<=M ; i++) {
		cin >> C >> K >> X;
		switch(C) {
			case '<':
				if(K > EL(1)) freq = TIMES(1);
				else if(K <= EL(N)) freq = 0;
				else freq = query(1 , N , C , K);
				break;
			case '>':
				if(K < EL(N)) freq = TIMES(1);
				else if(K >= EL(1)) freq = 0;
				else freq = query(1 , N , C , K);
				break;
			case '=':
				if(K > EL(1) || K < EL(N)) freq = 0;
				else freq = query(1 , N , C , K);
				break;
		}
		cout << C << " " << K << " :\t" << freq;
		// if(freq %2) cout << ((X == 'D')?"D":"C");
		// else cout << ((X == 'D')?"C":"D");
		cout << endl;
	}

	return 0;
}
コード例 #12
0
void
    OnLineFootTrajectoryGeneration::interpolate_feet_positions(double Time,
                                                               const deque<support_state_t> & PrwSupportStates_deq,
                                                               const solution_t & Solution,
                                                               const deque<double> & PreviewedSupportAngles_deq,
                                                               deque<FootAbsolutePosition> & FinalLeftFootTraj_deq,
                                                               deque<FootAbsolutePosition> & FinalRightFootTraj_deq)
{
  support_state_t CurrentSupport = PrwSupportStates_deq.front();

  double FPx(0.0), FPy(0.0);
  if(CurrentSupport.Phase != DS)
  {
    unsigned int NbStepsPrwd = PrwSupportStates_deq.back().StepNumber;
    interpret_solution( Time, Solution, CurrentSupport, NbStepsPrwd, FPx, FPy );
  }
  double LocalInterpolationStartTime = Time-(CurrentSupport.TimeLimit-(m_TDouble+m_TSingle));

  int StepType = 1;
  unsigned int CurrentIndex = FinalLeftFootTraj_deq.size()-1;


  FootAbsolutePosition * LastSFP; //LastSwingFootPosition
  if(CurrentSupport.Foot == LEFT)
  {
    LastSFP = &(FinalRightFootTraj_deq[CurrentIndex]);
  }
  else
  {
    LastSFP = &(FinalLeftFootTraj_deq[CurrentIndex]);
  }

  FinalLeftFootTraj_deq.resize((unsigned int)(QP_T_/m_SamplingPeriod)+CurrentIndex+1);
  FinalRightFootTraj_deq.resize((unsigned int)(QP_T_/m_SamplingPeriod)+CurrentIndex+1);

  if(CurrentSupport.Phase == SS && Time+1.5*QP_T_ < CurrentSupport.TimeLimit)
  {
    //determine coefficients of interpolation polynome
    double ModulationSupportCoefficient = 0.9;
    double UnlockedSwingPeriod = m_TSingle * ModulationSupportCoefficient;
    double EndOfLiftOff = (m_TSingle-UnlockedSwingPeriod)*0.5;
    double SwingTimePassed = 0.0;
    if(LocalInterpolationStartTime>EndOfLiftOff)
      SwingTimePassed = LocalInterpolationStartTime-EndOfLiftOff;

    //Set parameters for current polynomial
    double TimeInterval = UnlockedSwingPeriod-SwingTimePassed;
    SetParameters(
          FootTrajectoryGenerationStandard::X_AXIS,
          TimeInterval,FPx,
          LastSFP->x, LastSFP->dx, LastSFP->ddx, LastSFP->dddx
          );
    SetParameters(
          FootTrajectoryGenerationStandard::Y_AXIS,
          TimeInterval,FPy,
          LastSFP->y, LastSFP->dy, LastSFP->ddy, LastSFP->dddy
          );
    if(CurrentSupport.StateChanged==true)
      {
        SetParameters(FootTrajectoryGenerationStandard::Z_AXIS,
                      m_TSingle,/*m_AnklePositionLeft[2]*/0.0,
                      LastSFP->z, LastSFP->dz, LastSFP->ddz
                      );
      }

    int index_orientation = PrwSupportStates_deq[1].StepNumber ;
    SetParameters(
        FootTrajectoryGenerationStandard::THETA_AXIS,
        TimeInterval, PreviewedSupportAngles_deq[index_orientation]*180.0/M_PI,
        LastSFP->theta, LastSFP->dtheta, LastSFP->ddtheta);

    SetParametersWithInitPosInitSpeed(
        FootTrajectoryGenerationStandard::OMEGA_AXIS,
        TimeInterval,0.0*180.0/M_PI,
        LastSFP->omega, LastSFP->domega);
    SetParametersWithInitPosInitSpeed(
        FootTrajectoryGenerationStandard::OMEGA2_AXIS,
        TimeInterval,2*0.0*180.0/M_PI,
        LastSFP->omega2, LastSFP->domega2);

    for(int k = 1; k<=(int)(QP_T_/m_SamplingPeriod);k++)
    {
      if (CurrentSupport.Foot == LEFT)
      {
        UpdateFootPosition(FinalLeftFootTraj_deq,
                           FinalRightFootTraj_deq,
                           CurrentIndex,k,
                           LocalInterpolationStartTime,
                           UnlockedSwingPeriod,
                           StepType, -1);
      }
      else
      {
        UpdateFootPosition(FinalRightFootTraj_deq,
                           FinalLeftFootTraj_deq,
                           CurrentIndex,k,
                           LocalInterpolationStartTime,
                           UnlockedSwingPeriod,
                           StepType, 1);
      }
      FinalLeftFootTraj_deq[CurrentIndex+k].time =
          FinalRightFootTraj_deq[CurrentIndex+k].time = Time+k*m_SamplingPeriod;
    }
  }
  else if (CurrentSupport.Phase == DS || Time+3.0/2.0*QP_T_ > CurrentSupport.TimeLimit)
    {
      for(int k = 1; k<=(int)(QP_T_/m_SamplingPeriod);k++)
        {
          FinalRightFootTraj_deq[CurrentIndex+k] = FinalRightFootTraj_deq[CurrentIndex+k-1];
          FinalLeftFootTraj_deq [CurrentIndex+k] = FinalLeftFootTraj_deq [CurrentIndex+k-1];

          FinalLeftFootTraj_deq [CurrentIndex+k].dx      = 0.0 ;
          FinalLeftFootTraj_deq [CurrentIndex+k].dy      = 0.0 ;
          FinalLeftFootTraj_deq [CurrentIndex+k].dz      = 0.0 ;
          FinalLeftFootTraj_deq [CurrentIndex+k].domega  = 0.0 ;
          FinalLeftFootTraj_deq [CurrentIndex+k].domega2 = 0.0 ;
          FinalLeftFootTraj_deq [CurrentIndex+k].dtheta  = 0.0 ;

          FinalLeftFootTraj_deq [CurrentIndex+k].ddx       = 0.0 ;
          FinalLeftFootTraj_deq [CurrentIndex+k].ddy       = 0.0 ;
          FinalLeftFootTraj_deq [CurrentIndex+k].ddz       = 0.0 ;
          FinalLeftFootTraj_deq [CurrentIndex+k].ddomega   = 0.0 ;
          FinalLeftFootTraj_deq [CurrentIndex+k].ddomega2  = 0.0 ;
          FinalLeftFootTraj_deq [CurrentIndex+k].ddtheta   = 0.0 ;

          FinalRightFootTraj_deq [CurrentIndex+k].dx      = 0.0 ;
          FinalRightFootTraj_deq [CurrentIndex+k].dy      = 0.0 ;
          FinalRightFootTraj_deq [CurrentIndex+k].dz      = 0.0 ;
          FinalRightFootTraj_deq [CurrentIndex+k].domega  = 0.0 ;
          FinalRightFootTraj_deq [CurrentIndex+k].domega2 = 0.0 ;
          FinalRightFootTraj_deq [CurrentIndex+k].dtheta  = 0.0 ;

          FinalRightFootTraj_deq [CurrentIndex+k].ddx       = 0.0 ;
          FinalRightFootTraj_deq [CurrentIndex+k].ddy       = 0.0 ;
          FinalRightFootTraj_deq [CurrentIndex+k].ddz       = 0.0 ;
          FinalRightFootTraj_deq [CurrentIndex+k].ddomega   = 0.0 ;
          FinalRightFootTraj_deq [CurrentIndex+k].ddomega2  = 0.0 ;
          FinalRightFootTraj_deq [CurrentIndex+k].ddtheta   = 0.0 ;

          FinalLeftFootTraj_deq[CurrentIndex+k].time =
              FinalRightFootTraj_deq[CurrentIndex+k].time = Time+k*m_SamplingPeriod;
          FinalLeftFootTraj_deq[CurrentIndex+k].stepType =
              FinalRightFootTraj_deq[CurrentIndex+k].stepType = 10;
        }
    }

}
コード例 #13
0
ファイル: CuePack.cpp プロジェクト: ClarkWang12/mous
void CuePack::DumpCue(const string& dir, Cd* cd, deque<MediaItem>& list) const
{
    int ntrack = cd_get_ntrack(cd);

    string album;
    string artist;
    string genre;
    int year = -1;

    char* data = nullptr;
    Cdtext* cdt = cd_get_cdtext(cd);
    Rem* rem = cd_get_rem(cd);

    data = cdtext_get(PTI_TITLE, cdt);
    if (data != nullptr) {
        album = data;
        delete data;
    }

    data = cdtext_get(PTI_PERFORMER, cdt);
    if (data != nullptr) {
        artist = data;
        delete data;
    }

    data = cdtext_get(PTI_GENRE, cdt);
    if (data != nullptr) {
        genre = data;
        delete data;
    }

    //cdtext_delete(cdt);
    //rem_free(rem);

    data = rem_get(REM_DATE, rem);
    if (data != nullptr) {
        year = StrToNum<int>(data);
        delete data;
    }

    list.resize(ntrack);
    for (int i = 1; i <= ntrack; ++i) {
        MediaItem& item = list[i-1];

        Track* track = cd_get_track(cd, i);
        item.url = dir + track_get_filename(track);
        item.hasRange = true;
        //item->msBeg = (track_get_start(track))/75*1000;
        //item->msEnd = item->msBeg + ((uint64_t)track_get_length(track))/75*1000;
        item.msBeg = ((track_get_start(track)
                    //+ track_get_index(track, 1)
                    - track_get_zero_pre(track)) * 1000) / 75;
        item.msEnd = ((track_get_start(track) + track_get_length(track)
                    //- track_get_index(track, 1)
                    + track_get_zero_pre(track)) * 1000) / 75;
        if (item.msBeg >= item.msEnd || i == ntrack)
            item.msEnd = -1;

        Cdtext* text = track_get_cdtext(track);

        item.tag.album = album;
        item.tag.year = year;

        data = cdtext_get(PTI_TITLE, text);
        if (data != nullptr) {
            item.tag.title = data;
            delete data;
        }

        data = cdtext_get(PTI_PERFORMER, text);
        if (data != nullptr) {
            item.tag.artist = data;
            delete data;
        } else {
            item.tag.artist = artist;
        }

        data = cdtext_get(PTI_GENRE, text);
        if (data != nullptr) {
            item.tag.genre = data;
            delete data;
        } else {
            item.tag.genre = genre;
        }

        item.tag.track = i;

        //cdtext_delete(text);
    }
}
コード例 #14
0
 ReturnCode_t onActivateted(UniqueId ec_id)
     {
         timedTbuf.clear();
         timedTbuf.resize(BUF_SIZE);
     }
コード例 #15
0
void redimTbl(unsigned int nb)
{
    msgs.resize(nb);
    initialiser();
}
コード例 #16
0
void reinitialiser()
{
    msgs.resize(0);
}
コード例 #17
0
ファイル: toolbox.cpp プロジェクト: wimacod/Draw-n-Guess
deque<deque<int>> center_mat(deque<deque<int>> src_mat){
    deque<deque<int>> t_mat;
    deque<int> vec_zero;
    int marge_gauche=0;
    int marge_droite=0;
    int marge_haut=0;
    int marge_bas=0;
    int delta_x = 0;
    int delta_y = 0;
    int temp_size;
    bool stop;
    stop = false;
    //Marge Gauche
    for(int i=0;i<src_mat.size();i++){
        for(int j=0;j<src_mat[i].size();j++){
            if(!stop && src_mat[j][i]){
                marge_gauche = i;
                stop = true;
            }
        }
    }
    stop = false;
    //Marge Droite
    for(int i=src_mat.size()-1;i>=0;i--){
        for(int j=0;j<src_mat[i].size();j++){
            if(!stop && src_mat[j][i]){
                marge_droite = src_mat.size()-i;
                stop = true;
            }
        }
    }
    stop = false;
    //Marge Haut
    for(int i=0;i<src_mat.size();i++){
        for(int j=0;j<src_mat[i].size();j++){
            if(!stop && src_mat[i][j]){
                marge_haut = i;
                stop = true;
            }
        }
    }
    stop = false;
    //Marge Bas
    for(int i=src_mat.size()-1;i>=0;i--){
        for(int j=0;j<src_mat[i].size();j++){
            if(!stop && src_mat[i][j]){
                marge_bas = src_mat.size()-i;
                stop = true;
            }
        }
    }

    delta_x = (marge_droite-marge_gauche)/2;
    delta_y = (marge_bas-marge_haut)/2;
    cout << delta_x << endl;
    cout << delta_y << endl;
    vec_zero.resize(src_mat.size());
    temp_size = src_mat.size();
    // Lignes de zeros
    if(delta_y>0){
        for(int i=0;i<delta_y;i++){
            src_mat.push_front(vec_zero);
        }
        src_mat.resize(temp_size);
    }else{
        for(int i=0;i<-delta_y+1;i++){
            src_mat.push_back(vec_zero);
        }
        src_mat.erase(src_mat.begin(),src_mat.begin()-delta_y);
    }
    
    // Colonnes de zeros
    if(delta_x>0){
        for (int i=0; i<src_mat.size(); i++){
            for(int j=0;j<delta_x;j++){
                src_mat[i].push_front(0);
            }
            src_mat[i].resize(temp_size);
        }
    }else{
        for (int i=0; i<src_mat.size(); i++){
            for(int j=0;j<-delta_x+1;j++){
                src_mat[i].push_back(0);
                src_mat[i].erase(src_mat[i].begin());
            }
        }
        
    }
    

    return src_mat;
}