CCF20220301——未初始化警告
代码如下:
#include<bits/stdc++.h>
using namespace std;
#define Max 100000
int x[Max]={0},y[Max]={0};
int main()
{
int n,k;
int cnt=1,flag=0;
cin>>n>>k;
for(int i=1;i<=k;i++)
cin>>x[i]>>y[i];
for(int i=2;i<=k;i++)
{
flag=0;
for(int j=1;j<i;j++)
{
if(y[i]==x[j]||y[i]==0)
{
flag=0;
break;
}
else
flag=1;
}
if(flag==1)
cnt++;
}
cout<<cnt<<endl;
return 0;
}
我的代码因为超时只有90,会增加很多次不必要的比较
#include<bits/stdc++.h>
using namespace std;
const int N = 100000;
bool a[N]; //记录该变量是否已经初始化
int n, k;
int main()
{
cin >> n >> k;
a[0] = 1; //a[0]为常量,不需要初始化
int res = 0;
while (k --)
{
int x, y;
cin >> x >> y;
if (!a[y]) res ++; //右值未初始化,则答案加一
a[x] = 1; //左值标记为已初始化
}
cout << res;
return 0;
}