算法1
注释见代码
参考文献
C++ 代码
#include<bits/stdc++.h>
using namespace std;
map<int,bool>mp;
int main()
{
mp[0]=1;//常量已经初始化
int n,k,ans=0;
cin>>n>>k;
for(int i=1;i<=k;i++){
int a,b;
cin>>a>>b;
if(!mp[b])ans++;//未初始化
mp[a]=1;//初始化过了
}
cout<<ans;
}
请问下为什么mp[0]=1换成while里面的if(b == 0) continue; 最后一个数据就过不了了
那你continue之前写了mp[a] = 1吗
似乎是少了把mp[a] = 1,所以会错
没有 只有最后一个数据过不了 标准答案是73,输出是74,多了一个,不知道为什么
就是mp[a]= 1被跳过的原因
soga 谢谢
因为这时候左值出现过了, 要处理一下, cotinue后就会丢了一个