Submission #100005

#TimeUsernameProblemLanguageResultExecution timeMemory
100005jamielimRoller Coaster Railroad (IOI16_railroad)C++14
34 / 100
86 ms10844 KiB
#include <bits/stdc++.h> #include "railroad.h" using namespace std; long long adj[20][20]; long long memo[20][66000]; long long tsp(int x,int bm){ if(memo[x][bm]!=-1)return memo[x][bm]; if(bm==0)return memo[x][bm]=0; long long ans=1000000000000000010; int bm2=bm; while(bm2&(-bm2)){ int y=__builtin_ctz(bm2); ans=min(ans,tsp(y,bm-(bm2&(-bm2)))+adj[x][y]); bm2-=(bm2&(-bm2)); } return memo[x][bm]=ans; } long long plan_roller_coaster(vector<int> s, vector<int> t) { int n=(int)s.size(); if(n>16){ return 1; } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(i==j)adj[i][j]=0; else adj[i][j]=max(0,t[i]-s[j]); } } memset(memo,-1,sizeof(memo)); long long ans=4000000000000000010; for(int i=0;i<n;i++){ ans=min(ans,tsp(i,(1<<n)-1-(1<<i))); } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...