NOIP 2012 第一试 模拟题 魔法树 solution

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NOIP 2012 第一试 模拟题 魔法树 solution相关的知识,希望对你有一定的参考价值。

题意

技术分享

技术分享

Solution

压位+前缀和

技术分享
 1 #include <cstdio>
 2 #include <iostream>
 3 #include <cmath>
 4 #include <algorithm>
 5 #define ll int
 6 using namespace std;
 7 const ll mod=100000007;
 8 inline void read(ll &k)
 9 {
10     ll f=1;char c=getchar();k=0;
11     while (c<0||c>9)c==-&&(f=-1),c=getchar();
12     while (c>=0&&c<=9)k=k*10+c-0,c=getchar();
13     k*=f;
14 }
15 const int maxn=1000010;
16 ll n,q,k,aa,bb,cc;
17 ll last[maxn],next[maxn],tot,c[maxn],to[maxn],sum[maxn];long long cost[233];
18 bool v[maxn];
19 void dfs(ll now,ll fa)
20 {
21     v[now]=1;ll cur=last[now];
22     while (cur)
23     {
24         if (!v[to[cur]])
25         {
26             sum[to[cur]]=sum[now]^(1<<(c[cur]-1));
27             dfs(to[cur],now);
28         }
29         cur=next[cur];
30     }    
31 }
32 int main()
33 {
34     freopen("mahou.in","r",stdin);
35     freopen("mahou.out","w",stdout);
36     read(n);read(q);read(k);
37 //    printf("..............qaq%lld%lld%lld\\n",n,q,k);
38     for (int i=1;i<n;i++)
39     {
40         read(aa);read(bb);read(cc);
41         to[++tot]=bb;
42         next[tot]=last[aa];
43         last[aa]=tot;
44         c[tot]=cc;
45         to[++tot]=aa;
46         next[tot]=last[bb];
47         last[bb]=tot;
48         c[tot]=cc;
49     }
50     dfs(1,0);
51     for (int i=1;i<=k;i++)scanf("%lld",&cost[i]);
52     ll pp,qq;
53     for (int i=1;i<=q;i++)
54     {
55         long long ans=1;
56         read(pp);read(qq);
57         ll cur=sum[pp]^sum[qq];
58         for (int j=1;j<=k;j++)
59         if (cur&(1<<(j-1)))ans=(long long)((long long)ans*cost[j])%mod;
60         printf("%lld\\n",ans%mod);
61     }/*
62     for (int i=1;i<=n;i++){printf("%d ",i);
63     for (int j=1;j<=k;j++)
64     printf("%lld ",sum[i][j]);
65     printf("\\n");
66     }*/
67 }
View Code

 

 

以上是关于NOIP 2012 第一试 模拟题 魔法树 solution的主要内容,如果未能解决你的问题,请参考以下文章

洛谷CON1041 NOIP模拟赛一试

魔法使的烟花(NOIP模拟赛Round 7)

入门OJ 4192: [Noip模拟题]黑魔法师之门

NOIp模拟赛免农

noip模拟赛

七中高新 NOIP模拟题 第一题 黄金拼图题解