#include <iostream> #include <cstdio> #include <cstdlib> #include <vector> #include <set> #include <random> #include <map> #include <deque> using namespace std; class Node { public: long n; long d; vector<long> nexts; vector<long> dists; Node(long n):n(n) { d = 0; }; }; int main() { long NoQ = 200; long NoN = 5000; long NoS = 1000000; long res = 0; // vector<long> vqf; // vector<long> vqt; // vector<Node> nodes; // deque<pair<long, long> > q; // map<long, long> vends_rev; // for (long i=0;i<NoS+1;i++) { // vends_rev[i] = i; // nodes.push_back(Node(i)); // } // for(int i=0; i<NoN; i++) { // long nf = rand() % NoS +1; // long n1 = rand() % NoS +1; // long d1 = 100; // long n2 = rand() % NoS +1; // long d2 = 100; // vqf.push_back(n1); // vqt.push_back(n2); // if (n1 > 0) { // long v1 = vends_rev[nf]; // long v2 = vends_rev[n1]; // nodes[v1].nexts.push_back(v2); // nodes[v1].dists.push_back(d1); // nodes[v2].nexts.push_back(v1); // nodes[v2].dists.push_back(d1); // } // if (n2 > 0) { // long v1 = vends_rev[nf]; // long v2 = vends_rev[n2]; // nodes[v1].nexts.push_back(v2); // nodes[v1].dists.push_back(d2); // nodes[v2].nexts.push_back(v1); // nodes[v2].dists.push_back(d1); // } // } // // printf("%ld %ld\n", vqf.size(), vqt.size()); // for (int i=0;i<NoQ; i++) { // long qf = vqf[NoQ-i]; // long qt = vqt[i]; // if (qf == qt) { // printf("0\n"); // } else { // long vs = vends_rev[qf]; // long vt = vends_rev[qt]; // // printf("%ld %ld %ld %ld\n", qf, qt, vs, vt); // nodes[vs].d = 0; // q.push_back(make_pair(vs, vs)); // while(!q.empty()) { // pair<long, long> p = q.front(); // long vf = p.first; // long vc = p.second; // q.pop_front(); // Node& curr = nodes[vc]; // for(int j=0;j<curr.nexts.size(); j++) { // if (curr.nexts[j] != vf) { // Node& nj = nodes[curr.nexts[j]]; // nj.d = curr.d + curr.dists[j]; // if (nj.n == vt) // break; // q.push_back(make_pair(vc, nj.n)); // } // } // } // q.clear(); // res += nodes[vt].d; // } // } long r=0; printf("%ld\n", res); for(int i=0; i<20000000; i++) { r += rand()%NoN; } printf("%ld", r); return 0; }
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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | #include <iostream> #include <cstdio> #include <cstdlib> #include <vector> #include <set> #include <random> #include <map> #include <deque> using namespace std; class Node { public: long n; long d; vector<long> nexts; vector<long> dists; Node(long n):n(n) { d = 0; }; }; int main() { long NoQ = 200; long NoN = 5000; long NoS = 1000000; long res = 0; // vector<long> vqf; // vector<long> vqt; // vector<Node> nodes; // deque<pair<long, long> > q; // map<long, long> vends_rev; // for (long i=0;i<NoS+1;i++) { // vends_rev[i] = i; // nodes.push_back(Node(i)); // } // for(int i=0; i<NoN; i++) { // long nf = rand() % NoS +1; // long n1 = rand() % NoS +1; // long d1 = 100; // long n2 = rand() % NoS +1; // long d2 = 100; // vqf.push_back(n1); // vqt.push_back(n2); // if (n1 > 0) { // long v1 = vends_rev[nf]; // long v2 = vends_rev[n1]; // nodes[v1].nexts.push_back(v2); // nodes[v1].dists.push_back(d1); // nodes[v2].nexts.push_back(v1); // nodes[v2].dists.push_back(d1); // } // if (n2 > 0) { // long v1 = vends_rev[nf]; // long v2 = vends_rev[n2]; // nodes[v1].nexts.push_back(v2); // nodes[v1].dists.push_back(d2); // nodes[v2].nexts.push_back(v1); // nodes[v2].dists.push_back(d1); // } // } // // printf("%ld %ld\n", vqf.size(), vqt.size()); // for (int i=0;i<NoQ; i++) { // long qf = vqf[NoQ-i]; // long qt = vqt[i]; // if (qf == qt) { // printf("0\n"); // } else { // long vs = vends_rev[qf]; // long vt = vends_rev[qt]; // // printf("%ld %ld %ld %ld\n", qf, qt, vs, vt); // nodes[vs].d = 0; // q.push_back(make_pair(vs, vs)); // while(!q.empty()) { // pair<long, long> p = q.front(); // long vf = p.first; // long vc = p.second; // q.pop_front(); // Node& curr = nodes[vc]; // for(int j=0;j<curr.nexts.size(); j++) { // if (curr.nexts[j] != vf) { // Node& nj = nodes[curr.nexts[j]]; // nj.d = curr.d + curr.dists[j]; // if (nj.n == vt) // break; // q.push_back(make_pair(vc, nj.n)); // } // } // } // q.clear(); // res += nodes[vt].d; // } // } long r=0; printf("%ld\n", res); for(int i=0; i<20000000; i++) { r += rand()%NoN; } printf("%ld", r); return 0; } |