问题 A: 分数矩阵
题目描述
1/1 1/2 1/3
1/2 1/1 1/2
1/3 1/2 1/1
矩阵对角线上的元素始终是1/1,对角线两边分数的分母逐个递增。
请求出这个矩阵的总和。
输入
输出
样例输入
1
2
3
4
0
样例输出
1.00
3.00
5.67
8.83 这题就是一个规律题
#include<stdio.h>
int main ()
{
int n;
int i;
double sum;
while(scanf("%d",&n),n)
{
sum=;
sum+=n*;
for (i=;i<=n;i++)
{
sum+=1.0/i*(n-i+)*;
}
printf ("%.2f\n",sum);
}
return ;
}
用算法笔记上的写法时间超限了
#include<bits/stdc++.h> using namespace std;
struct Fraction
{
int up,down;//分子 分母
//Fraction(){}
Fraction(int _up=,int _down=):up(_up),down(_down){}
};
int gcd(int a,int b)
{
if(b==) return a;
return gcd(b,a%b);
}
Fraction reduction(Fraction result)//分数的化简
{
if(result.down<){//分母为负数,令分子和分母都变为相反数
result.down=-result.down;
result.up=-result.up;
}
if(result.up==) result.down=;//如果分子为0 分母为1
else{//约去最大公约数
int d=gcd(abs(result.up),abs(result.down));
result.up/=d;
result.down/=d;
}
return result;
}
int main()
{
int n;
while(scanf("%d",&n)==&&n!=){
Fraction s[n*n+];
for(int i=;i<=n;i++){
s[n*(i-)+i].up=;
s[n*(i-)+i].down=;
} for(int i=;i<=n;i++){
for(int j=;j<=n;j++){
if(i!=j){
if(j>i){
s[n*(i-)+j].down=s[n*(i-)+j-].down+;
s[n*(i-)+j].up=;
}
}
}
}
for(int i=;i<=n;i++){
for(int j=;j<=n;j++){
if(j<i){
s[n*(i-)+j].down=s[n*n+-n*(i-)-j].down;
s[n*(i-)+j].up=;
}
}
}
Fraction c;
c.down=s[].down;
c.up=s[].up;
for(int i=;i<=n*n;i++){
c.up=s[i].up*c.down+c.up*s[i].down;
c.down=s[i].down*c.down;
c=reduction(c);
cout<<c.up<<" "<<c.down<<endl;
}
printf("%.2f\n",1.0*c.up/c.down);
}
return ;
}
分数的四则运算就是我们正常的四则运算
问题 A: 分数矩阵的更多相关文章
- HDU_2156 分数矩阵
Problem Description 我们定义如下矩阵: 1/1 1/2 1/3 1/2 1/1 1/2 1 ...
- HDOJ(HDU) 2156 分数矩阵(嗯、求和)
Problem Description 我们定义如下矩阵: 1/1 1/2 1/3 1/2 1/1 1/2 1/3 1/2 1/1 矩阵对角线上的元素始终是1/1,对角线两边分数的分母逐个递增. 请求 ...
- [hdu2156]分数矩阵
Problem Description 我们定义如下矩阵:1/1 1/2 1/31/2 1/1 1/21/3 1/2 1/1矩阵对角线上的元素始终是1/1,对角线两边分数的分母逐个递增.请求出这个矩阵 ...
- HDU 2156 分数矩阵
http://acm.hdu.edu.cn/showproblem.php?pid=2156 Problem Description 我们定义如下矩阵:1/1 1/2 1/31/2 1/1 1/21/ ...
- 基于MapReduce的SimRank++算法研究与实现
一.算法应用背景 计算广告学(Computational Advertising)是一门广告营销科学,以追求广告投放的收益最大化为目标,重点解决用户与广告匹配的相关性和广告的竞价模型问题,涉及到自然语 ...
- 洛谷P1074 靶形数独(算竞进阶习题)
还是数独.. 比上一个多了个分数矩阵,其实没什么差别,但是数据好像水了许多... #include <bits/stdc++.h> #define INF 0x3f3f3f3f using ...
- 《TC训练赛一》题解!
以下题目标题就是此题题目链接,题目内容为了节省篇幅就不粘上去了.整套题的链接:https://acm.bnu.edu.cn/v3/contest_show.php?cid=8679#info 密码:7 ...
- 用深度学习做命名实体识别(七)-CRF介绍
还记得之前介绍过的命名实体识别系列文章吗,可以从句子中提取出人名.地址.公司等实体字段,当时只是简单提到了BERT+CRF模型,BERT已经在上一篇文章中介绍过了,本文将对CRF做一个基本的介绍.本文 ...
- LPAT: Learning to Predict Adaptive Threshold for Weakly-supervised Temporal Action Localization [Paper Reading]
Motivation: 阈值分割的阈值并没有通过模型训练学出来,而是凭借主观经验设置,本文通过与背景得分比较提取对应的proposal,不用阈值的另一篇文章是Shou Zheng的AutoLoc,通过 ...
随机推荐
- PC Android IOS资料同步更新
在程序发布后,特别是IOS版本,想替换里边的内容,重新发布版本很是麻烦.我们就可以动态用AssetBundle更新内容. 如果是自定义二进制文件,先要改为“.Bytes”后缀的文件,Unity会把这个 ...
- 前端DOM知识点
DOM即文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式.DOM把网页和脚本 ...
- Knowledge Point 20180305 机器数转换与进制转换
机器数(这里的机器数说的就是数值在计算机中的存储形式,相关可以了解数据在计算机中的表示)之间的转换往往是通过原码来实现的,下面我们结合进制来来一下: 进制也就是进位制,是人们规定的一种进位方法. 对于 ...
- js/jquery 禁用点击事件
前言 工作中经常遇到这种情况:验证邮箱页面的重新发送需要在3分钟后才可以点击触发请求,所以在这之前需要禁用他的点击. 网上查了后有以下几种实现方法 1.css禁用鼠标点击事件 .disabled { ...
- poj_3256_Cow Picnic
The cows are having a picnic! Each of Farmer John's K (1 ≤ K ≤ 100) cows is grazing in one of N (1 ≤ ...
- ABAP术语-Function Module
Function Module 原文:http://www.cnblogs.com/qiangsheng/archive/2008/02/18/1071827.html General-purpose ...
- 在mac上显示网速的软件——iStat Menus 5:
在mac上显示网速的软件——iStat Menus 5: https://bjango.com/mac/istatmenus/ 注册码: Email: 982092332@qq.com SN: GAW ...
- CentOS6.5安装zabbix3.2.6
1.安装好httpd和php Zabbix 3需要PHP是至少5.4或更高版本 rpm -ivh http://repo.webtatic.com/yum/el6/latest.rpm yum -y ...
- canvas 制作表情包
canvas 制作表情包 代码如下. <!DOCTYPE html> <html> <head> <title>表情制作</title> & ...
- YII2.0学习二 安装adminlte 后台模板
控制台切换到安装目录wwwroot/shanghai/ 修改一下composer镜像地址:composer 使用中国镜像 运行 composer require dmstr/yii2-adminlte ...