首页 > 其他分享 >The 2021 ICPC Asia Shenyang Regional Contest B

The 2021 ICPC Asia Shenyang Regional Contest B

时间:2022-11-13 21:35:37浏览次数:49  
标签:cnt Regional val Contest int Shenyang back st push

B. Bitwise Exclusive-OR Sequence

我们考虑一种构造方式就是
让一个点为0 然后连接他的就一直异或上他连接的目标
这样虽然不能符合题意 达到最小但是 我们可以发现这个如果出现环的话
就会有冲突 我们必须让这个环的异或和为0 才是合法的
然后我们考虑如何去最小值
我们发现如果一个变的话 必须整体全都变才行
我们直接按位考虑即可
注意的是 要是不是一个连通块 显然我们可以分开来算

int n,m,st[N],ans,val[N];
vector<pair<int,int>>g[N];
vector<int>a;
void dfs(int u,int x){
    st[u]=1;
    val[u]=x;
    a.push_back(x);
    for(auto [v,w]:g[u]){
        if(st[v]){
            if((x^val[v])!=w){
                cout<<-1<<endl;
                exit(0);
            }
            continue;
        }
        dfs(v, x^w);
    }
}
void solve(){
    cin>>n>>m;
    for(int i=1;i<=m;i++){
        int u,v,w;cin>>u>>v>>w;
        g[u].push_back({v,w});
        g[v].push_back({u,w});
    }
    for(int i=1;i<=n;i++){
        if(!st[i]){
            a.clear();
            dfs(i,0);//black
            for(int k=0;k<30;k++){
                int cnt=0;
                for(auto j:a)
                    if(j>>k&1)cnt++;
                ans+=min((int)a.size()-cnt,cnt)*(1<<k);
            }
        }
    }
    cout<<ans<<endl;
}

标签:cnt,Regional,val,Contest,int,Shenyang,back,st,push
From: https://www.cnblogs.com/ycllz/p/16887024.html

相关文章

  • (AtCoder Beginner Contest 277)E(分层图+最短路 or bfs搜两种状态)
    E-CrystalSwitches题目大意:给你n个点,m条边,连接成一个无向图,每个边最初有一个状态(0or1)表示是否能够通过,同时给k个开关位于k的顶点上,每次点击开关会使得所有路的状......
  • AtCoder Beginner Contest 277 D Takahashi's Solitaire
    Takahashi'sSolitaire双指针&&尺取先排个序,然后把数组扩展到\(2\timesn\),为了处理循环的情况然后双指针跑一下,限定\(r\)扩展的条件为:当前数字等于前一个或者......
  • AtCoder Beginner Contest 277 F Sorting a Matrix
    SortingaMatrix拓扑序首先可以明确无论怎么交换行列,原本在同一行或者同一列的元素,还是会处于同一行或者同一列条件一每行每行地看,如果能满足从小到大的条件,说明第......
  • AtCoder Beginner Contest 277 E Crystal Switches
    CrystalSwitches分层图+\(01bfs\)按钮的操作就是走分层图的边因此就构建两张图,然后将特殊点加一个双向边\(01bfs\)跑一下就行#include<iostream>#include<cstd......
  • AtCoder Beginner Contest 277 题解
    掉大分力(悲A-^{-1}直接模拟。#include<bits/stdc++.h>#defineIOSios::sync_with_stdio(false)#defineTIEcin.tie(0),cout.tie(0)#defineintlonglongusing......
  • Weekly Contest 317
    WeeklyContest317ProblemAAverageValueofEvenNumbersThatAreDivisiblebyThree思路事实上就是求整除6的数的均值代码classSolution:defaverageVal......
  • AtCoder Regular Contest 149 D Simultaneous Sugoroku
    很妙的一个题。没法用数据结构直接维护点的移动。可以挖掘一些性质。发现对于两个点\(x\)和\(-x\),它们的移动关于原点对称。可以根据对称性维护森林。维护当前的区间......
  • Team Weekly Contest 2022-11-06
    2022ICPCAsiaTaiwanOnlineProgrammingContestH.Heximal不会高精度,拿python写的,但是python3.8会TLE,python2不会,就是有点卡高精度+快速幂deffp(x,y):ret=......
  • Atcoder Grand Contest 004(A~F)
    这场半VP做的,就不分赛时赛后写了,直接放每道题的解法。A-DivideaCuboid当某一维的长度为偶数的时候,显然可以在这一维的中间切,两部分方块的最小差为\(0\)。当每一......
  • The 2022 ICPC Asia Regionals Online Contest (II)
    一直没补,把之前的粘贴过来EAnInterestingSequence 为使数组和小,并且gcd=1,我们添加2,3,,找到第一个不整除k的质数,然后后面放2,3,判断先放2还是3JAGameaboutIncrea......