QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#714235#6679. Not Another Path Query ProblemSanada_MasayukiWA 3ms52872kbC++231.2kb2024-11-05 22:12:312024-11-05 22:12:31

Judging History

This is the latest submission verdict.

  • [2024-11-05 22:12:31]
  • Judged
  • Verdict: WA
  • Time: 3ms
  • Memory: 52872kb
  • [2024-11-05 22:12:31]
  • Submitted

answer

#include<bits/stdc++.h>
#define rep(i,p,q) for (ll i=(p);i<=(q);i++)
#define pre(i,p,q) for (ll i=(p);i>=(q);i--)
#define ll long long
using namespace std;
const int N=100010,M=5e5+5; struct edge{ll x,y,z;}E[M]; 
ll n,m,q,V,flag,cnt,p,x,y,fa[65][N],pos[65];
ll find(ll i,ll x) {return fa[i][x]==x?x:fa[i][x]=find(i,fa[i][x]);}
int main() {
	scanf("%lld%lld%lld%lld",&n,&m,&q,&V);
	pre(i,60,1) if (V&(1ll<<i-1)) pos[++cnt]=i;
	rep(i,1,m) scanf("%lld%lld%lld",&E[i].x,&E[i].y,&E[i].z);
	pre(i,60,1) {
        flag=0;
        rep(j,1,n) fa[i][j]=j;
        if (V&(1ll<<i-1)) p++,flag=1;
        rep(j,1,m) if (E[j].z&(1ll<<i-1)) {
            x=find(i,E[j].x),y=find(i,E[j].y);
            if (x!=y) {
            	//printf("i:%lld x:%lld y:%lld\n",i,x,y);
                if (!flag||p==1) fa[i][x]=y;
                else if (fa[pos[p-1]][x]==fa[pos[p-1]][y]) fa[i][x]=y;
            }
        }
    }
    //pre(i,4,1) rep(j,1,n) printf("%lld%c",fa[i][j]," \n"[j==n]);
    for (;q--;cout<<1) {
        scanf("%lld%lld",&x,&y);
        flag=1;
        pre(i,60,1) {
        	if (!(V&(1ll<<i-1))&&find(i,x)==find(i,y)) break;
			if (V&(1ll<<i-1)&&find(i,x)!=find(i,y)) {flag=0; break;}
		}
        puts(flag?"Yes":"No");
    }
}

詳細信息

Test #1:

score: 0
Wrong Answer
time: 3ms
memory: 52872kb

input:

9 8 4 5
1 2 8
1 3 7
2 4 1
3 4 14
2 5 9
4 5 7
5 6 6
3 7 15
1 6
2 7
7 6
1 8

output:

Yes
1No
1Yes
1No
1

result:

wrong output format YES or NO expected, but 1NO found [2nd token]