Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "rts.h"
- #include <map>
- const int N = 300010;
- namespace task_chain {
- bool vis[N];
- void play(int n) {
- int left = 1, right = 1;
- vis[1] = true;
- for (int u = 1; u <= n; ++u) {
- if (vis[u])
- continue;
- int v = explore(left, u);
- if (vis[v]) {
- v = right;
- while (v != u) {
- v = explore(v, u);
- vis[v] = true;
- }
- right = u;
- } else {
- vis[v] = true;
- while (v != u) {
- v = explore(v, u);
- vis[v] = true;
- }
- left = u;
- }
- }
- }
- }
- namespace task_normal {
- struct edge {
- int v;
- edge* next;
- };
- double ALPHA = 0.6;
- int ecnt;
- bool exp[N];
- int ver[N];
- edge* g[N];
- std::map<int, int> subcenter[N];
- void add_edge(int u, int v) {
- static edge pool[N * 2];
- static edge* p = pool;
- p->v = v;
- p->next = g[u];
- g[u] = p++;
- }
- void play(int n) {
- exp[1] = true;
- ver[1] = 1;
- ecnt = 1;
- for (int u = 2; u <= n; ++u) {
- if (exp[u])
- continue;
- }
- }
- }
- void play(int n, int T, int dataType) {
- if (dataType == 3)
- return task_chain::play(n);
- return task_normal::play(n);
- }
Advertisement
Add Comment
Please, Sign In to add comment