时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

小Ho:喂不得了啦,那边便利店的薯片半价了!

小Hi:啥?!

小Ho:那边的便利店在打折促销啊。

小Hi:走走走,赶紧去看看=v=

于是小Hi和小Ho来到了便利店。

老板为了促销,推出了组合包的形式,将不同数量的各类商品打包成一个组合,顾客可以选择组合进行购买。比如2袋薯片,1听可乐的组合只要5元,而1袋薯片,2听可乐的组合只要4元。

通过询问老板,小Hi和小Ho知道:一共有N种不同的商品和M种不同的商品组合;每一个组合的价格等于组合内商品售价之和,一个组合内同一件商品不会超过10件。

小Hi:这样算下来的话,一听可乐就是1元,而一包薯片是2元。小Ho,如果你知道所有的组合情况,你能分别算出每一件商品单独的价格么?

小Ho:当然可以了,这样的小问题怎么能难到我呢?

提示:高斯消元

输入

第1行:2个正整数,N,M。表示商品的数量N,组合的数量M。1≤N≤500, N≤M≤2*N

第2..M+1行:N+1个非负整数,第i+1行第j列表示在第i个组合中,商品j的数量a[i][j]。第i+1行第N+1个数表示该组合的售价c[i]。0≤a[i][j]≤10, 0≤c[i]≤10^9

输出

若没有办法计算出每个商品单独的价格,输出"No solutions"

若可能存在多个不同的结果,输出"Many solutions"

若存在唯一可能的结果,输出N行,每行一个非负整数,第i行表示第i个商品单独的售价。数据保证如果存在唯一解,那么解一定恰好是非负整数解。

样例输入
2 2
2 1 5
1 2 4
样例输出21这坑爹oj没数据,害的我拍了以上午,题比较简单,高斯消元的模板题,注意eps要开double类型的
 1 #include<cstdio>
 2 #include<cstring>
 3 #include<cmath>
 4 #include<algorithm>
 5 using namespace std;
 6 const int MAXN=1001;
 7 const double eps =1e-7;
 8 typedef double Matrix[MAXN][MAXN] ;
 9 inline void read(int &n)
10 {
11     char c=getchar();bool flag=0;n=0;
12     while(c<'0'||c>'9') c=='-'?flag==1,c=getchar():c=getchar();
13     while(c>='0'&&c<='9')    n=n*10+c-48,c=getchar();
14 }
15 int n,m;
16 Matrix a;
17 double t[MAXN];
18 void Gauss()
19 {
20     int r;
21     for(int i=1;i<=n;i++)// 枚举每一行
22     {
23         r=i;
24         for(int j=m;j>=i+1;j--)// 枚举后面的行
25             fabs(a[j][i])>fabs(a[r][i])?r=j:r=r;
26         if(r!=i)    swap(a[r],a[i]);
27         if(r==i&&fabs(a[i][i])<eps)        printf("Many solutions"),exit(0);
28
29         for(int j=i+1;j<=m;j++)// 行
30         {
31             for(int k=n+1;k>i;k--)// 列
32                 a[j][k]-=(a[j][i]/a[i][i])*a[i][k];
33             a[j][i]=0;
34         }
35     }
36
37     for(int i=n,j;i<=m;i++)
38     {
39         for(j=1;j<=n;j++)        if(fabs(a[i][j])>eps)        break;
40         if(j==n+1&&fabs(a[i][n+1])>eps)
41             printf("No solutions\n"),exit(0);
42     }// 是否有解
43
44     for(int i=n;i>=1;i--)// 枚举行
45     {
46         for(int j=i+1;j<=n;j++)// 枚举列
47             a[i][n+1]-=a[i][j]*a[j][n+1];
48         a[i][n+1]/=a[i][i];
49     }
50     for(int i=1;i<=n;i++)
51         printf("%d\n",(int)(a[i][n+1]+0.5));
52 }
53 int main()
54 {
55     freopen("a.in","r",stdin);
56     freopen("c.out","w",stdout);
57     read(n);read(m);
58     for(int i=1;i<=m;i++)
59         for(int j=1;j<=n+1;j++)
60             scanf("%lf",&a[i][j]);
61     Gauss();
62
63     return 0;
64 }



    

