QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#303190#7769. Axium Crisismyee0 1158ms88840kbC++113.8kb2024-01-11 20:43:392024-01-11 20:43:40

Judging History

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

  • [2024-01-11 20:43:40]
  • 评测
  • 测评结果:0
  • 用时:1158ms
  • 内存:88840kb
  • [2024-01-11 20:43:39]
  • 提交

answer

// 那就是希望。
// 即便需要取模,也是光明。

#include <algorithm>
#include <stdio.h>
#include <vector>
typedef long long llt;
typedef unsigned uint;typedef unsigned long long ullt;
typedef bool bol;typedef char chr;typedef void voi;
typedef double dbl;
template<typename T>bol _max(T&a,T b){return(a<b)?a=b,true:false;}
template<typename T>bol _min(T&a,T b){return(b<a)?a=b,true:false;}
template<typename T>T lowbit(T n){return n&-n;}
template<typename T>T gcd(T a,T b){return b?gcd(b,a%b):a;}
template<typename T>T lcm(T a,T b){return(a!=0||b!=0)?a/gcd(a,b)*b:(T)0;}
template<typename T>T exgcd(T a,T b,T&x,T&y){if(b!=0){T ans=exgcd(b,a%b,y,x);y-=a/b*x;return ans;}else return y=0,x=1,a;}
template<typename T>T power(T base,T index,T mod)
{
    T ans=1%mod;
    while(index)
    {
        if(index&1)ans=ans*base%mod;
        base=base*base%mod,index>>=1;
    }
    return ans;
}
// Your shadow Gets in the way of my light
uint U[18],V[18],W[18];
std::vector<uint>E[18];
uint End[1u<<18|1],S[1u<<20|1],From[1u<<20|1],To[1u<<20|1],Last[1u<<20|1],cnt;
uint Go[18][18];
voi dfs0(uint p,uint r,uint a,uint b)
{
    if(b)Last[cnt]=End[a],S[cnt]=b,From[cnt]=p,To[cnt]=r,End[a]=cnt++;
    for(auto e:E[p])if(!(b>>e&1))
    {
        if(W[e]!=1)dfs0(U[e]^V[e]^p,r,a<<1,b|1u<<e);
        if(W[e])dfs0(U[e]^V[e]^p,r,a<<1|1,b|1u<<e);
    }
}
uint R[1u<<17|1];
uint Dp[18][1u<<17|1],n;bol Upd[18][1u<<17|1];
uint Q[18][1u<<17|1],Qc[18];
uint Id1[41000005],W1[41000005],tp1;
uint Id2[2500005],W2[2500005],tp2;
voi tryupd(uint d,uint s,uint v)
{
    if(v>Dp[d][s])
    {
        Id1[tp1]=d<<(n-1)|s,W1[tp1]=Dp[d][s],tp1++,Dp[d][s]=v;
        if(d+R[s]<v)Id2[tp2]=s,W2[tp2]=R[s],tp2++,R[s]=v-d;
        if(d&&!Upd[d][s])Upd[d][s]=true,Q[d][Qc[d]++]=s;
    }
}
uint T1[18][1u<<17|1],T2[18][1u<<17|1];
voi dfs(uint d,uint s)
{
    for(uint e=End[s|1u<<d];~e;e=Last[e])
        for(uint t=(1u<<(n-1))-1;~t;t--)t&=~S[e],tryupd(d,S[e]|t,R[t]+d);
    if(d<n-1)dfs(d+1,s),dfs(d+1,s|1u<<d);
    T1[d][s]=tp1,T2[d][s]=tp2;
    while(Qc[d])Qc[d]--,Upd[d][Q[d][Qc[d]]]=false,tryupd(d-1,Q[d][Qc[d]],Dp[d][Q[d][Qc[d]]]);
}
std::vector<uint>Ans;
voi dfs2(uint d,uint s,uint&wil,uint&w)
{
    while(tp1>T1[d][s])tp1--,Dp[Id1[tp1]>>(n-1)][Id1[tp1]&((1u<<(n-1))-1)]=W1[tp1];
    while(tp2>T2[d][s])tp2--,R[Id2[tp2]]=W2[tp2];
    if(d<n-1)dfs2(d+1,s|1u<<d,wil,w),dfs2(d+1,s,wil,w);
    for(uint e=End[s|1u<<d];~e;e=Last[e])if((wil&S[e])==S[e]&&R[wil^S[e]]+d==w)Ans.push_back(e),wil^=S[e],w-=d;
}
voi solve()
{
    scanf("%u",&n);for(uint i=0;i<n;i++)E[i].clear();
    for(uint i=0;i<n-1;i++)scanf("%u%u%u",U+i,V+i,W+i),E[U[i]].push_back(i),E[V[i]].push_back(i);
    for(uint i=0;i<(1u<<n);i++)End[i]=-1;
    cnt=0;for(uint i=0;i<n;i++)dfs0(i,i,1,0);
    for(uint i=0;i<n;i++)for(uint j=0;j<(1u<<(n-1));j++)Dp[i][j]=0;
    for(uint i=0;i<(1u<<(n-1));i++)R[i]=0;
    tp1=tp2=0,dfs(0,0);
    uint s=(1u<<(n-1))-1;uint w=Dp[0][s];printf("%u\n",w+1);Ans.clear(),dfs2(0,0,s,w);if(w)exit(233);
    for(uint i=0;i<n;i++)
    {
        for(uint j=0;j<n;j++)Go[i][j]=-1;
        Go[i][i]=n;std::vector<uint>Q{i};
        while(Q.size())
        {
            uint p=Q.back();Q.pop_back();
            for(auto e:E[p])if(!~Go[i][U[e]^V[e]^p])Q.push_back(U[e]^V[e]^p),Go[i][Q.back()]=e;
        }
    }
    for(auto s:Ans){uint u=From[s],v=To[s],w=S[s];while(u!=v)W[Go[v][u]]=w&1,w>>=1,u^=U[Go[v][u]]^V[Go[v][u]];}
    printf("%u\n",(uint)Ans.size());
    for(uint i=0;i<n;i++)printf("%c%c","10"[!W[i]]," \n"[i==n-1]);
    for(auto s:Ans)printf("%u %u\n",From[s],To[s]);
}
int main()
{
#ifdef MYEE
    freopen("QAQ.in","r",stdin);
    freopen("QAQ.out","w",stdout);
#endif
    uint t;scanf("%u%*u",&t),puts("0");
    while(t--)solve();
    return 0;
}

