求助!RE!(玄关
查看原帖
求助!RE!(玄关
1072849
Walkzz楼主2025/1/19 09:23

为什么我用宏定义的for循环就会RE+死循环

把宏定义改成普通的for就没事了(11行)

这个宏定义貌似没问题啊

(目前已A)

#include<bits/stdc++.h>
#define ad(k) (k=-~k)
#define F(i,a,b) for(register int i=a;i<=b;i=-~i)
#define sb(k) (k=~-k)
using namespace std;const int N=100005;
struct node{int y,s;};vector<node> a[N];
int n,m,x,y,s,r[N];double d,gl[N];
inline void dfs(int id,double g){
    sb(r[id]);gl[id]+=g;
	if(r[id]!=0)return;
    //F(i,0,a[id].size()-1){
    for(int i=0;i<a[id].size();i++){
        d+=gl[id]/a[id].size()*a[id][i].s;
        dfs(a[id][i].y,gl[id]/a[id].size());
    }
	return;
}main(){
    cin>>n>>m;
    F(i,1,m){cin>>x>>y>>s;a[x].push_back(node{y,s});ad(r[y]);}
    r[1]=1;dfs(1,1.0);
    cout<<fixed<<setprecision(2)<<d;
}
2025/1/19 09:23
加载中...