1 条题解

  • 0
    @ 2025-8-24 21:43:22

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar NTG_Adiord
    **

    搬运于2025-08-24 21:43:22,当前版本为作者最后更新于2018-08-15 09:42:14,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    鬼畜做法

    反正跟顺序根本没多大关系。。。。。直接1抑或和就好

    代码如下

    #include <cstdio>
    int main(){
    	int n,a;bool b;
    	scanf("%d",&n);n--;
    	while(n--)scanf("%d%d%d",&a,&a,&a),b^=a;
    	printf("%d",b);
    }
    
    

    太鬼畜了真是

    麻烦的做法

    链式前向星,记录一下引擎之前是否有动力轮,如果没有那说明这个轮子是第一个轮子

    然后遍历算抑或和就完了

    详情请咨询10086

    详情参考代码

    #include <bits/stdc++.h>
    using namespace std;
    int n;
    int l;
    int to[1001];
    int hea[1001];
    int nex[1001];
    int wea[1001];
    int in[1001];
    int ans;
    void dr(){
    	scanf("%d",&n);
    	for(int i=1;i<n;i++){
    		int a,b,w;
    		scanf("%d%d%d",&a,&b,&w);
    		in[b]++;//记录是否被连接
    		to[++l]=b;nex[l]=hea[a];hea[a]=l,wea[l]=w;//连边,懒得写建边函数了
    	}
    }
    void wk(){
    	for(int i=1;i<=n;i++){
    		if(in[i]==0){
    			for(int j=i;j;j=to[hea[j]]){
    				ans=ans^wea[hea[j]];//两次相反为0,直接算抑或,1^1=0
    			}
    		}
    		printf("%d",ans);
    		return;//直接返回
    	}
    }
    int main(){
    	dr();//读入
    	wk();//输出
    	return 0;
    }
    
    
    • 1

    信息

    ID
    1978
    时间
    1000ms
    内存
    125MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者