// 那就是希望。
// 即便需要取模,也是光明。

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 32556kb

input:

1000 0
4
0 2 0
2 3 0
2 1 0
4
3 2 1
0 2 1
1 2 2
4
0 2 2
0 1 0
3 0 0
4
1 2 1
3 2 0
2 0 1
4
0 2 0
0 3 0
2 1 0
4
0 2 1
0 3 1
0 1 1
4
3 1 0
2 1 2
3 0 2
4
3 1 1
3 0 1
2 3 0
4
1 0 0
2 0 2
2 3 2
4
1 2 0
3 0 0
2 3 2
3
2 1 0
0 2 1
4
3 0 1
1 2 1
2 3 0
4
2 1 0
3 0 1
1 0 1
4
3 2 1
3 1 1
0 1 1
4
1 2 1
1 3 0
3 0 1...

output:

0
3
1
0 1 0 0
1 3
4
2
1 1 0 0
0 3
1 2
4
2
1 0 0 0
2 3
0 1
4
2
0 0 1 0
0 1
2 3
4
1
1 1 1 0
1 3
3
1
1 1 0 0
1 3
4
1
1 1 1 0
0 2
4
2
1 1 0 0
0 1
2 3
4
1
1 1 1 0
3 1
4
2
0 0 1 0
3 1
0 3
3
1
1 1 1
0 1
4
1
1 1 1 0
0 1
4
1
1 1 1 0
3 2
4
1
1 1 1 0
0 2
4
1
1 1 1 0
0 2
4
2
1 0 0 0
2 1
0 2
4
1
1 1 1 0
2 1
4
1
...

result:

wrong answer Wrong Answer.

Subtask #2:

score: 0
Wrong Answer

Test #3:

score: 0
Wrong Answer
time: 7ms
memory: 42724kb

input:

3000 3
4
0 1 1
0 3 1
0 2 0
4
3 2 0
0 1 1
1 2 0
4
1 0 0
2 3 1
3 1 0
4
2 1 0
2 0 1
3 0 0
4
2 3 1
3 0 1
2 1 0
4
2 3 1
2 1 1
2 0 1
4
0 2 0
1 0 0
3 0 0
4
3 1 1
0 2 0
2 3 0
6
4 0 0
3 1 1
2 3 0
0 5 1
1 5 0
4
2 3 1
3 0 0
3 1 1
4
0 3 0
1 2 0
0 2 1
4
0 2 1
3 1 0
2 1 1
4
2 0 0
2 3 1
1 3 0
6
3 1 0
3 4 1
4 0 1
2...

output:

