首页 > 其他分享 >CCF-CSP认证 2024年3月 4.化学方程式配平

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

时间:2024-05-24 21:27:31浏览次数:22  
标签:matrix int 2024 ++ maxn 配平 -- CCF row

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

#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;
}

标签:matrix,int,2024,++,maxn,配平,--,CCF,row
From: https://blog.csdn.net/zzylalalala/article/details/139184909

相关文章

  • 【专题】2024体验赋能企业出海白皮书报告合集PDF分享(附原数据表)
    原文链接:https://tecdat.cn/?p=36251原文出处:拓端数据部落公众号在全球化浪潮日益汹涌的商业环境中,出海企业正面临着前所未有的机遇与严峻挑战。面对产品和服务日益同质化的问题,企业如何在国际市场上独树一帜?答案并非仅仅依赖于创新和成本控制。如今,以“体验+品牌”为核心的战......
  • 【专题】2024抖音春日热点报告-餐饮篇报告合集PDF分享(附原数据表)
    原文链接:https://tecdat.cn/?p=35422原文出处:拓端数据部落公众号2023年,中国经济表现稳健,零售消费稳定增长,尤其国内旅游市场迅速回暖,人们出行频率回升,酒店、餐饮和旅游服务的消费需求稳步攀升,为相关行业复苏提供了强大动力。据文化和旅游部数据显示,全年国内旅游总人次和收入均实......
  • Camtasia Studio2024神器级别的电脑录屏编辑软件
    在数字化时代的今天,视频已经成为了人们获取信息和交流的重要方式。而在这个过程中,屏幕录制和视频编辑软件的作用不可忽视。CamtasiaStudio2024就是一款功能强大的屏幕录制和视频编辑软件,它可以帮助用户轻松地创建专业级别的视频内容。我们来了解一下什么是屏幕录制。屏幕录......
  • 2024“中国电机工程学会杯”数学建模大赛A题思路和代码分享
    A题:园区微电网风光储协调优化配置        这个题目整体就是一个优化问题,可以采用Matlab+Yalmip+Gurobi求解器进行求解,持续更新中,敬请关注!!        园区微电网由风光发电和主电网联合为负荷供电,为了尽量提高风光电量的负荷占比,需配置较高比例的风光发电装机......
  • 2024年旗舰手机和中端机的区别
    两款手机都是o家的findx7ultra二手的16+256g4500元realmeneo6se全新16+256g2150元(使用一个月降价400元)先说结论哇,体验已经很接近了,cpu性能瓶颈,对于日常使用来说已经区别不大最大的区别在以下几个方面:旗舰优点:拍照:不用说了,看看findx7硕大的摄像模组都知道,用真我的拍照......
  • 前端发展历史与未来展望(2024)
    前端开发技术的发展可以分为以下几个阶段:一.农业时代静态页面:最早期的Web界面,主要使用HTML和少量JavaScript。带有简单逻辑的界面:引入了JavaScript用于基本的客户端操作。混合编程:结合服务端技术(如CGI、ASP、JSP、PHP)实现更复杂的功能。组件化萌芽:服务端和客户端组件化(如AS......
  • 【热门会议|火热征稿】2024年语言、艺术与文化交流国际会议(LACE 2024)
    2024年语言、艺术与文化交流国际会议(LACE2024)2024InternationalConferenceonLanguage,Art,andCulturalExchange【重要信息】大会地点:成都大会官网:http://www.iaclace.com投稿邮箱:[email protected]【注意:将稿件Word+PDF上传至邮箱,邮件正文请备注“LACE2024+......
  • KubeSphere 社区双周报|2024.05.09-05.23
    KubeSphere社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过commit的贡献者,并对近期重要的PR进行解析,同时还包含了线上/线下活动和布道推广等一系列社区动态。本次双周报涵盖时间为:2024.05.09-05.23。贡献者名单新晋KubeSpherecontribu......
  • MATLAB基础知识,帮你快速入门【文末送2024最新MATLAB学习教程资料视频+源码】
    1.MATLAB的基本知识1-1基本运算与函数 在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可。例如: >>(5*2+1.3-0.8)*10/25 ans=4.2000 MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上。小......
  • 网络安全(黑客技术)—2024小白自学必看!
    一、怎样规划网络安全如果你是一个安全行业新人,我建议你先从网络安全或者Web安全/渗透测试这两个方向先学起,一、是市场需求量高二、则是发展相对成熟入门比较容易值得一提的是,学网络安全,是先网络后安全;学Web安全,也是先Web再有安全。安全不是独立存在的,而是建立在其......