2 条题解
-
0Guest LV 0
-
2
#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
#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%
- 上传者