QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#304450 | #8011. Institute | ucup-team2235# | RE | 1ms | 3648kb | C++17 | 1.2kb | 2024-01-13 19:54:25 | 2024-01-13 19:54:26 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
int n,m; cin>>n>>m;
vector<vector<int> > g(n),g2(n);
set<tuple<int,int,int> > e;
for(int i=0;i<m;i++){
int u,v,w; cin>>u>>v>>w;
if(e.find(make_tuple(u,v,w))==e.end()){
e.emplace(u,v,w);
g[--u].emplace_back(--v);
if(w>1)g2[u].emplace_back(v);
}
}
vector<bool> b(n),b2(n),b3(n),lp(n);
set<int> s;
queue<int> q; q.emplace(0),b[0]=true;
while(!q.empty()){
int u=q.front(); s.emplace(u),q.pop();
for(int i:g[u])
if(!b[i])b[i]=true,q.emplace(i);
}
q.emplace(0),b2[0]=true;
bool f=false;
while(!q.empty()){
int u=q.front(); s.erase(u),q.pop();
for(int i:g2[u]){
if(!b[i])b[i]=true,q.emplace(i);
if(!i)f=true;
}
}
if(f)cout<<"Yes\n",exit(0);
for(int i:s){
vector<int> v;
function<void(int)> dfs=[&](int u){
if(b3[u]){
if(v.empty())return;
for(int i=v.size()-1;v[i]!=u;i--)
lp[v[i]]=true;
lp[u]=true;
return;
}
v.emplace_back(u),b3[u]=true;
for(int i:g2[u])dfs(i);
v.pop_back();
};
if(dfs(i);!lp[i])cout<<"Yes\n",exit(0);
}
cout<<"No\n";
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 3492kb
input:
3 4 1 2 1 2 3 2 3 2 1 3 1 2
output:
Yes
result:
ok answer is YES
Test #2:
score: 0
Accepted
time: 0ms
memory: 3520kb
input:
6 8 1 2 1 2 3 2 3 2 2 3 4 1 4 1 2 1 5 2 5 4 2 6 1 2
output:
No
result:
ok answer is NO
Test #3:
score: 0
Accepted
time: 1ms
memory: 3648kb
input:
1000 1000 141 466 1 634 659 1 179 96 2 445 344 2 993 974 1 310 114 2 32 333 1 758 832 1 834 1 1 874 825 2 480 61 2 765 100 2 804 616 1 496 545 1 786 261 2 899 263 1 962 237 2 766 807 1 561 583 1 35 425 1 201 291 1 6 142 1 61 386 2 785 861 2 386 986 2 288 769 2 850 209 1 660 259 2 258 143 2 646 715 2...
output:
Yes
result:
ok answer is YES
Test #4:
score: -100
Runtime Error
input:
1000 3000 719 279 2 857 23 1 984 625 2 904 509 2 892 456 2 589 195 2 718 932 2 608 363 1 474 672 1 217 993 2 165 895 2 727 329 2 932 404 2 952 146 2 201 272 2 412 895 2 228 267 2 396 365 2 813 794 2 259 250 1 968 764 2 100 76 2 924 665 2 981 931 2 292 975 2 903 649 2 793 101 2 54 703 1 853 58 2 356 ...