0
4
2
1 1 0 0
1 3
0 2
4
1
1 1 1 0
0 3
4
1
1 1 1 0
2 0
4
2
1 0 1 0
2 3
1 2
4
1
1 1 1 0
0 1
3
1
0 1 1 0
0 3
3
1
0 0 1 0
1 3
4
1
1 1 1 0
1 0
6
2
1 1 0 0 1 0
3 4
2 3
4
2
0 0 1 0
1 2
0 3
4
2
0 0 1 0
2 3
1 2
4
1
1 1 1 0
0 3
4
2
1 0 1 0
2 1
0 2
5
1
0 1 1 1 1 0
2 5
4
2
1 1 0 1
1 3
0 2
4
1
1 1 1 1
0 3
3
1
1 ...

result:

wrong answer Wrong Answer.

Subtask #3:

score: 0
Skipped

Dependency #1:

0%

Subtask #4:

score: 0
Skipped

Dependency #2:

0%

Subtask #5:

score: 0
Skipped

Dependency #3:

0%

Subtask #6:

score: 0
Skipped

Dependency #4:

0%

Subtask #7:

score: 0
Wrong Answer

Test #13:

score: 0
Wrong Answer
time: 267ms
memory: 69624kb

input:

3000 1
11
2 5 0
10 2 0
6 2 0
2 8 0
0 2 0
2 1 0
2 4 0
2 9 0
2 3 0
7 2 0
11
7 8 0
6 4 0
1 6 0
2 8 0
8 0 0
6 3 0
9 5 0
5 8 0
1 2 0
9 10 0
8
1 4 0
2 3 0
6 5 0
6 7 0
2 4 0
7 3 0
1 0 0
8
4 0 0
0 5 0
7 2 0
0 2 0
0 6 0
0 1 0
0 3 0
11
5 1 0
7 2 0
9 2 0
4 9 0
0 2 0
8 5 0
0 6 0
3 6 0
4 10 0
1 7 0
7
6 2 0
0 5 0...

output:

0
3
1
0 1 0 0 0 0 0 0 0 0 0
7 10
8
1
0 0 0 1 0 0 1 0 1 1 0
3 10
8
1
1 1 1 1 1 1 1 0
0 5
4
1
0 0 1 0 0 0 0 0
3 7
8
1
1 1 0 1 0 1 0 0 0 1 0
8 10
7
1
1 1 1 1 1 1 0
1 3
5
1
1 1 1 1 1
0 4
7
1
1 1 1 1 1 1 0
2 4
11
1
1 1 1 1 1 1 1 1 1 1 0
5 7
4
1
0 0 0 0 0 1 0 1
2 7
8
1
1 1 1 1 1 1 1 1
5 6
4
1
0 0 0 0 0 0 ...

result:

wrong answer Wrong Answer.

Subtask #8:

score: 0
Wrong Answer

Test #14:

score: 0
Wrong Answer
time: 1158ms
memory: 88840kb

input:

3000 2
8
4 7 2
4 3 2
3 2 2
4 5 2
1 4 2
6 4 2
0 1 2
8
1 5 2
0 7 2
3 2 2
3 1 2
5 7 2
4 0 2
6 4 2
8
1 3 2
5 3 2
7 6 2
2 6 2
0 7 2
4 6 2
0 5 2
8
5 7 2
2 6 2
1 6 2
4 5 2
4 0 2
0 1 2
7 3 2
11
2 7 2
0 9 2
8 9 2
10 7 2
6 9 2
9 3 2
4 10 2
7 5 2
7 9 2
1 9 2
8
2 6 2
1 5 2
4 1 2
1 3 2
6 1 2
0 1 2
6 7 2
14
2 6 2...

output:

0
7
2
0 1 0 1 1 1 0 0
0 2
6 7
8
1
1 1 1 1 1 1 1 0
2 6
8
2
1 1 1 0 0 1 1 0
1 4
2 6
8
1
1 1 1 1 1 1 1 0
2 3
9
4
1 1 1 0 0 0 0 0 1 0 0
4 8
1 9
5 7
3 6
6
2
1 1 1 0 0 0 0 0
0 7
3 5
7
4
1 1 0 0 1 1 0 1 1 0 1 0 0 0
4 13
2 12
9 11
2 10
6
1
1 1 1 1 1 1
0 5
6
2
0 1 1 1 1 0 0
0 6
1 3
10
2
1 1 1 1 1 1 1 0 0 1 1...

result:

wrong answer Wrong Answer.

Subtask #9:

score: 0
Skipped

Dependency #6:

0%

Subtask #10:

score: 0
Skipped

Dependency #5:

0%