Ir ao conteúdo
  • Cadastre-se

matheuslealv

Membro Pleno
  • Posts

    41
  • Cadastrado em

  • Última visita

posts postados por matheuslealv

  1. Queria saber como é possivel descobrir se um grafo possui ciclos ou não dados o número de vértices e as arestas (sem peso). Se não tiver dado pra entender da uma lida nesse problema

    https://www.urionlinejudge.com.br/judge/pt/problems/view/1610

     

    Eu usei uma dfs mas está errado, queria que alguem pudesse me ajudar indicando uma ideia ou uma correção no meu código

    #include <cstdio>
    #include <cstring>
    #include <vector>
    #include <algorithm>
    #define MAXN 10500
    #define MAXM 10500
    using namespace std;
    
    int n, m, vis[MAXN], a, b;
    vector <int> lista [MAXN];
    bool resp = true;
    
    void dfs(int u)
    {
        for(int i = 0; i< (int) lista[u].size(); i++)
        {
            int v = lista[u][i];
            if(vis[v] == 1)  // Se ja tiver sido visitado implica que o grafo tem ciclos
                resp = false;
            if(vis[v] == 0){ // Se nao estiver sido visitado
                vis[v] = 1; // marca o vertice como visitado
                dfs(v);
            }
        }
    }
    
    int main()
    {
        int T;
        scanf("%d", &T);
    
        resp = true;
    
        scanf("%d %d", &n, &m);
    
        for(int i = 0; i< m; i++)
        {
            scanf("%d %d", &a, &b);
            lista[a].push_back(b);  // A depende de B
        }
    
        for(int i = 1; i<=n;i++)
        {
            dfs(i);  // dfs para todos os vertices
        }
        if(resp)printf("NAO POSSUI CICLOS\n");
        else printf("POSSUI CICLOS\n");
        }
    	
        return 0;
    }

     

    • Obrigado 1
  2. @vangodp sim ... estou me confundindo bastante kkkk é porque estou aprendendo sozinho e é bem mais complicado e tem outro jeito de fazer o que eu quero mas é porque eu queria treinar bem essa parte. Achei um site em portugues que fala um pouquinho (bem pouco mesmo) sobre isso caso esteja interessado o site é o "Noic". Obrigado pela ajuda, amigo kkkkk desculpa meu nivel iniciante rsrs

    • Curtir 1
  3. @vangodp Opa cara muito obrigado explicoui muito bem você sabe onde posso estudar mais sobre isso ?

    Algo mais detalhado procurei bastante e a maioria dos sites sao em inglês e meu inglês é horrivel :/

    Mas mesmo assim obg !

    Tentei colocar o post como "resolvido" mas n achei onde coloca uhdsahudhuasd

    @vangodp 

    Agora me surgiu outra dúvida como posso usar o find() para maps bidimensional ?

    Normalmente eu so uso map linear ai fica mais fácil.

     

  4. Estou com dúvida em como percorrer um map do tipo

    map<string, map<string, int> > 

    ou seja, ou map que simula uma matriz cujo as posições são strings que armazena valores inteiros

    Mas eu não sei como percorrer-lo tipo, nos vetores normais eu uso um for de um inteiro i que varia de 0 até n ... Mas com o map nao sei como posso percorrer-lo

    Obg desde ja

  5. Bom, estou com uma dúvida que está quebrando minha cabeça há horas ... Eu estou fazendo um programa que necessita de um ciclo for para "scannear" char, no entanto o programa simplesmente para depois do ciclo for e ignora completamente todas as linhas de baixo O.o

     

    Aqui está uma versão simplificada do meu código:

    int n, i, j, m, mat[100][100], k;
    char ch;
    int main(){
        scanf("%d %d", &n, &m);
        for(i=1;i<=n;i++){
            for(j=1;j<=m;j++)
            {
                scanf("%c", &ch);
                if(ch == '.') mat[i][j] = 1; else mat[i][j] = 2;
            }
        }
        scanf("%d", &k);
    return 0;
    }

    Notem, que se tentarem executar o programa, ele irá parar logo após o ciclo for, ignorando o "scanf" que vem na linha abaixo. 

  6. Bom, estou com problemas em adicionar valores a uma fila, eu estou usando o seguinte código:

    int n;scanf("%d", &n);std::queue<int> f;for(i=1;i<=n;i++){    f.push(i);}

    No entanto quando vou acessar o f.front() simplesmente aparece um valor aleatório, por exemplo neste caso se eu colocasse:

    for(i=1;i<=n;i++){    printf("%d, ", &f.front());     f.pop();}

    Ao invés de printar: (1, 2, 3, 4, ...., n) como eu estava esperando ele printa algo parecido com isso: ( -2548877, 6587457, ....)

     

    Enfim estou perdido kkkk. Conto com a ajuda de vocês

  7. Bom, sou iniciante na linguagem C, queria saber como fazer para escanear strings mas sem saber quantos caracteres essa string tem. Por exemplo, eu tenho que escrever um programa que dado uma frase tenho que determinar quantos caracteres são números mas sem ser informado o tamanho da string.

  8. Falta a vírgula, man.

    scanf("%c", &a);

    Falta atenção aos detalhes.

    Poxa, tem razão desculpa fazer perder seu tempo ...

    Obrigado ai ^^

    Comecei a aprender C esta semana e estou meio perdido nos detalhes mesmo, foi mal.

  9. @matheuslealv

    Você está lendo uma variável 'a' que não foi declarada.

    Realmente eu esqueci :X

    mas mesmo dps de declarar a variavel o programa não roda.

     

    Erro:

    prog.c: In function 'main':

    prog.c:8:21: error: invalid operands to binary & (have 'char *' and 'int')

    scanf(" %c" &a);

  10. #include <stdio.h>int main(void) {    int n, i, cont =0;    scanf("%i", &n);    for(i=0;i<n;i++){            scanf(" %c" &a);        switch(a){            case 'P':            cont+=2;            break;            case 'C':            cont+=2;            break;            case 'A':            cont+=1;            break;            case 'D':            cont+=0;            break;                    }    }    printf("%i", cont);    return 0;}
     

    Alguem sabe onde ta o erro do codigo ? :s

     

    -----Erro -----

     

    prog.c: In function 'main':

    prog.c:8:15: error: invalid operands to binary & (have 'char *' and 'int')

    scanf(" %c" &a);

    ^

  11. Preciso da ajuda de alguém nesse problema. Eu estou tentando usar divisibilidade mas não tá saindo :X

     

    PS: Não precisa dar o código, apenas a ideia.

     

     

     

     

     

    Problema:

     

    Dado um número N e um número M, Bino quer saber qual a quantidade mínima de operações para converter N em M.

    Existe seis operações permitidas.

    • Operação 1: N = N*2
    • Operação 2: N = N*3
    • Operação 3: N = N/2
    • Operação 4: N = N/3
    • Operação 5: N = N+7
    • Operação 6: N = N-7
    Entrada

    A entrada contém dois inteiros N ( 0 ≤ N ≤ 10000) e M ( 0 ≤ M ≤ 10000).

    Saída

    A saída é o número mínimo de operações para converter N em M.

     

  12. Cara se não me falhe a memória essa sintaxe ai é do c e não do Java, estou certo? Você quer pegar os valores da linha e dividi-los em componentes do vetor? Eu nao entendi foi isso, o que seriam esses componentes? Abraço.

    Acho que eu expliquei meio ruim mesmo kkkk.

    É como se eu fosse preencher a matriz com caracteres, mas esses caracteres vão todos em uma mesma linha e ai eu teria que colocar q cada caractere é um valor da matriz, por exemplo:

     

    O usuário digita: " ABCD" ai eu armazenar cada caractere em um vetor.

    vetor[0] = 'A'

    vetor[1] = 'B'

    vetor[2] = 'C'

    vetor[3] = 'D'

  13. Eu queria saber se alguem sabe como dividir uma linha em vários componentes de um vetor.

    Caso tenha ficado um pouco confuso, imagine uma matriz: 

     

    char c [][] = new char[N][N];

     

     

     

    Ai, em um ciclo for, eu iria preencher os valores da matriz. 

     

    for(int i =0;i<n;i++){for(int j=0;j<n;j++){c[i][j] = s.nextLine().charAt(j);   // Erro nessa linha}}
     
    Mas quando vou compilar o programa da erro e dessa forma não consigo preencher a matriz :(
    Obrigado desde já.
     

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!