GYM100962A ABBA
题目链接:https://vjudge.net/problem/Gym-100962A
题目大意:
给出一个 \(h \times w\) 的目标矩阵。定义一种 \(h \times w\) 的矩阵,它由两个向量 \(a = (a_1, a_2, ..., a_h)\) 和 \(b = (b_1, b_2, ..., b_w)\) 推出,其第 \(i\) 行第 \(j\) 列的元素为 \(a_i b_j\),问目标矩阵最少由多少个这种矩阵相加而成(一开始是零矩阵)。
知识点: 高斯消元
解题思路:
其实就是求 \(h\) 的方程、\(w\) 个未知数的方程组的秩。不过这题的坑点在于精度。
AC代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = +;
const double ep = 1e-; //一开始是 1e-6, 一直wa, 后来看了题解, 学他改成 1e-2 就 AC 了
double a[maxn][maxn]; int Gauss(int equ,int var){
int row=,col=,max_r;
for(;row<equ&&col<var;row++,col++){
max_r=row;
for(int i=row+;i<equ;i++){
if(fabs(a[i][col])>fabs(a[max_r][col]))
max_r=i;
}
if(max_r!=row){
for(int j=row;j<var+;j++)
swap(a[row][j],a[max_r][j]);
}
if(fabs(a[row][col])<ep){
row--;
continue;
}
for(int i=row+;i<equ;i++){
if(fabs(a[i][col])>ep){
double f=a[i][col]/a[row][col];
for(int j=row;j<=var;j++){
a[i][j]-=f*a[row][j];
}
}
}
}
return row;
}
int main(){
// freopen("in.txt","r",stdin);
int h,w;
while(scanf("%d%d",&h,&w)==){
memset(a,,sizeof(a));
for(int i=;i<h;i++){
for(int j=;j<w;j++)
scanf("%lf",&a[i][j]);
a[i][w]=;
}
printf("%d\n",Gauss(h,w));
}
return ;
}
GYM100962A ABBA的更多相关文章
- ABBA BABA statistics
The ABBA BABA statistics are used to detect and quantify an excess of shared derived alleles, which ...
- 2019牛客多校第一场E ABBA(DP)题解
链接:https://ac.nowcoder.com/acm/contest/881/E 来源:牛客网 ABBA 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 524288K,其他语 ...
- 2019牛客多校第一场E ABBA dp
ABBA dp 题意 给出2(N+M)个AB字符,问能构造出N个AB子序列和M个BA子序列组成的2*(n+m)的序列种类有多少 思路 碰到计数构造类的题目,首先要去找到判断合法性的条件,即什么情况下合 ...
- 2019年牛客多校第一场 E题 ABBA DP
题目链接 传送门 思路 首先我们知道\('A'\)在放了\(n\)个位置里面是没有约束的,\('B'\)在放了\(m\)个位置里面也是没有约束的,其他情况见下面情况讨论. \(dp[i][j]\)表示 ...
- 2019牛客暑期多校训练营(第一场)E ABBA
题意问你有多少个长度为2*(n+m)的字符串满足A和B数量相等 且可以分割为n个AB子序列和m个BA子序列 很容易得出前n个A肯定是可以给AB的 后面的m个A给BA 所以当一个字符串满足条件时要满足任 ...
- 2019牛客暑期多校训练营(第一场) - E - ABBA - 贪心 - dp - 组合
https://ac.nowcoder.com/acm/contest/881/E 从dp的角度来看是比较正常的.无后效性来源于前面只要的合法的方案分配,那么对后面造成的影响就只有A,B的数目. 从贪 ...
- 2019牛客多校第一场E ABBA 贪心 + DP
题意:问有多少个有(n + m)个A和(n + m)个B的字符串可以凑出n个AB和m个BA. 思路:首先贪心的发现,如果从前往后扫,遇到了一个A,优先把它看成AB的A,B同理.这个贪心策略用邻项交换很 ...
- 2019 牛客多校第一场 E ABBA
题目链接:https://ac.nowcoder.com/acm/contest/881/E 题目大意 问有多少个由 (n + m) 个 ‘A’ 和 (n + m) 个 ‘B’,组成的字符串能被分割成 ...
- 【2019牛客暑期多校第一场】E题ABBA
题目链接 大致题意 有(n+m)(n + m)(n+m)个字母A和(n+m)(n + m)(n+m)个字母B,组成一个长度为 2∗(n+m)2*(n + m)2∗(n+m)的字符串,并且使得字符串中有 ...
随机推荐
- 如何迅速分析出系统CPU的瓶颈在哪里?
内容出自极客时间专栏<Linux 性能优化实战> CPU 的性能指标那么多,CPU 性能分析工具一抓一大把,换成实际的工作场景,该观察什么指标.选择哪个性能工具呢? 不要担心,今天我就以多 ...
- 【Leetcode】104. 二叉树的最大深度
题目 给定一个二叉树,找出其最大深度. 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数. 说明: 叶子节点是指没有子节点的节点. 示例:给定二叉树 [3,9,20,null,null,15,7 ...
- MySQL使用ProxySQL实现读写分离
1 ProxySQL简介: ProxySQL是一个高性能的MySQL中间件,拥有强大的规则引擎.官方文档:https://github.com/sysown/proxysql/wiki/下载地址:ht ...
- Windows 10 MSDN官方原版ISO镜像(简体中文)下载
http://www.heu8.com/2800.html 硬件要求如下:处理器:1 GHz 或更快的处理器或 SoC RAM:1 GB(32 位)或 2 GB(64 位) 硬盘空间:16 GB(32 ...
- ajax学习摘抄笔记
2019独角兽企业重金招聘Python工程师标准>>> AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). A ...
- JAVA第二次blog总结
JAVA第二次blog总结 0.前言 这是我们在博客园上第二次写博客,进行JAVA阶段学习的总结.现在我们接触到JAVA已经有一段时间了,但难点还是在于编程思想和方法的改变,第二阶段的学习让我对于理解 ...
- 【ElasticSearch学习】之一图读懂文档索引全过程
ES索引过程详解: 1.客户端发送索引请求. 客户端向ES节点发送索引请求,以RestClient客户端发起请求为例: ES提供了Java High Level REST Client,用户可以通过R ...
- 震惊,某博主为吸引眼球拿出压箱底SQL总结,如果你没看那就吃亏了!(超级详细的SQL基础,你还不会的话就别学数据库了)
这里还有数据库相关的优质文章:快戳我,快戳我
- 通过例题进一步学习DP
1.以上篇文章数塔为例 https://blog.csdn.net/weixin_43627118/article/details/88701586 上一章用的是递归的做法,这次我们采用递推的做法. ...
- JavaWeb----Servler
Servlet简介 Servlet就是sun公司开发动态web的一门技术 Sun在这些API中提供一个接口叫做:Servlet,如果你想开发一个Servlet程序,只需要完成两个小步骤: 编写一个类, ...