hihoCoder #1195 : 高斯消元·一相关推荐

  1. hihoCoder#1196 : 高斯消元·二(开关灯问题)

    传送门 高斯消元解异或方程组 小Ho在游戏板上忙碌了30分钟,任然没有办法完成,于是他只好求助于小Hi. 小Ho:小Hi,这次又该怎么办呢? 小Hi:让我们来分析一下吧. 首先对于每一个格子的状态,可 ...

  2. hihocoder图像算子(高斯消元)

    描述 在图像处理的技术中,经常会用到算子与图像进行卷积运算,从而达到平滑图像或是查找边界的效果. 假设原图为H × W的矩阵A,算子矩阵为D × D的矩阵Op,则处理后的矩阵B大小为(H-D+1) × ...

  3. hihoCoder 1166 交换代数 (高斯消元,概率)

    题意: 给出区间[1,n]的状态,有0.1.现在每次可以选择任意区间取翻转,问全部翻转成0的次数期望.总共有n(n+1)/2个区间. 题解: 这个CLJ链接将的很清楚了. 那么根据高斯消元列方程求解, ...

  4. Rocksdb Ribbon Filter : 结合 XOR-filter 以及 高斯消元算法 实现的 高效filter

    文章目录 前言 XOR-filter 实现原理 xor filter 的构造原理 xor filter 构造总结 XOR-filter 和 ADD-filter对比 XOR-filter 在计算上的优 ...

  5. poj 1681 Painter#39;s Problem(高斯消元)

    http://poj.org/problem? id=1681 求最少经过的步数使得输入的矩阵全变为y. 思路:高斯消元求出自由变元.然后枚举自由变元,求出最优值. 注意依据自由变元求其它解及求最优值 ...

  6. AC自动机 + 概率dp + 高斯消元 --- HDU 5955 or 2016年沈阳icpc H [AC自动机 + 概率dp + 高斯消元]详解

    题目链接 题目大意: 就是有NNN个人,每个人都会猜一个长度为LLL的只包含{1,2,3,4,5,6}\{1,2,3,4,5,6\}{1,2,3,4,5,6}的序列,现在裁判开始投掷骰子,并且把每次的 ...

  7. ICPC 2005 hangzhou Generator (UVA1358)KMP + 期望DP / 高斯消元

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Generator Weblink https://www.luogu.com.cn/problem/ ...

  8. 2020 ACM / ICPC 济南 A Matrix Equation (高斯消元、乘法原理)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 给你定义两种 010101 矩阵上的运算: Xi,j×Yi,j=(∑k=1NXi,kYk,j ...

  9. luogu P4035 [JSOI2008]球形空间产生器(高斯消元 / 模拟退火)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 数据范围只开到了10,而且是经典的力学结构,所以我们可以用模拟退火,可以做一下 nnn 维的正交分解h ...

最新文章

  1. ANACONDA安装更新第三方包
  2. ios如何看idfv_iOS获取各种数据方法整理以及IDFA与IDFV使用环境
  3. 字符串转换成ascii码
  4. Elasticsearch的Scroll操作
  5. personalization icon is missing in UI
  6. fastxml 大于符号不转换_你可能不知道的MATLAB入门技巧#第二话
  7. YOLO系列:YOLOv1,YOLOv2,YOLOv3,YOLOv4,YOLOv5简介
  8. 数字反转(洛谷-P1307)
  9. 【华为云技术分享】大数据容器化,头部玩家尝到了甜头
  10. 基于 Android Architecture Components 的 MVVM 浅析
  11. linux查看iozone安装目录,IOZone的基本使用
  12. 【个人提升】如何克服惰性
  13. 开源游戏服务器框架NoahGameFrame(NF)服务器端环境搭建(二)
  14. 做测试为什么要掌握mysql_软件测试工作要掌握的知识
  15. 2021互联网大厂端午礼盒大盘点~
  16. 服务器集群及其优缺点!
  17. spring jpa的基本操作和理解
  18. java支付接口(支付宝、微信、QQ)
  19. 相机旋转标题文字出现PR模板MOGRT|摄影师必备
  20. Mysql异常之Communications link failure

热门文章

  1. CASE软件Enterprise Architect简介和使用入门图解
  2. Windows 驱动开发资源链接
  3. Java——重载和重写
  4. 实现spring IOC的常见二种方法 setter注入与构造器注入
  5. Oracle 9i默认表空间
  6. 第四章 进程(3)进程的命令行环境变量
  7. delete 多表删除的使用
  8. Linux卸载蓝牙模块,Linux 下调试低功耗蓝牙的笔记
  9. servlet获取jsp页面的值为null_Jsp挖掘(4)-打造自己的jsp防御代码
  10. 北京工商大学计算机学院研究生院,北京工商大学计算机学院