当前位置: 首页 > news >正文

C++ 数论相关题目:高斯消元解异或线性方程组

输入一个包含 n
个方程 n
个未知数的异或线性方程组。

方程组中的系数和常数为 0
或 1
,每个未知数的取值也为 0
或 1

求解这个方程组。

异或线性方程组示例如下:

M[1][1]x[1] ^ M[1][2]x[2] ^ … ^ M[1][n]x[n] = B[1]
M[2][1]x[1] ^ M[2][2]x[2] ^ … ^ M[2][n]x[n] = B[2]

M[n][1]x[1] ^ M[n][2]x[2] ^ … ^ M[n][n]x[n] = B[n]
其中 ^ 表示异或(XOR
),M[i][j]
表示第 i
个式子中 x[j]
的系数,B[i]
是第 i
个方程右端的常数,取值均为 0
或 1

输入格式
第一行包含整数 n

接下来 n
行,每行包含 n+1
个整数 0
或 1
,表示一个方程的 n
个系数以及等号右侧的常数。

输出格式
如果给定线性方程组存在唯一解,则输出共 n
行,其中第 i
行输出第 i
个未知数的解。

如果给定线性方程组存在多组解,则输出 Multiple sets of solutions。

如果给定线性方程组无解,则输出 No solution。

数据范围
1≤n≤100
输入样例:
3
1 1 0 1
0 1 1 0
1 0 0 1
输出样例:
1
0
0
在这里插入图片描述

