QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#779673#6613. Bitwise Exclusive-OR Sequenceamekawa_kanadeWA 510ms30976kbC++141.5kb2024-11-24 21:05:322024-11-24 21:05:33

Judging History

你现在查看的是最新测评结果

  • [2024-11-24 21:05:33]
  • 评测
  • 测评结果:WA
  • 用时:510ms
  • 内存:30976kb
  • [2024-11-24 21:05:32]
  • 提交

answer

//written by Amekawa_kanade
#include<bits/stdc++.h>
using namespace std;
void syncoff()//fuck you sync
{
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
}
#define endl '\n'
const int N=5e5+11;
using ll=long long;
using i128=__int128;
using ld=long double;
const ll JT=998244353;
const ll GEH=1e9+7;
const ll ZLH=1e9+9;
int t,n,k,m,q;
vector<pair<int,int> > G[N];
int c0,c1,qaq[N];
void clr_g()
{
	for(int i=1;i<=n;++i)  G[i].clear(),qaq[i]=0;
	c0=0,c1=0;
}
bool dfs(int u,int val)
{
	if(qaq[u])
	{
		if(qaq[u]!=val) return 1;
		else return 0;
	}
	qaq[u]=val;bool ret=0;
	if(val==1) ++c0;else ++c1;
	for(auto [v,x]:G[u])
	{
		if(x) ret|=dfs(v,-val);
		else ret|=dfs(v,val);
	}
	return ret;
}
ll ans;
struct cstrs
{
	int u,v,w;
}EG[N];
void clr()
{
	for(int i=1;i<=m;++i) EG[i]={0,0,0};
	ans=0;clr_g();
}
void solve()
{
	cin>>n>>m;
	for(int i=1;i<=m;++i)
	{
		cin>>EG[i].u>>EG[i].v>>EG[i].w;
	}
	bool ok=1;
	for(int p=30;ok&&p>=0;--p)
	{
		clr_g();
		for(int i=1;i<=m;++i)
		{
			int u=EG[i].u,v=EG[i].v;
			int pw=(EG[i].w>>p)&1;
			if(pw) G[u].push_back(make_pair(v,1)),G[v].push_back(make_pair(u,1));
			else G[u].push_back(make_pair(v,0)),G[v].push_back(make_pair(u,0));
		}
		for(int i=1;i<=n;++i) if(!qaq[i])
		{
			ok=(!dfs(i,1));if(!ok) break;
		}
		ans+=(1<<p)*min(c0,c1);
	}
	if(!ok)
	{
		cout<<-1<<endl;return clr();
	}
	cout<<ans<<endl;
	return clr();
}
int main()
{
 	t=1;
    //cin>>t;
    while(t--) solve();
    return 0;
}

详细

Test #1:

score: 100
Accepted
time: 4ms
memory: 19256kb

input:

3 2
1 2 1
2 3 1

output:

1

result:

ok 1 number(s): "1"

Test #2:

score: 0
Accepted
time: 2ms
memory: 19092kb

input:

3 3
1 2 1
2 3 1
1 3 1

output:

-1

result:

ok 1 number(s): "-1"

Test #3:

score: 0
Accepted
time: 0ms
memory: 18296kb

input:

5 5
3 4 12
3 1 20
2 5 16
1 4 24
4 5 19

output:

58

result:

ok 1 number(s): "58"

Test #4:

score: 0
Accepted
time: 109ms
memory: 23180kb

input:

500 124750
1 2 31473
1 3 11597
1 4 6686
1 5 1214
1 6 14442
1 7 1042
1 8 19057
1 9 22648
1 10 24461
1 11 25714
1 12 3976
1 13 31954
1 14 7384
1 15 13988
1 16 28651
1 17 31599
1 18 8786
1 19 27068
1 20 9645
1 21 28281
1 22 11681
1 23 28897
1 24 31916
1 25 10462
1 26 23973
1 27 4615
1 28 5124
1 29 2026...

output:

8041745

result:

ok 1 number(s): "8041745"

Test #5:

score: 0
Accepted
time: 113ms
memory: 21200kb

input:

500 124750
1 2 3902
1 3 9006
1 4 2914
1 5 8753
1 6 2395
1 7 21406
1 8 14552
1 9 25834
1 10 28282
1 11 9684
1 12 11347
1 13 20545
1 14 16324
1 15 16951
1 16 11594
1 17 5035
1 18 17726
1 19 831
1 20 23194
1 21 7693
1 22 6147
1 23 315
1 24 32755
1 25 17078
1 26 11348
1 27 9587
1 28 21015
1 29 881
1 30 ...

output:

7803950

result:

ok 1 number(s): "7803950"

Test #6:

score: -100
Wrong Answer
time: 510ms
memory: 30976kb

input:

100000 200000
82262 26109 1005476194
43106 86715 475153289
59086 60577 507254441
71498 80384 186530379
99676 3003 289537598
30772 72897 345346447
12686 87447 896623879
12520 27709 26442442
82734 20830 967590473
13380 76164 927495776
25723 55377 89078582
7173 86993 669894679
37790 94846 331905713
365...

output:

7902925142

result:

wrong answer 1st numbers differ - expected: '52538527353096', found: '7902925142'