Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //11069 - A Graph Problem
- //UVA
- /*
- 11069 - A Graph Problem
- Combinatorics
- 2
- Caso seja colocado um vertice na posição i, temos duas possibilidades:
- Colocar um vértice na posição i-2
- Colocar um vértice na posição i-3
- Perceba que colocar vértices em quaisquer outras posicoes tornaria o arranjo inválido.
- Então suponha f(n) como sendo número de maneiras de colocar n vértices.
- f(n) = f(n-2) + f(n-3)
- Casos base:
- f(1) = 1
- f(2) = 2
- f(3) = 2
- */
- #include <cstdio>
- #include <cstdlib>
- #include <string>
- #include <cmath>
- #include <cstring>
- #include <algorithm>
- #include <utility>
- #include <queue>
- #include <stack>
- #include <vector>
- #include <map>
- #include <iostream>
- #define ln printf("\n")
- using namespace std;
- int n;
- int dp[100];
- bool read(){
- if(scanf("%d", &n) == EOF) return false;
- return true;
- }
- void process(){
- printf("%d\n", dp[n]);
- }
- int main(){
- //freopen("in", "r", stdin);
- //int cases; scanf("%d", &cases);
- dp[1] = 1;
- dp[2] = 2;
- dp[3] = 2;
- for(int i = 4; i < 80; i++){
- dp[i] = dp[i-2] + dp[i-3];
- }
- while(/*cases-- && /**/ read()){
- process();
- }
- //while(1);
- return 0;
- }
Add Comment
Please, Sign In to add comment