2018 ICPC 徐州网络赛 K题 Morgana Net

2023-10-28 13:59
文章标签 网络 net 2018 icpc 徐州 morgana

本文主要是介绍2018 ICPC 徐州网络赛 K题 Morgana Net,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题意:

求第迭代t次后的矩阵卷积。

题解:

输入给出两个矩阵An,Bm

建立一个矩阵Cn*n,将矩阵A中的元素以此放到矩阵C的第一行

我们将卷积的过程构造成一个转移矩阵,然后用矩阵快速幂解决

构造方法:

考虑点a,它周围的点a1,a2,a3,a4,a5......要参与卷积的计算中

设点a在矩阵C中位于第y列,点ai在矩阵C中位于第xi列

我们将转移矩阵D的D[xi][y]赋值为点ai需要乘矩阵B中的数

那么C*D^t 的第一行的1的个数就是答案。

 

代码:

#include<bits/stdc++.h>
#define mod 1000000007
#define INF 1e17
#define eps 1e-10
#define pi 3.141592653589793
#define LL unsigned long long
#define pb push_back
#define cl clear
#define si size
#define lb lowwer_bound
#define mem(x) memset(x,0,sizeof x)
#define sc(x) scanf("%d",&x)
#define scc(x,y) scanf("%d%d",&x,&y)
#define sccc(x,y,z) scanf("%d%d%d",&x,&y,&z)
using namespace std;
int n,m;
struct Mx
{bool m[65][65];Mx(){memset(this,0,sizeof(Mx));}friend Mx operator * (Mx& a,Mx&b){Mx c;for(int i=1;i<=n;i++)for (int j=1;j<=n;j++) if (a.m[i][j])for (int k=1;k<=n;k++)c.m[i][k]=c.m[i][k]^(a.m[i][j]&b.m[j][k]);return c;}
}e;Mx qumi(Mx a,int y)
{Mx res=e;while(y){if (y&1) res=res*a;a=a*a;y>>=1;}return res;
}int main()
{int T;sc(T);for (int i=1;i<65;i++) e.m[i][i]=1;while(T--){int N,M,t;Mx a,b,c;sccc(N,M,t);for (int i=1;i<=N;i++)for (int j=1;j<=N;j++){int x;sc(x);a.m[1][(i-1)*N+j]=x&1;}for (int i=1;i<=M;i++)for (int j=1;j<=M;j++){int x;sc(x);b.m[i][j]=x&1;}n=N*N; m=M/2;for (int i=1;i<=N;i++)for (int j=1;j<=N;j++)for (int p=i-m;p<=i+m;p++)for (int q=j-m;q<=j+m;q++){if (p<1 || p>N || q<1 || q>N ) continue;c.m[(p-1)*N+q][(i-1)*N+j]=b.m[p-i+m+1][q-j+m+1];}b=qumi(c,t);b=a*b;int ans=0;for (int i=1;i<=n;i++) if (b.m[1][i]) ans++;printf("%d\n",ans);}return 0;
}

这篇关于2018 ICPC 徐州网络赛 K题 Morgana Net的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/293687

相关文章

C#利用Free Spire.XLS for .NET复制Excel工作表

《C#利用FreeSpire.XLSfor.NET复制Excel工作表》在日常的.NET开发中,我们经常需要操作Excel文件,本文将详细介绍C#如何使用FreeSpire.XLSfor.NET... 目录1. 环境准备2. 核心功能3. android示例代码3.1 在同一工作簿内复制工作表3.2 在不同

Python实现简单封装网络请求的示例详解

《Python实现简单封装网络请求的示例详解》这篇文章主要为大家详细介绍了Python实现简单封装网络请求的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装依赖核心功能说明1. 类与方法概览2.NetHelper类初始化参数3.ApiResponse类属性与方法使用实

在.NET项目中嵌入Python代码的实践指南

《在.NET项目中嵌入Python代码的实践指南》在现代开发中,.NET与Python的协作需求日益增长,从机器学习模型集成到科学计算,从脚本自动化到数据分析,然而,传统的解决方案(如HTTPAPI或... 目录一、CSnakes vs python.NET:为何选择 CSnakes?二、环境准备:从 Py

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

在ASP.NET项目中如何使用C#生成二维码

《在ASP.NET项目中如何使用C#生成二维码》二维码(QRCode)已广泛应用于网址分享,支付链接等场景,本文将以ASP.NET为示例,演示如何实现输入文本/URL,生成二维码,在线显示与下载的完整... 目录创建前端页面(Index.cshtml)后端二维码生成逻辑(Index.cshtml.cs)总结

Go语言网络故障诊断与调试技巧

《Go语言网络故障诊断与调试技巧》在分布式系统和微服务架构的浪潮中,网络编程成为系统性能和可靠性的核心支柱,从高并发的API服务到实时通信应用,网络的稳定性直接影响用户体验,本文面向熟悉Go基本语法和... 目录1. 引言2. Go 语言网络编程的优势与特色2.1 简洁高效的标准库2.2 强大的并发模型2.

解决hive启动时java.net.ConnectException:拒绝连接的问题

《解决hive启动时java.net.ConnectException:拒绝连接的问题》Hadoop集群连接被拒,需检查集群是否启动、关闭防火墙/SELinux、确认安全模式退出,若问题仍存,查看日志... 目录错误发生原因解决方式1.关闭防火墙2.关闭selinux3.启动集群4.检查集群是否正常启动5.