46分,WA #2,#4,#5,#8,#9,#12,#13
  • 板块P1262 间谍网络
  • 楼主Koei
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/12/28 16:38
  • 上次更新2024/12/28 20:32:57
查看原帖
46分,WA #2,#4,#5,#8,#9,#12,#13
713098
Koei楼主2024/12/28 16:38
#include<bits/stdc++.h>
using namespace std;
int a[8010][8010];
struct node1{
    int x,id;
}s[8010];
int f[8010];int n,p,r,ans=0;
bool cmp(node1 a,node1 b){
    return a.x<b.x;
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        f[i]=1;
    }
    cin>>p;
    for(int i=1;i<=p;i++){
        cin>>s[i].id>>s[i].x;
    }
    sort(s+1,s+p+1,cmp);
    cin>>r;
    for(int i=1;i<=r;i++){
        int x,y;
        cin>>x>>y;
        a[x][y]=1;
    }
    int cnt=0;
    for(int i=1;i<=p&&cnt!=n;i++){
        int z=s[i].id;
        if(f[z]!=0){
            ans+=s[i].x;
            f[z]=0;
            int g=0;
            while(g==0){
                for(int j=1;j<=n;j++){
                    g=1;
                    if(a[z][j]==1&&f[j]!=0){
                        f[j]=0;
                        z=j;
                        g=0;
                        cnt++;
                        break;
                    }
                }
            }
            
        }
    }
//    if(cnt<n){
        for(int i=1;i<=n;i++){
            if(f[i]==1){
                cout<<"NO\n";
                cout<<i<<"\n";
                return 0;
            }
        }
//    }
    cout<<"YES\n";
    cout<<ans<<"\n";
    return 0;
}
/*
3
2
1 10
2 100
2
1 3
2 3
*/
2024/12/28 16:38
加载中...