Day 11

题目描述

题目很长,就不赘述了(主要是懒得写)

题目解析

Gauss 消元

题目的提示很明显,将元素守恒作为建立等式的基础。只要满足每一行元素守恒,即\(x_1 + x_2 + ··· + x_n = 0\)即可

元素个数为\(m\),物质个数为\(n\),增广矩阵的大下为\(m * (n + 1)\),Gauss消元时间复杂度为\(O(m n^2)\) 数据量很小

要注意的是,这里有个特解,比如\(x_1 = x_2 = x_3 = ··· = x_n = 0\)一定是成立的,但是在题干描述中并不合法,所以在\(rankA = n\)时还是要求出具体的解,判断一下特解

C++代码

#include <bits/stdc++.h>

using namespace std;
const int N = 110;
const double eps = 1e-10; int T;
int n;
map<string , int> mp;
int idx = 0;
double g[N][N]; void process_str(int k , string x)
{
int i = 0;
while(i < x.size())
{
string s = "";
while(i < x.size() && !isdigit(x[i])) s += x[i ++];
int amount = 0;
while(i < x.size() && isdigit(x[i])) amount = amount * 10 + x[i ++] - '0'; if(!mp.count(s)) mp[s] = idx ++; g[mp[s]][k] = amount;
}
} int gauss()
{
int c, r;
for (c = 0, r = 0; c < n; c ++ )
{
int t = r;
for (int i = r; i < idx; i ++ )
if (fabs(g[i][c]) > fabs(g[t][c]))
t = i; if (fabs(g[t][c]) < eps) continue; for (int i = c; i <= n; i ++ ) swap(g[t][i], g[r][i]);
for (int i = n; i >= c; i -- ) g[r][i] /= g[r][c];
for (int i = r + 1; i < idx; i ++ )
if (fabs(g[i][c]) > eps)
for (int j = n; j >= c; j -- )
g[i][j] -= g[r][j] * g[i][c]; r ++ ;
} if (r < n)
{
for (int i = r; i < idx; i ++ )
if (fabs(g[i][n]) > eps)
return 0; // 无解
return 1;
} for (int i = idx - 1; i >= 0; i -- )
for (int j = i + 1; j < n; j ++ )
g[i][n] -= g[i][j] * g[j][n]; bool f = true;
for(int i = 0 ; i < idx ; i ++)
f &= (g[i][n] < eps); if(f) return 0;
return 1;
} void solve()
{
memset(g , 0 , sizeof g);
mp.clear();
idx = 0;
cin >> n;
for(int i = 0 ; i < n ; i ++)
{
string x;
cin >> x;
process_str(i , x);
} if(gauss()) cout << "Y\n";
else cout << "N\n";
} int main()
{
cin >> T;
while(T --)
{
solve();
} return 0;
}

Day11 备战CCF-CSP练习的更多相关文章

  1. CCF CSP 认证

    参加第八次CCF CSP认证记录 代码还不知道对不对,过两天出成绩. 成绩出来了,310分. 100+100+100+10+0: 考试13:27开始,17:30结束,提交第4题后不再答题,只是检查前四 ...

  2. CCF CSP 201609-2 火车购票

    题目链接:http://118.190.20.162/view.page?gpid=T46 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排 ...

  3. CCF CSP 201703-3 Markdown

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201703-3 Markdown 问题描述 Markdown 是一种很流行的轻量级标记语言(l ...

  4. CCF CSP 201703

    CCF CSP 2017·03 做了一段时间的CCF CSP试题,个人感觉是这样分布的 A.B题基本纯暴力可满分 B题留心数据范围 C题是个大模拟,留心即可 D题更倾向于图论?(个人做到的D题基本都是 ...

  5. CCF CSP 201312-3 最大的矩形

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201312-3 最大的矩形 问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i( ...

  6. CCF CSP 201609-3 炉石传说

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201609-3 炉石传说 问题描述 <炉石传说:魔兽英雄传>(Hearthston ...

  7. CCF CSP 201403-3 命令行选项

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201403-3 命令行选项 问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些 ...

  8. CCF CSP 201709-4 通信网络

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201709-4 通信网络 问题描述 某国的军队由N个部门组成,为了提高安全性,部门之间建立了M ...

  9. CCF CSP 201409-3 字符串匹配

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201409-3 字符串匹配 问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那 ...

  10. CCF CSP 201503-3 节日

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201503-3 节日 问题描述 有一类节日的日期并不是固定的,而是以“a月的第b个星期c”的形 ...

随机推荐

  1. 为什么 G1 垃圾收集器不维护年轻代到老年代的记忆集?

    为什么 G1 垃圾收集器不维护年轻代到老年代的记忆集? 在 G1 垃圾收集器中,不维护年轻代到老年代的记忆集(Remembered Set, RSet)是因为其设计特点和优化策略使得这种记忆集的维护既 ...

  2. Netty 心跳机制实现(客户端与服务端)

    Netty 心跳机制实现(客户端与服务端) Netty 的心跳机制是保持长连接有效性的重要手段,可以检测连接是否存活并及时释放无效连接.下面介绍客户端和服务端的完整实现方案. 一.服务端实现 1. 基 ...

  3. WSL 安装配置 MySQL

    在 WSL 安装并配置 MySQL 与在 Ubuntu Server 安装配置 MySQL 一样的步骤.简要记录一下配置的过程. 安装 MySQL 参考微软官方文档[1]安装MySQL. sudo a ...

  4. 信息资源管理综合题之“公钥密码体系中同一个用户拥有的密钥特点 和 如何使用密钥加解密才能保证传输数据的机密性 和 如何身份认证 和 CA的作用”

    一.公钥密码体制在认证技术中是广泛使用的.结合加密和认证技术知识回答以下问题: 1.公钥密码体系中同一个用户拥有的密钥的特点是什么? 2.假设A.B是公钥密码体系的用户,A向B发送数据,A.B之间如何 ...

  5. 马尔柯夫的"概率转换和市场份额和概率矩阵"

    案例一 案例二 分析转移概率矩阵求法 分析求9月份各厂家分别拥有的市场份额  案例3 案例4 分析先算第二年,再根据第二年算第三年 问题2的解法:根据第二年市场份额算第三年的市场份额 案例5:确定平衡 ...

  6. 开源的DeekWiki加入MCP,为您的Cursor提供开源项目分析,轻松让AI掌握开源项目使用文档!

    OpenDeekWiki加入MCP,为您的Cursor提供开源项目分析,轻松让AI掌握开源项目使用文档! OpenDeepWiki 是参考DeepWiki 作为灵感,基于 .NET 9 和 Seman ...

  7. C++ 11 make_shared

    make_shared的使用 shared_ptr<string> p1 = make_shared<string>(10, '9'); shared_ptr<strin ...

  8. 开启PyTorch的第一天

    为积极响应导师的要求,我开启了我的深度学习之旅,成为炼丹大队的一员. 今天先是安装PyTorch,路子大家网上已经摸的很清了,我主要参考的是 https://blog.csdn.net/weixin_ ...

  9. WPF Thumb 滑块控件踩坑

    最近在做一个仿 手机选择时间的控件,如下图,选用了 Thumb 滑块控件做上下滑动的功能.订阅了 Thumb_OnDragStarted.Thumb_DragDelta和Thumb_DragCompl ...

  10. 浅谈RMI、JRMP、JNDI

    目录 RMI 概念: 为什么要有RMI? RMI的构成: 如何使用RMI 注意!!! JRMP(是RMI的通信协议的名字) 概念 查看通信过程 工具使用 攻击Server 攻击Client JNDI ...