QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#116212 | #6659. 외곽 순환 도로 2 | yyyyxh# | Compile Error | / | / | C++17 | 1.7kb | 2023-06-28 12:13:23 | 2024-05-31 18:21:12 |
Judging History
你现在查看的是测评时间为 2024-05-31 18:21:12 的历史记录
- [2024-05-31 18:21:12]
- 评测
- 测评结果:Compile Error
- 用时:0ms
- 内存:0kb
- [2023-08-10 23:21:45]
- System Update: QOJ starts to keep a history of the judgings of all the submissions.
- [2023-06-28 12:13:23]
- 提交
answer
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,ll> pil;
const int N=100003;
const ll INF=0x3f3f3f3f3f3f3f3f;
int hd[N],ver[N],nxt[N],tot;
ll dp[N][2][2][2];
vector<pil> g[N];
ll wl[N];
int leaf;
int lef[N],rig[N];
void chmn(ll &x,ll v){if(x>v) x=v;}
void dfs(int u){
for(int x=0;x<2;++x)
for(int y=0;y<2;++y)
for(int z=0;z<2;++z) dp[u][x][y][z]=INF;
if(g[u].empty()){
dp[u][0][0][0]=0;
dp[u][1][1][1]=0;
lef[u]=rig[u]=leaf;
++leaf;
return;
}
int l=-1,r=-1;
for(auto [v,w]:g[u]){
dfs(v);
if(l<0&&r<0){
l=lef[v];
r=rig[v];
for(int x=0;x<2;++x)
for(int y=0;y<2;++y)
for(int z=0;z<2;++z){
if(dp[v][x][y][z]==INF) continue;
for(int t=0;t<2;++t)
chmn(dp[u][t][y][z],dp[v][x][y][z]+(x==t)*w);
}
}
else{
ll tmp[2][2][2];
for(int x=0;x<2;++x)
for(int y=0;y<2;++y)
for(int z=0;z<2;++z){
tmp[x][y][z]=dp[u][x][y][z];
dp[u][x][y][z]=INF;
}
for(int x=0;x<2;++x)
for(int y=0;y<2;++y)
for(int z=0;z<2;++z){
if(dp[v][x][y][z]==INF) continue;
for(int t=0;t<2;++t)
for(int a=0;a<2;++a)
for(int b=0;b<2;++b){
if(tmp[t][a][b]==INF) continue;
chmn(dp[u][t][a][z],tmp[t][a][b]+dp[v][x][y][z]+(x==t)*w+(b==y)*wl[r]);
}
}
r=rig[v];
}
}
lef[u]=l;rig[u]=r;
}
ll place_police(vector<int> P,vector<ll> C,vector<ll> W){
int n=P.size();
for(int i=0;i<n;++i) g[P[i]].emplace_back(i+1,C[i]);
leaf=W.size();
for(int i=0;i<leaf;++i) wl[i]=W[i];
leaf=0;dfs(0);
ll res=INF;
for(int x=0;x<2;++x)
for(int y=0;y<2;++y)
for(int z=0;z<2;++z) chmn(res,dp[0][x][y][z]+(y==z)*W.back());
return res;
}
詳細信息
cc1plus: fatal error: implementer.cpp: No such file or directory compilation terminated.