AOJ1347 Shopping

Shopping | Aizu Online Judge

Introduction to Programming Introduction to Algorithms and Data Structures Library of Data Structures Library of Graph Algorithms Library of Computational Geometry Library of Dynamic Programming Library of Number Theory

まず最初に,全ての場所に行って帰ってを行うグラフを考える.

ここから実際に戻らなければいけない区間を出して

その区間でない場所は 本あればいいので する.

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
#include <vector>
#include <string>
#include <cstring>
#include <algorithm>
#include <sstream>
#include <map>
#include <set>

#define REP(i,k,n) for(int i=k;i<n;i++)
#define rep(i,n) for(int i=0;i<n;i++)
#define INF 1<<30
#define pb push_back
#define mp make_pair

using namespace std;
typedef long long ll;
typedef pair<int,int> P;

int main() {
  int n, m;
  cin >> n >> m;

  vector<int> c(m), d(m);
  rep(i, m) cin >> c[i] >> d[i];

  int cnt[1005];
  memset(cnt, 0, sizeof(cnt));

  rep(i, m) {
      REP(j, c[i], d[i]) {
          cnt[j]++;
      }
  }

  int ans = 3 * (n + 1);
  rep(i, n + 1) {
      if(cnt[i] == 0) {
          ans -= 2;
      }
  }

  cout << ans << endl;

  return 0;
}
Mar 26th, 2016