不能用long long赋值?
查看原帖
不能用long long赋值?
289332
lsfzz楼主2020/10/5 15:54
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll i,m,a,b,q[101],f=1,r=0,v,c[101],u[101],w[101][101],wz=0;
ll n;
struct rec
{
    int sl, jd; 
}ans[101];
bool exist[101];
int cm(rec a, rec b)
{
    return a.sl<b.sl;
}
int main()
{
    memset(w,0x7f7f7f7f,sizeof(w));
    memset(exist,0,sizeof(exist));
    cin>>n>>m;
    for(i=1;i<=n;i++)
    {
      cin>>c[i]>>u[i];
      if(c[i]!=0) 
	  { 
	  q[++r]=i; 
	  exist[i]=1; 
	  }
      else 
	  c[i]-=u[i];
    }
    for(i=1;i<=m;i++)
    {
        cin>>a>>b;
        cin>>w[a][b];
    }
    while(f<=r)
    {
        v=q[f++];
        exist[v]=0;
        if(c[v]<=0) 
		continue;
        for(i=1;i<=n;i++)
          if (w[v][i]!=0x7f7f7f7f)
          {
              c[i]+=w[v][i]*c[v];
              if (c[i]>0&&exist[i]==0)
              {
                  q[++r]=i;
                  exist[i]=1;
              }
          }
        bool flag=true;
        for (i=1;i<=n;i++)
          if (w[v][i]!=0x7f7f7f7f)
          {
              flag=false;
              break;
          }
        if(flag==true)   
        {
            wz++;
            ans[wz].sl=v;
            ans[wz].jd=c[v];
        }
    }  
    if(wz==0) 
	cout<<"NULL";
    else 
    {
      sort(ans+1,ans+wz+1,cm);
      for(i=1;i<=wz;i++)
        cout<<ans[i].sl<<" "<<ans[i].jd<<endl;
    }
    return 0;
}

为什么这样写2个wa,3个Re,而把long long 改为 int就过了,long long 和 int 不只是范围上的区别吗?

2020/10/5 15:54
加载中...