1 条题解

  • -2
    @ 2024-9-28 21:26:11

    貌似没有人提交题解,我来一个吧,发现没有题解的题通过率那么低。

    #include<bits/stdc++.h>
    using namespace std;
    int n,m,cnt=0;
    vector<int> eg[2005][2005];
    bool *ex[2005][2005];
    int main(){
    	scanf("%d%d",&n,&m);
    	for(int i=1;i<=m;i++){
    		int u,v,w;
    		scanf("%d%d%d",&u,&v,&w);
    		eg[u][v].emplace_back(w);
    		if(ex[v][w]==nullptr){
    			ex[v][w]=new bool[2005];
    			memset(ex[v][w],0,2005);
    		}
    		ex[v][w][u]=1;
    	}
    	for(int a=1;a<n;a++)
    		for(int b=a+1;b<=n;b++){
    			sort(eg[a][b].begin(),eg[a][b].end());
    			for(int cc=0;cc<eg[a][b].size();cc++)
    				for(int dd=cc+1;dd<eg[a][b].size();dd++){
    					int c=eg[a][b][cc],d=eg[a][b][dd];
    					if(ex[c][d]!=nullptr && ex[c][d][a] && ex[c][d][b])
    						cnt++;
    				}
    		}
    	cout<<cnt<<endl;
    	return 0;
    }
    

    代码自己理解,保证全AC

    信息

    ID
    43
    时间
    1000ms
    内存
    512MiB
    难度
    4
    标签
    递交数
    742
    已通过
    93
    上传者