Three matrices

2024-05-23 21:08
文章标签 three matrices

本文主要是介绍Three matrices,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击打开链接     http://codeforces.com/contest/393/problem/B

Chubby Yang is studying linear equations right now. He came up with a nice problem. In the problem you are given an n × n matrix W, consisting of integers, and you should find two n × n matrices A and B, all the following conditions must hold:

  • Aij = Aji, for all i, j (1 ≤ i, j ≤ n);
  • Bij =  - Bji, for all i, j (1 ≤ i, j ≤ n);
  • Wij = Aij + Bij, for all i, j (1 ≤ i, j ≤ n).

Can you solve the problem?

Input

The first line contains an integer n (1 ≤ n ≤ 170). Each of the following n lines contains n integers. The j-th integer in the i-th line is Wij(0 ≤ |Wij| < 1717).

Output

The first n lines must contain matrix A. The next n lines must contain matrix B. Print the matrices in the format equal to format of matrix Win input. It is guaranteed that the answer exists. If there are multiple answers, you are allowed to print any of them.

The answer will be considered correct if the absolute or relative error doesn't exceed 10 - 4.

Sample test(s)
input
2
1 4
3 2
output
1.00000000 3.50000000
3.50000000 2.00000000
0.00000000 0.50000000
-0.50000000 0.00000000
input
3
1 2 3
4 5 6
7 8 9
output
1.00000000 3.00000000 5.00000000
3.00000000 5.00000000 7.00000000
5.00000000 7.00000000 9.00000000
0.00000000 -1.00000000 -2.00000000
1.00000000 0.00000000 -1.00000000
2.00000000 1.00000000 0.00000000


题目大意:给出一个矩阵w,要求构造出两个矩阵a,b;要求a是对称矩阵a[i][j] = a[j][i],b是负对称矩阵b[i][j] = -b[j][i],并且a[i][j] + b[i][j] = w[i][j]。


解题思路:a[i][j] + b[i][j] = w[i][j]; a[j][i] + b[j][i] = a[i][j] - b[i][j] = w[j][i];两式子相加相减除2就分别是a[i][j]和b[i][j].

这道题其实很简单,可是我却A了好几遍都没过,是在没发现有什么错误,而且测试数据都对,后来发现时这样的,数组开小了,希望大家在做题的时候可以看清题意。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{int n;double a[205][205];double flag;double b[205][205],c[205][205];while(cin>>n){for(int i=0; i<n; i++){for(int j=0; j<n; j++){cin>>a[i][j];if(i==j)b[i][j]=a[i][j];else{flag=(a[i][j]+a[j][i])/2;b[i][j]=b[j][i]=flag;c[i][j]=a[i][j]-flag;c[j][i]=-c[i][j];}}}for(int i=0; i<n; i++){for(int j=0; j<n; j++){if(j==0)cout<<fixed<<setprecision(8)<<b[i][j];elsecout<<fixed<<setprecision(8)<<" "<<b[i][j];}cout<<endl;}for(int i=0; i<n; i++){for(int j=0; j<n; j++){if(j==0)cout<<fixed<<setprecision(8)<<c[i][j];elsecout<<fixed<<setprecision(8)<<" "<<c[i][j];}cout<<endl;}}return 0;
}


这篇关于Three matrices的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/996422

相关文章

Three 渲染器(二)

WebGL1Renderer 构造函数 WebGL1Renderer( parameters : Object ) Creates a new WebGL1Renderer. 属性 See the base WebGLRenderer class for common properties. 方法 See the base WebGLRenderer class for common

leetcode#628. Maximum Product of Three Numbers

题目 Given an integer array, find three numbers whose product is maximum and output the maximum product. Example 1: Input: [1,2,3]Output: 6 Example 2: Input: [1,2,3,4]Output: 24 Note: The lengt

three.js 实现围墙效果

import * as THREE from “three”; import { OrbitControls } from “three/addons/controls/OrbitControls.js”; const { innerWidth, innerHeight } = window; const aspect = innerWidth / innerHeight; class Bas

three.js使用3DTilesRendererJS加载3d tiles数据

原生的 three.js 目前不支持 3d tiles 数据的加载,不过开源社区已经给出了一些解决方案,其中最活跃的要属 3DTilesRendererJS。它为 three.js 提供了加载和调度 3d tiles 数据的基本能力,虽说和 Cesium.js 对 3d tiles 的支持相比还有很大的差距,但也比没有的好。毕竟 3d tiles 数据的加载和调度还是比较复杂的,要自己写也没那么容

Three.js new THREE.TextureLoader()纹理贴图使用png图片显示为黑色

问题代码如下: const texture = new THREE.TextureLoader().load('./image.png');droneGeometry = new THREE.PlaneGeometry(1, 1);droneMaterial = new THREE.MeshBasicMaterial({ map: texture});droneMesh = new THRE

react 中three.js 模型渲染

npm install three import * as THREE from "three";import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader.js";const mountRef = useRef(null);useEffect(() => {// 创建渲染器 const rendere

【基础】Three.js加载纹理贴图、加载外部gltf格式文件

1. 模型使用纹理贴图 const geometry = new THREE.BoxGeometry(10, 10, 10);const textureLoader = new THREE.TextureLoader(); // 创建纹理贴图加载器const texture = textureLoader.load("/crate.gif"); // 加载纹理贴图const material

九度考研真题 浙大 2011-1浙大1001:A+B for Matrices

//题目1001:A+B for Matrices #include<iostream> #include<string.h> using namespace std; int main() { int M,N; int a1[11][11],a2[11][11]; int a_s[11],b_s[11]; int num=0; while(cin

Three.js Cesium.js 案例聚集地

对于大多数的开发者来言,看了很多文档可能遇见不到什么有用的,就算有用从文档上看,把代码复制到自己的本地大多数也是不能用的,非常浪费时间和学习成本, 尤其是three.js , cesium.js 这种难度较高, 想要实现一个功能可能会查阅很多博客 ,进行很多错误尝试,费时费力。 集成了相关友情站 所以,话不多说为了给各位造福利,我搭建了在线查看代码且可的调试系统,所有案例可直接访问,让你欣赏

three 加载器(一)

BufferGeometryLoader 用来加载BufferGeometry的加载器。 内部使用FileLoader来加载文件。 // 初始化一个加载器 var loader = new THREE.BufferGeometryLoader(); // 加载资源 loader.load( // 资源URL 'models/json/pressure.json', // onLoad回调