Archive for the ‘algoritmos’ Category

Algoritmo: Números de Ka Fu

Algoritmo de Maratona de Programação simples #include<iostream> using namespace std; int main(){ int n,k,t=1; while((cin >> n >> k)and(n!=0)and(n!=0)) cout << “Instancia “<<t++<<”\n”<<(((((n – ((k*k+k))/2)) %(k+1)) == 0)? “sim”:”nao”)<<”\n\n”; return 0;//((k*(k-1))/2)+k }

Tags:

Algoritmo: O imperador Lu Zhin Du

Algoritmo de Maratona de Programação utilizando recursão: #include<iostream> using namespace std; int m,n,k,mat[100][100],vis[100][100]; bool recursao(int i, int j){ if(j==n-1) return true; vis[i][j]=1; bool parcial=false; if((j<n-1)&&(!vis[i][j+1])&&(abs(mat[i][j+1]-mat[i][j])==k)) parcial=recursao(i,j+1); if((!parcial)&&(i>0)&&(!vis[i-1][j])&&(abs(mat[i-1][j]-mat[i][j])==k)) parcial=recursao(i-1,j); if((!parcial)&&(j>0)&&(!vis[i][j-1])&&(abs(mat[i][j-1]-mat[i][j])==k)) parcial=recursao(i,j-1); if((!parcial)&&(i<m-1)&&(!vis[i+1][j])&&(abs(mat[i+1][j]-mat[i][j])==k)) parcial=recursao(i+1,j); return parcial; } int main(){ int t=1; while((cin >> m >> n >> k)&&(m!=0)&&(n!=0)){ memset(vis,0,sizeof(vis)); for(int i=0;i<m;i++) for(int j=0;j<n;j++) cin >> mat[i][j]; bool [...]

Tags: ,

Algoritmo: Ajudando a prefeitura

Algoritmo de Maratona de Programção utilizando Grafo #include<iostream> const int INF = 100; using namespace std; int main(){ int n,m,q,t=1; cout.setf(ios::fixed); cout.precision(3); while((cin>>n>>m)&&(n!=0)&&(m!=0)){ double M[n][n]; memset(M,INF,sizeof(M)); for(int i=0;i<n;i++)M[i][i]=0; for(int i=0;i<m;i++){ int u,v; double p; cin >> u >> v >> p; M[u][v]=p; M[v][u]=p; } for(int k=0; k<n; k++) for(int i=0; i<n; i++) if( i!=k && [...]

Tags: ,

Algoritmo: Os tesouros de Shaou Lee

Algoritmo de Maratona de Programação utilizando programação dinâmica. #include <iostream> using namespace std; int w=10,n; int peso[1001]; int valor[1001]; int t[1001][11]; void mochila(){ int a,b; for(int y=0;y<=w;y++){ t[0][y]=0; for(int i=1;i<=n;i++){ a=t[i-1][y]; if(peso[i] > y) b=0; else b=t[i-1][y-peso[i]] + valor[i]; if(a>b) t[i][y]=a; else t[i][y]=b; } } } int main(){ int l=1; while((cin>>n)&&(n!=0)){ for(int i=1;i<=n;i++){ cin >> [...]

Tags: ,

Alguns algoritmos da Regional da Maratona da ACM 2007

Nesse ano de estréia resolvemos apenas dois algoritmos simples utilizando-se da linguagem C++, esperamos que nos próximos anos consigamos melhores resultados. O primeiro problema resolvido foi o “Histórico de Comandos”, que consistia em dizer quantas vezes o usuário precisa teclar a tecla “seta para cima” em cada entrada. Abaixo o algoritmo: #include <iostream> using namespace [...]

Tags: ,