제출 #729380

#제출 시각아이디문제언어결과실행 시간메모리
729380pccDango Maker (JOI18_dango_maker)C++14
0 / 100
55 ms108168 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pll pair<ll,ll> #define fs first #define sc second #define _all(a) a.begin(),a.end() #define pii pair<int,int> const int mxn = 3030; struct Edge{ int to; int cap; Edge(){} Edge(int tt,int cc){ to = tt,cap = cc; } }; vector<Edge> edges; vector<vector<int>> paths; vector<int> level; string s[mxn]; int st,ed; void addedge(int a,int b){ paths[a].push_back(edges.size()); edges.push_back(Edge(b,1)); paths[b].push_back(edges.size()); edges.push_back(Edge(a,0)); } bool bfs(){ queue<int> q; fill(level.begin(),level.end(),-1); level[0] = 0; q.push(0); while(!q.empty()){ auto now = q.front(); q.pop(); for(auto &id:paths[now]){ if(!edges[id].cap)continue; auto nxt = edges[id].to; if(level[nxt] == -1){ level[nxt] = level[now]+1; q.push(nxt); } } } return level[ed] != -1; } int dfs(int now,int lim){ if(now == ed)return lim; int ans = 0; for(auto &id:paths[now]){ if(!edges[id].cap)continue; if(!lim)break; auto nxt = edges[id].to; if(level[nxt] != level[now]+1)continue; auto re = dfs(nxt,min(edges[id].cap,lim)); if(re == 0)continue; edges[id].cap -= re; edges[id^1].cap += re; ans += re; lim -= re; } return ans; } int arr[mxn*mxn*3]; void solve(){ for(auto &i:arr)i = i&1; return; } int main(){ ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...