HDU_2156 分数矩阵

Problem Description

我们定义如下矩阵:
            1/1 1/2 1/3
            1/2 1/1 1/2
            1/3 1/2
1/1
            矩阵对角线上的元素始终是1/1,对角线两边分数的分母逐个递增。
            请求出这个矩阵的总和。

Input

每行给定整数N (N<50000),表示矩阵为 N*N.当N为0时,输入结束。

Output

输出答案,保留2位小数。

Sample Input

1

2

3

4

0

Sample Output

1.00

3.00

5.67

8.83

代码如下:

 1 #include <cstdio>
 2 int main()
 3 {
 4     int n;
 5     while(scanf("%d",&n)&&n!=0){
 6         double sum;
 7         if(n!=1){
 8             sum=n*1.00+2.00/n;
 9             for(int i=2;i<n;i++){
10                 sum+=i*2*1.00/(n-1*i+1);
11             }
12         }else{
13             sum=1.00;
14         }
15
16         printf("%.2lf\n",sum);
17     }
18
19     return 0;
20 } 

思路解析:

本题其实是一道找规律的基础题。本题有很多种解决问题的办法,在这里只介绍我思考的一种方法。以对角线为分界将矩阵一分为二。

以4*4为例子

1          1/2         1/3         1/4

1/2       1            1/2         1/3

1/3       1/2         1            1/2

1/4       1/3         1/2         1

那么sum=n*1  +   2*1/2*3   +    2*1/3*2   +   2*1/4

那么我们就看到了规律,

不过第一个和最后一个无法算进来,所以提前算好,sum先=n*1   +   2*1/n

然后开始循环。~~答案粗线23333333.

时间: 2025-01-07 07:48:29

HDU_2156 分数矩阵的相关文章

HDOJ 2156 分数矩阵

分数矩阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4580    Accepted Submission(s): 2769 Problem Description 我们定义如下矩阵:1/1 1/2 1/31/2 1/1 1/21/3 1/2 1/1矩阵对角线上的元素始终是1/1,对角线两边分数的分母逐个递增.请求出这个矩阵的总和.

HDU2156 分数矩阵【水题】【递推】

分数矩阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4769    Accepted Submission(s): 2882 Problem Description 我们定义如下矩阵: 1/1 1/2 1/3 1/2 1/1 1/2 1/3 1/2 1/1 矩阵对角线上的元素始终是1/1,对角线两边分数的分母逐个递增. 请求出这个

HDU 2156 分数矩阵

分数矩阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4602 Accepted Submission(s): 2785 Problem Description 我们定义如下矩阵: 1/1 1/2 1/3 1/2 1/1 1/2 1/3 1/2 1/1 矩阵对角线上的元素始终是1/1,对角线两边分数的分母逐个递增. 请求出这个矩阵的总和.

HDUJ 2156 分数矩阵

分数矩阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4305    Accepted Submission(s): 2593 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,对角线两边分数的分母逐个递增.请求出这个矩阵的总和. Input 每行给定整数N (N<50000),表示矩阵为 N*N.当N为0时,输入结束. Output 输出答案,保留2位小数. Sample Input 1 2 3 4 0 Sample Output 1.00 3.00 5.67 8.83 一看,大水题,马上来了个循环,然后计算 n/

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,对角线两边分数的分母逐个递增. 请求出这个矩阵的总和. Input 每行给定整数N (N<50000),表示矩阵为 N*N.当N为0时,输入结束. Output 输出答案,保留2位小数. Sample Input 1 2 3 4 0 Sample Output 1.00 3.00 5.67 8.83 简单题 不打表会超时.... 还可

《程序设计技术》课程辅助学习资料

本文档提供课程相关的辅助学习资料. 阅读程序是提高程序设计水平的最为有效的方法,<程序设计技术>课程至少应该阅读后面提供链接博文中的基础部分.能够阅读完基础部分的博文,则可以给课程学习奠定一个坚实的基础. 自己编写程序也是学习编程必不可少的一个环节.自己编写是否正确可以通过OJ系统来验证.选做OJ的程序设计题方便于评价自己所写的程序是否正确.想要提高编写程序的能力并且达到更高的水平,从各个OJ中选做一些编程题是十分必要的. 文中提供了CCF-CSP认证考试历年 试题的第1题的题解.这些题解中都

POJ 1080 Human Gene Functions(求两字符串相似度:LCS变形)

POJ 1080 Human Gene Functions(求两字符串相似度:LCS变形) http://poj.org/problem?id=1080 题意: HDU1080 给你两个由字符A,C,G,T构造的字符串s1和s2, 现在你可以在这两个字符串中插入空格, 使得两串长相等(但是不能使得s1的空格对应s2的空格位置). 然后给你s1的特定字符对应s2中特定字符所能获得的分数矩阵: 问你最后两个字符串所能获得的最大分数是多少? 分析: 本题很类似于求字符串最短编辑距离或者求字符串LCS的

第3课 线性分类器损失函数与最优化

回顾上一节课,我们了解视觉识别,特别是图像分类,这确实是一个非常困难的问题,因为我们必须考虑到这些可能的变化,并使得当我们在识别这些类型时,分类器能够在面对这些变化时具有鲁棒性,例如对猫的识别,似乎存在着难解决的问题,我们仅需要知道如何解决这些问题,同时我们还必须能够在成千上万的其他类型中解决这些问题,而且这种方法能够基本达到甚至是稍微高于人类识别的准确率,这种技术还可能在手机上实时使用,这种技术在近几年开始有重要突破. 这节课时主要讲述了线性分类器的理解方式,包括linearSVM和softm