2 条题解

  • 2
    @ 2019-07-06 15:00:59

    #include<bits/stdc++.h>
    using namespace std;
    int a[2][20000];
    int main()
    {
    int n;
    scanf("%d",&n);
    for (int i=1; i<=n; ++i) scanf("%d%d",&a[0][i],&a[1][i]);
    int x=1,y=0,ans=0;
    while (x<n){
    if (a[y][x] || (a[0][x+1] && a[1][x+1])){
    ans=-1; break;
    }
    if (a[y][x+1]) {
    y^=1; ++ans; continue;
    }
    ++ans; ++x;
    }
    if (ans==-1) printf("Poor");
    else printf("%d\n",ans);
    return 0;
    }

  • 1
    @ 2019-11-08 13:03:58

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=1000000000;
    int dis[1000000],pd[10000000],n;
    int a[5000][5000],t,ans;
    inline void prim()
    {
    for(int i=2;i<=n;i++) dis[i]=a[1][i];
    dis[1]=0;pd[1]=1;
    int minn=0;
    for(int i=2;i<=n;i++)
    {
    minn=maxn;
    for(int j=1;j<=n;j++)
    {
    if(dis[j]<minn&&pd[j]==0)
    {
    minn=dis[j];
    t=j;
    }
    }
    ans+=minn;
    pd[t]=1;
    for(int j=1;j<=n;j++)
    {
    if(dis[j]>a[t][j]&&pd[j]==0)
    dis[j]=a[t][j];
    }
    }
    }
    int main()
    {
    cin>>n;
    for(int i=1;i<=n;i++)
    for(int j=1;j<=n;j++)
    cin>>a[i][j];
    prim();
    cout<<ans;
    }

  • 1

信息

ID
1000
难度
9
分类
(无)
标签
递交数
19
已通过
1
通过率
5%
上传者