2023年ICPC亚洲济南地区赛 G. Gifts from Knowledge

题目

思路:

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define fi first
#define se second
#define lson p << 1
#define rson p << 1 | 1
const int maxn = 1e6 + 5, inf = 1e18, maxm = 4e4 + 5, base = 37;
const int N = 1e6;const int mod = 1e9 + 7;
// const int mod = 998244353;
//const __int128 mod = 212370440130137957LL;
//  int a[1005][1005];
// bool vis[505][505];
// char s[2005][2005];
int n, m;
int a[maxn];// string s;struct Node{// int val, id;// bool operator<(const Node &u)const{//     return val < u.val;//!!!!!!!!!!!!!!!!!!// }int v, w;
};struct DSU{vector<int> fa;DSU(int n) : fa(n) {for(int i = 0; i < n; i++){fa[i] = i;}} int find(int x){if(x == fa[x]) return x;return fa[x] = find(fa[x]);}void merge(int x, int y){if(find(x) != find(y)){fa[find(x)] = find(y);}}
}; //long long ? maxn ? n? m?
void solve(){int res = 0;cin >> n >> m;vector<vector<int>> a(n + 5, vector<int>(m + 5));for(int i = 1; i <= n; i++){for(int j = 1; j <= m; j++){char ch;cin >> ch;a[i][j] = ch - '0';}}DSU d(2 * n + 5);for(int j = 1; j <= m / 2; j++){vector<int> vec[2];for(int i = 1; i <= n; i++){if(a[i][j]){vec[0].pb(i);}if(a[i][m - j + 1]){vec[1].pb(i);}}if(vec[0].size() + vec[1].size() >= 3){cout << 0 << '\n';return;}for(int x = 0; x < 2; x++){for(int y = 0; y < vec[x].size(); y++){for(int z = y + 1; z < vec[x].size(); z++){int u = vec[x][y], v = vec[x][z];d.merge(u + n, v);d.merge(u, v + n);}}}if(vec[0].size() && vec[1].size()){int u = vec[0][0], v = vec[1][0];d.merge(u, v);d.merge(u + n, v + n);}}if(m % 2 == 1){int j = (m + 1) / 2;vector<int> vec;for(int i = 1; i <= n; i++){if(a[i][j]){vec.pb(i);}}if(vec.size() >= 2){cout << 0 << '\n';return;}}for(int i = 1; i <= n; i++){if(d.find(i) == d.find(i + n)){cout << 0 << '\n';return;}}int cnt = 0;for(int i = 1; i <= 2 * n; i++){if(d.find(i) == i) cnt++;}cnt /= 2;res = 1;for(int i = 1; i <= cnt; i++){res = res * 2 % mod;}cout << res << '\n';
}   signed main(){ios::sync_with_stdio(0);cin.tie(0);cout << fixed << setprecision(9);int T = 1;cin >> T;while (T--){solve();}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/681372.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【随笔】Git 高级篇 -- 上传命令的参数 (上)git push(三十六)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

飞天使-k8s知识点31-rancher的正确打开方式

文章目录 安装之前优化一下内核参数以及系统内核版本 rancher安装主要是使用以下命令nginx的配置为解决办法 安装之前优化一下内核参数以及系统内核版本 内核版本 4.17 cat > /etc/modules-load.d/iptables.conf <<EOF ip_tables iptable_filter EOF 然后重启服务器…

释放创造力,低成本实现您的梦想应用 —— 尽在我们的开源低代码平台!

在数字化时代&#xff0c;每个企业都渴望拥有自己的专属应用&#xff0c;但传统开发模式的高成本和技术壁垒让许多梦想搁浅。现在&#xff0c;我们为您带来了革命性的解决方案 —— 一个开源、免费、且功能强大的低代码开发平台&#xff01; 为什么选择我们的低代码平台&#…

游戏工作室如何利用惯性动作捕捉技术制作动画?

随着动捕设备不断进步和游戏行业的发展&#xff0c;惯性动作捕捉技术在游戏开发领域逐渐普及。惯性动作捕捉技术&#xff0c;可以精准捕捉现实世界中的真人动作&#xff0c;并将其精准应用于虚拟角色上&#xff0c;使游戏中的角色动作可以呈现出更写实、逼真和沉浸感&#xff0…

Power BI 可以取代 Excel 吗?

首先说明&#xff0c;Power BI并不能完全取代Excel。 Power BI和Excel虽然都是Microsoft推出的数据工具&#xff0c;但他们的设计目标并不相同&#xff0c;因此它们在数据分析和处理方面各自有独特的优势。两者更多是互补关系。 在做报表可视化方面Power BI确实优势明显&…

使用Vue连接Mqtt实现主题的订阅及消息发布

效果如下&#xff1a; 直接贴代码&#xff0c;本地创建一个html文件将以下内容贴入即可 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, …

【最大公约 调和级数 并集查找】2709. 最大公约数遍历

涉及知识点 最大公约 调和级数 并集查找&#xff08;并差集) 质数、最大公约数、菲蜀定理 LeetCode 2709. 最大公约数遍历 给你一个下标从 0 开始的整数数组 nums &#xff0c;你可以在一些下标之间遍历。对于两个下标 i 和 j&#xff08;i ! j&#xff09;&#xff0c;当且…

社区停车道闸系统价格一套多少?停车道闸系统十大品牌是哪些?

一、什么是停车道闸系统&#xff1f; 停车道闸系统是利用现代科学技术手段&#xff0c;对进出特定区域的车辆进行自动识别、控制和管理的系统。通常包含车牌识别、聚合收费、自动升降杆、车位引导等功能&#xff0c;可以有效提高车辆通行的安全性和管理效率。停车道闸系统广泛…

【Elasticsearch<五>末篇 ✈️✈️】结合 kibana 实现索引中 IP 地址分布地图可视化

目录 &#x1f44b;前言 &#x1f440;一、ES 地理位置基本了解 &#x1f331;二、IP 地址地图可视化 2.1 创建预处理通道 2.2 创建索引库 2.3 插入一条数据 2.4 观察写入后的数据 2.5 可视化展示 &#x1f604;三、章末 &#x1f44b;前言 继前面了解 Elasticsearch 的安…

向量数据库:PGVector

一、PGVector 介绍 PGVector 是一个基于 PostgreSQL 的扩展插件&#xff0c;为用户提供了一套强大的向量存储和查询的功能&#xff1a; 精确和近似最近邻搜索单精度&#xff08;Single-precision&#xff09;、半精度&#xff08;Half-precision&#xff09;、二进制&#xff…

鸿蒙内核源码分析(环境脚本篇) | 编译鸿蒙原来如此简单

很香的 Docker 如果只是为了编译鸿蒙,初级的接触鸿蒙,docker是很香的,从第一次接触docker就对它爱不释手, 脏活累活它干了,少了太多的麻烦. docker 编译鸿蒙看编译环境篇就行了, L1 和 L2 都编译通过了.如果要深入的了解鸿蒙,比如调试鸿蒙的代码或编译工具,就需要另辟蹊径了. …

PowerShell ⇒ Excel 批量创建Excel

New-Object -ComObject Excel.Application&#xff1a;创建Excel对象[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null 用来显式释放 Excel COM 对象的资源&#xff0c;以确保在脚本执行完成后&#xff0c;释放 Excel 进程和相关资源&#xff0…