题目


分析

考虑一个点的权值能被统计到答案当且仅当其到1号点的路径条数为奇数条。

那么设 \(dp[i][x][y]\) 表示从 \(x\) 到 \(y\) 走 \(i\) 步路径条数的奇偶性,

这个可以用矩阵乘法加速,多组询问直接二进制拆分预处理出来即可。

大概就是 \(C[x][y]\) 对所有的 \(A[x][z]*B[z][y]\) 取异或


代码

#include <cstdio>
#include <cctype>
using namespace std;
const int N=100;
typedef unsigned uit;
struct maix{
bool p[N][N];
}A[32],ANS;
uit a[N]; int n,m,Q;
uit iut(){
uit ans=0; char c=getchar();
while (!isdigit(c)) c=getchar();
while (isdigit(c)) ans=ans*10+c-48,c=getchar();
return ans;
}
void print(uit ans){
if (ans>9) print(ans/10);
putchar(ans%10+48);
}
maix mul(maix A,maix B,int t){
maix C;
for (int i=0;i<t;++i)
for (int j=0;j<n;++j){
C.p[i][j]=0;
for (int k=0;k<n;++k)
C.p[i][j]|=A.p[i][k]&B.p[k][j];
}
return C;
}
int main(){
n=iut(),m=iut(),Q=iut();
for (int i=0;i<n;++i) a[i]=iut();
for (int i=1;i<=m;++i){
int x=iut()-1,y=iut()-1;
A[0].p[x][y]=A[0].p[y][x]=1;
}
for (int i=1;i<32;++i) A[i]=mul(A[i-1],A[i-1],n);
for (int i=1;i<=Q;++i){
uit x=iut(),ans=0; ANS.p[0][0]=1;
for (int j=1;j<n;++j) ANS.p[0][j]=0;
for (int j=31;~j;--j)
if ((x>>j)&1) ANS=mul(ANS,A[j],1);
for (int j=0;j<n;++j) if (ANS.p[0][j]) ans^=a[j];
print(ans),putchar(10);
}
return 0;
}

#二进制拆分,矩阵乘法#洛谷 6569 [NOI Online #3 提高组] 魔法值的更多相关文章

  1. 洛谷 P6570 - [NOI Online #3 提高组] 优秀子序列(集合幂级数+多项式)

    洛谷题面传送门 首先 \(3^n\) 的做法就不多说了,相信对于会状压 dp+会枚举子集的同学来说不算困难(暴论),因此这篇博客将着重讲解 \(2^nn^2\) 的做法. 首先如果我们把每个 \(a_ ...

  2. 洛谷 P6478 - [NOI Online #2 提高组] 游戏(二项式反演+树形 dp)

    题面传送门 没错这就是我 boom0 的那场 NOIOL 的 T3 一年前,我在 NOIOL #2 的赛场上折戟沉沙,一年后,我从倒下的地方爬起. 我成功了,我不再是从前那个我了 我们首先假设 A 拥 ...

  3. 洛谷P1003 铺地毯 noip2011提高组day1T1

    洛谷P1003 铺地毯 noip2011提高组day1T1 洛谷原题 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n ...

  4. 洛谷-神奇的幻方-NOIP2015提高组复赛

    题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,--,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. ...

  5. 洛谷 P6189 - [NOI Online #1 入门组]跑步(根号分治+背包)

    题面传送门 题意: 求有多少个数列 \(x\) 满足: \(\sum x_i=n\) \(x_i\geq x_{i+1}\) 答案对 \(p\) 取模. ...你确定这叫"入门"组 ...

  6. 洛谷-火柴棒等式-NOIP2008提高组复赛

    题目描述 Description 给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A.B.C是用火柴棍拼出的整数(若该数非零,则最高位不能是0).用火柴棍拼数字0-9的拼法如图所示: ...

  7. 洛谷-笨小猴-NOIP2008提高组复赛

    题目描述 Description 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼.但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法的具体描述如下:假设m ...

  8. 洛谷-生活大爆炸版石头剪刀布-NOIP2014提高组复赛

     题目描述 Description 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一样,则不分胜负.在<生活大爆炸>第二季第8 集中出现了一种石头剪刀布的升级版 ...

  9. 洛谷 P2680 运输计划(NOIP2015提高组)(BZOJ4326)

    题目背景 公元 \(2044\) 年,人类进入了宇宙纪元. 题目描述 公元\(2044\) 年,人类进入了宇宙纪元. L 国有 \(n\) 个星球,还有 \(n-1\) 条双向航道,每条航道建立在两个 ...

  10. 洛谷【P3952】NOIP2017提高组Day1T2时间复杂度

    我对模拟的理解:http://www.cnblogs.com/AKMer/p/9064018.html 题目传送门:https://www.luogu.org/problemnew/show/P395 ...

随机推荐

  1. Taurus.MVC WebMVC 入门开发教程1:框架下载环境配置与运行

    前言: 之前有网友说 Mvc系列的教程对新手不友好,因此补充新手入门系列教程. 在开始使用 Taurus.Mvc 进行 Web应用开发之前,建议可以观摩一下之前的文章:WebAPI 系列教程 因为两者 ...

  2. toml格式配置文件介绍

    toml官方wik toml官方文档 此次文档是以v1.0.0为例,进行说明的.如果使用到的版本不同,直接去官方文档中找对应的版本即可. 谈到配置文件,大家都能说出来好几种,比如常见的ini.xml. ...

  3. 【Azure 环境】中国区Azure是否可以根据资源组的模板,生成一个可视化的架构图呢?

    问题描述 这是一个国际版链接(https://docs.microsoft.com/en-us/answers/questions/370410/how-to-generate-architectur ...

  4. 【Azure 媒体服务】在Azure Media Service门户中使用HLS模式传输视频流,播放视频步骤

    问题描述 如何在Azure Media Service门户中使用HLS模式传输视频流,播放视频步骤 问题解决 第一步:在 Media Service 这边点击资产.上传本地视频资源作为Media Se ...

  5. nginx rewrite 语法

    nginx rewrite 语法 一 定义 Rewrite主要实现url地址重写, 以及地址重定向,就是将用户请求web服 务器的地址重新定向到其他URL的过程. 二 语法格式 reweite fia ...

  6. npm-links - 查看项目依赖包 - vscode 插件

    npm-links 依赖包相关快捷链接

  7. vscode 翻译插件推荐 Easy Translator,只因为有音标,和位置好

    vscode 翻译插件推荐 Easy Translator,只因为有音标,和位置好

  8. 已安装docker-compose,安装harbor时还是提示docker-compose未安装或者Permission denied的解决方案

    安装Harbor时,下载安装了docker-compose并赋予权限 sudo curl -L "https://github.com/docker/compose/releases/dow ...

  9. Web Audio API 第1章 基础篇

    Web Audio API 第1章 基础篇 我查了一下 Web Audio API 蝙蝠书居然在 2013 年就出版了 我又看了一下我的"豆瓣读书"频道内,这本书加入到" ...

  10. [原创] KCP 源码分析(上)

    KCP 协议是一种可靠的传输协议,对比 TCP 取消了累计确认(延迟 ACK).减小 RTO增长速度.选择性重传而非全部重传.通过用流量换取低时延. KCP 中最重要的两个数据结构IKCPCB和IKC ...