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

CCF-CSP认证 2024年3月 4.化学方程式配平

题解:首先完成数据的读入,然后高斯消元求秩按题意解即可

#pragma GCC optimize(2, 3, "Ofast", "inline")
#include <bits/stdc++.h>
using namespace std;
const int maxn = 100;using matrix = double[maxn][maxn];
using vect = array<double, maxn>;const double eps = 1e-8;
int row[maxn], var[maxn];
int one_possible(matrix A, int n, int m, vect &ans)
{memset(row, -1, sizeof(row));int r = 0;for (int c = 0; c < m && r < n; ++c){int x = r;for (int i = x + 1; i < n; ++i)if (fabs(A[i][c]) > fabs(A[x][c]))x = i;if (x != r)for (int j = 0; j <= m; ++j)swap(A[x][j], A[r][j]);if (fabs(A[r][c]) < eps)continue;for (int k = r + 1; k < n; ++k)for (int j = m; j >= c; --j)A[k][j] -= A[k][c] / A[r][c] * A[r][j];row[c] = r++;}for (int i = r; i < n; ++i)if (fabs(A[i][m]) > eps)return -1;for (int c = m - 1; c >= 0; --c){int x = row[c];if (x < 0)ans[c] = 0;else{for (int i = x - 1; i >= 0; --i)A[i][m] -= A[i][c] / A[x][c] * A[x][m];ans[c] = A[x][m] / A[x][c];}}return r;
}
unordered_map<string,int> Yuansu;
int cnt=0;
void work_in(matrix &M,string s,int index)
{string yuansu="";double num=0;for(int i=0;i<s.size();){while(isalpha(s[i])){// cout<<s[i]<<endl;yuansu+=s[i];i++;}while(isdigit(s[i])){num=num*10+(s[i]-'0');i++;}if(Yuansu.find(yuansu)==Yuansu.end()){Yuansu[yuansu]=cnt++;}// M[Yuansu[yuansu]][0]=1;M[Yuansu[yuansu]][index]=num;// cout<<yuansu<<": "<<Yuansu[yuansu]<<" :"<<num<<endl;num=0;yuansu="";}// print_M(M,cnt,m);
}
void print_M(matrix M,int n,int m)
{for(int i=0;i<n;i++){for(int j=0;j<=m;j++){cout<<M[i][j]<<" ";}cout<<endl;}
}
void work()
{int q;cin>>q;while(q--){matrix M={0};cnt=0;Yuansu.clear();int m;cin>>m;string s1;for(int j=0;j<m;j++){cin>>s1;work_in(M,s1,j);}for(int j=0;j<cnt;j++){M[j][m]=0;}// print_M(M,cnt,m);vect ans;int r=one_possible(M,cnt,m,ans);if(r==-1){cout<<"N"<<endl;continue;}if(m-r>0){cout<<"Y"<<endl;}else{cout<<"N"<<endl;}// cout<<"r,m:"<<r<<" "<<m<<endl;}
}
int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);work();return 0;
}

相关文章:

  • SpringBootWeb 篇-深入了解 Mybatis 概念、数据库连接池、环境配置和 Lombok 工具包
  • SQL、Mongo、Redis一般适用于那些场景
  • 【GO基础】1. Go语言环境搭建
  • Kafka之【生产消息】
  • 虹科案例丨VLAN不再难懂:一台转换器+交换机轻松解锁VLAN配置
  • VUE-watch和watchEffect的区别
  • 景源畅信数字:抖音小店新手该怎么做?
  • 修改MySQL root用户密码
  • Threes 特效 炫酷传送门HTML5动画特效
  • 信息系统项目管理师--八大绩效域-规划绩效域
  • 前端生成二维码
  • 微软语音使用小计
  • C#编程-.NET Framework使用工具类简化对象之间的属性复制和操作
  • markdown 文件渲染工具推荐 obsidian publish
  • PMP 学习笔记(增量更新中)
  • echarts的各种常用效果展示
  • ES6之路之模块详解
  • ReactNativeweexDeviceOne对比
  • Redis 懒删除(lazy free)简史
  • Sass Day-01
  • 工作手记之html2canvas使用概述
  • 跨域
  • 使用 @font-face
  • 算法---两个栈实现一个队列
  • 网页视频流m3u8/ts视频下载
  • 写给高年级小学生看的《Bash 指南》
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (2015)JS ES6 必知的十个 特性
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (创新)基于VMD-CNN-BiLSTM的电力负荷预测—代码+数据
  • (二)丶RabbitMQ的六大核心
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (附源码)ssm码农论坛 毕业设计 231126
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)平衡树
  • (转)原始图像数据和PDF中的图像数据
  • .gitignore文件—git忽略文件
  • .net CHARTING图表控件下载地址
  • .net core 的缓存方案
  • ::
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • [ASP.NET 控件实作 Day7] 设定工具箱的控件图标
  • [C#]winform使用onnxruntime部署LYT-Net轻量级低光图像增强算法
  • [CF226E]Noble Knight's Path
  • [FTP]pureftp部署和优化
  • [Godot] 3D拾取
  • [hive] sql中distinct的用法和注意事项
  • [leetcode] 61. 旋转链表
  • [Linux]使用CentOS镜像与rpm来安装虚拟机软件
  • [MySQL FAQ]系列 -- 账号密码包含反斜线时怎么办
  • [Python]pyenv 环境配置
  • [SWPUCTF 2021 新生赛]fakerandom
  • [vscode] 1. 在编辑器的标签页下显示文件目录(标签页显示面包屑) 2. 在标题栏上显示当前文件的完整路径
  • [编程技巧] C++中优化BOOL 变量的声明