#include <iostream>
#include <algorithm>using namespace std;const int N = 110;int n;
int a[N][N];int xor_gauss()
{int c, r;for(c = 0, r = 0; c < n; c ++ ){int t = r;for(int i = r; i < n; i ++ )if(a[i][c]) //找到第一个非零行就行{t = i;break;}if(!a[t][c]) //往下找完发现并不存在一个非零的,这列就结束了continue;for(int i = c; i <= n; i ++ ) swap(a[t][i], a[r][i]);for(int i = r + 1; i < n; i ++ )if(a[i][c]) //如果不为0,才消去for(int j = n; j >= c; j -- )a[i][j] = a[i][j] ^ a[r][j];r ++;          }if(r < n){for(int i = r; i < n; i ++ ) //判断是否有矛盾,现在i行左边是全部为0的,右边不为0,出现矛盾if(a[i][n])return 0; //无解return 2; // 无穷组解}for(int i = n - 1; i >= 0; i -- ) //回带求解for(int j = i + 1; j < n; j ++ )a[i][n] = a[i][n] ^ a[i][j] & a[j][n]; //a[j][n] 此时就是xj的值return 1; //唯一解
}int main ()
{cin>>n;for(int i = 0; i < n; i ++ )for(int j = 0; j <= n; j ++ )cin>>a[i][j];int res = xor_gauss();if(res == 1) for(int i = 0; i < n; i ++ )cout<<a[i][n]<<endl;else if(res == 2)cout<<"Multiple sets of solutions"<<endl;elsecout<<"No solution"<<endl;return 0;}

相关文章:

C++ 数论相关题目:高斯消元解异或线性方程组

输入一个包含 n 个方程 n 个未知数的异或线性方程组。 方程组中的系数和常数为 0 或 1 &#xff0c;每个未知数的取值也为 0 或 1 。 求解这个方程组。 异或线性方程组示例如下&#xff1a; M[1][1]x[1] ^ M[1][2]x[2] ^ … ^ M[1][n]x[n] B[1] M[2][1]x[1] ^ M[2][2]x[2]…...

嵌入式学习第十四天

1.结构体&#xff08;2&#xff09;: &#xff08;1&#xff09;结构体类型定义 &#xff08;2&#xff09;结构体变量的定义 &#xff08;3&#xff09;结构体元素的访问 &#xff08;4&#xff09;结构体的存储: 内存对齐: char 按照1字节对齐 …...

氢气泄漏检测仪使用方法:守护安全,从细节开始

随着科技的发展&#xff0c;我们的生活和工作环境中充满了各种潜在的危险。其中&#xff0c;氢气作为一种清洁能源&#xff0c;其使用日益广泛&#xff0c;但同时也带来了泄漏的风险。为了确保我们的安全&#xff0c;了解并正确使用氢气泄漏检测仪至关重要。下面将详细介绍氢气…...

【前端web入门第二天】01 html语法实现列表与表格_合并单元格

html语法实现列表与表格 文章目录: 1.列表 1.1 无序列表1.2 有序列表1.3 定义列表 2.表格 2.1 表格基本结构2.2 表格结构标签2.3 合并单元格 写在最前,第二天学习目标: 列表 表格 表单 元素为嵌套关系 1.列表 作用:布局内容排列整齐的区域。 列表分类:无序列表、有序列表…...

推荐系统|排序_MMOE

MMOE MMOE是指Multi-gate Mixture-of-Experts 注意看Expert后面加了s&#xff0c;说明了有多个专家。 而在MMOE中专家是指用来对输入特征计算的神经网络&#xff0c;每个神经网络根据输入计算出来的向量都会有所不同。 MMOE的低层 MMOE的上一层 通过MMOE的低层算出的向量和权…...

Redis拒绝连接的原因与解决方式

Redis拒绝连接的原因与解决方式 在某些情况下&#xff0c;当尝试从外部计算机连接到运行在保护模式下的Redis服务器时&#xff0c;您可能会遇到如下的错误信息&#xff1a; Caused by: org.redisson.client.RedisException: DENIED Redis is running in protected mode becau…...

Neo4j在java中的使用

1.Neo4j访问的两种方式 嵌入式数据库服务器模式(通过REST的访问) 它是由应用程序的性质&#xff08;neo4j是独立服务器 还是和程序在一起),性能&#xff0c;监控和数据安全性来决定架构选择。 An embedded database&#xff08;嵌入式数据库&#xff09; 嵌入式Neo4j数据库…...

故障诊断 | 一文解决,CNN卷积神经网络故障诊断(Matlab)

文章目录 效果一览文章概述专栏介绍源码设计参考资料效果一览 文章概述 故障诊断 | 一文解决,CNN卷积神经网络故障诊断(Matlab) 专栏介绍 订阅【故障诊断】专栏,不定期更新机器学习和深度学习在故障诊断中的应用;订阅...

uniapp-app使用富文本编辑器editor

使用的是uniapp内置组件的表单组件editor&#xff1a;editor 组件 | uni-app官网 (dcloud.net.cn) editor 组件对应的 editorContext 实例&#xff1a;editorContext | uni-app官网 (dcloud.net.cn) 文档上写的也不是特别详细&#xff0c;还以为得npm&#xff0c;但没npm也能用…...

20240131 大模型快讯

//社区生态// 国内首个音视频多媒体大模型万兴“天幕”正式发布。万兴科技发布国内首个音视频多媒体大模型万兴“天幕”&#xff0c;支持多种语言&#xff0c;实现音视频创作闭环。 //行业落地// 全球首款搭载AI大模型的MPV智能座舱发布。江淮全新MPV瑞风RF8上市发布&#xf…...

MySQL原理(二)存储引擎(2)MyISAM

一、MyISAM介绍 1、介绍&#xff1a; MyISAM引擎是MySQL5.5版本之前的数据库所默认的数据表引擎。每一个采用MyISAM引擎的数据表在实际存储中都是由三个文件组成&#xff0c;分别是frm文件保存表的结构&#xff0c;MYD文件保存表的数据、MYI文件保存表的索引&#xff0c;文件…...

P1088 [NOIP2004 普及组] 火星人题解

题目 人类终于登上了火星的土地并且见到了神秘的火星人。人类和火星人都无法理解对方的语言&#xff0c;但是我们的科学家发明了一种用数字交流的方法。这种交流方法是这样的&#xff0c;首先&#xff0c;火星人把一个非常大的数字告诉人类科学家&#xff0c;科学家破解这个数…...

Python面向对象编程:探索代码的结构之美

文章目录 一、引言二、为什么学习面向对象编程2.1 提高代码的可维护性&#xff1a;通过封装、继承和多态实现模块化设计2.2 提升代码的复用性&#xff1a;通过类和对象的创建实现代码的重用 三、类和对象的基本概念3.1 类和对象的定义和关系&#xff1a;类是对象的模板&#xf…...

Java基于SpringBoot+Vue的电影影城管理系统,附源码,文档

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…...

【学网攻】 第(14)节 -- 动态路由(EIGRP)

系列文章目录 目录 系列文章目录 文章目录 前言 一、动态路由EIGRP是什么&#xff1f; 二、实验 1.引入 实验步骤 实验拓扑图 实验配置 看到D开头是便是我们的EIGRP动态路由 总结 文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交换机认识及使用【学…...

【Linux】多线程(线程概念+线程控制)

&#x1f307;个人主页&#xff1a;平凡的小苏 &#x1f4da;学习格言&#xff1a;命运给你一个低的起点&#xff0c;是想看你精彩的翻盘&#xff0c;而不是让你自甘堕落&#xff0c;脚下的路虽然难走&#xff0c;但我还能走&#xff0c;比起向阳而生&#xff0c;我更想尝试逆风…...

【昕宝爸爸小模块】深入浅出详解之常见的语法糖

深入浅出详解之常见的语法糖 一、&#x1f7e2;关于语法糖的典型解析二、&#x1f7e2;如何解语法糖&#xff1f;2.1&#x1f7e2;糖块一、switch 支持 String 与枚举2.2&#x1f4d9;糖块二、泛型2.3&#x1f4dd;糖块三、自动装箱与拆箱2.4&#x1f341;糖块四、方法变长参数…...

低代码

腾讯云微搭低代码 WeDa _低代码开发平台_可视化开发平台-腾讯云 首页 - 钉钉宜搭 快速上手多维表格 爱速搭 - 企业应用智能设计平台 | 低代码平台 - 百度智能云 Astro轻应用 Astro Zero_低代码开发平台_软件开发工具_应用开发工具_华为云 低代码是一种软件开发方法&#x…...

2024/1/30 备战蓝桥杯 3-1 栈

目录 小鱼的数字游戏 P1427 小鱼的数字游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 表达式括号匹配 P1739 表达式括号匹配 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 【模板】栈 B3614 【模板】栈 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 小鱼的数字…...

qt setStyleSheet 设置多个属性{}之间用空格间隔

setStyleSheet 设置多个属性时&#xff0c;大属性之间不能用分号&#xff0c;用 空格进行间隔 pbtn1->setStyleSheet("QPushButton {background-color: rgb(4,138,224);font: bold 12pt;color: rgb(255,255,255);} QPushButton:hover,QPushButton:pushed {background-…...

百度网盘直链解析:告别限速的Python神器实战指南

百度网盘直链解析&#xff1a;告别限速的Python神器实战指南 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 你是否曾经面对百度网盘几十KB的下载速度感到绝望&#xff1f;当你…...

SPT-AKI存档编辑器终极指南:掌握《逃离塔科夫》单机版修改技巧

SPT-AKI存档编辑器终极指南&#xff1a;掌握《逃离塔科夫》单机版修改技巧 【免费下载链接】SPT-AKI-Profile-Editor Программа для редактирования профиля игрока на сервере SPT-AKI 项目地址: https://gitcode.com/gh_m…...

DLSS Swapper完整指南:3步解锁游戏性能的隐藏潜力

DLSS Swapper完整指南&#xff1a;3步解锁游戏性能的隐藏潜力 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 你是否曾在《赛博朋克2077》中感受过帧率骤降的挫败感&#xff1f;或者看着《控制》中的光线追踪效果&…...

告别环境配置焦虑:用 Bochs 2.6.10 在 Ubuntu 上快速搭建你的第一个‘自制操作系统’实验台

从零构建操作系统实验环境&#xff1a;Bochs 2.6.10在Ubuntu下的实战指南当我在大学第一次尝试编写引导扇区代码时&#xff0c;花了整整三天时间才让屏幕上显示出"Hello World"。这段经历让我深刻意识到&#xff1a;环境配置的复杂度往往比算法本身更令人崩溃。本文将…...

中国车牌生成器:5分钟快速创建逼真车牌图像的终极指南

中国车牌生成器&#xff1a;5分钟快速创建逼真车牌图像的终极指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 在计算机视觉和AI识别系统开发中&#xff0c;获取高…...

以下是 MaxWell 工业上位机项目的最终完整补充

以下是 MaxWell 工业上位机项目的最终完整补充&#xff1a;1. Region 管理面板&#xff08;Region Management Panel&#xff09; 这是一个用于运行时监控和管理 Region 的调试/管理界面&#xff0c;适合工业项目开发和维护阶段使用。 RegionManagementView.xaml <!-- Views…...

BetterGI原神自动化工具:5分钟快速上手指南,解放你的游戏时间

BetterGI原神自动化工具&#xff1a;5分钟快速上手指南&#xff0c;解放你的游戏时间 【免费下载链接】better-genshin-impact &#x1f4e6;BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条…...

猫抓浏览器扩展:如何高效捕获并下载网页媒体资源的终极指南

猫抓浏览器扩展&#xff1a;如何高效捕获并下载网页媒体资源的终极指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 在当今以流媒体为主导的互联…...

终极指南:如何用WeChatIntercept实现macOS微信防撤回功能

终极指南&#xff1a;如何用WeChatIntercept实现macOS微信防撤回功能 【免费下载链接】WeChatIntercept 微信防撤回插件&#xff0c;一键安装&#xff0c;仅MAC可用&#xff0c;支持v3.7.0微信 项目地址: https://gitcode.com/gh_mirrors/we/WeChatIntercept 还在为微信…...

纤维丛与连接:从微分几何到量子控制与最优控制的桥梁

1. 纤维丛与连接&#xff1a;从抽象几何到物理与控制的桥梁在微分几何的世界里&#xff0c;纤维丛是一个强大而优雅的框架&#xff0c;它允许我们在一个复杂的“总空间”上&#xff0c;为底流形上的每一点都“安装”一个额外的结构&#xff0c;比如一个向量空间、一个李群&…...