PAT甲级1104
来源:互联网 发布:网络销售是什么工作啊 编辑:程序博客网 时间:2024/06/05 00:42
1104. Sum of Number Segments (20)
Given a sequence of positive numbers, a segment is defined to be a consecutive subsequence. For example, given the sequence {0.1, 0.2, 0.3, 0.4}, we have 10 segments: (0.1) (0.1, 0.2) (0.1, 0.2, 0.3) (0.1, 0.2, 0.3, 0.4) (0.2) (0.2, 0.3) (0.2, 0.3, 0.4) (0.3) (0.3, 0.4) (0.4).
Now given a sequence, you are supposed to find the sum of all the numbers in all the segments. For the previous example, the sum of all the 10 segments is 0.1 + 0.3 + 0.6 + 1.0 + 0.2 + 0.5 + 0.9 + 0.3 + 0.7 + 0.4 = 5.0.
Input Specification:
Each input file contains one test case. For each case, the first line gives a positive integer N, the size of the sequence which is no more than 105. The next line contains N positive numbers in the sequence, each no more than 1.0, separated by a space.
Output Specification:
For each test case, print in one line the sum of all the numbers in all the segments, accurate up to 2 decimal places.
Sample Input:40.1 0.2 0.3 0.4Sample Output:
5.00
#include<iostream>#include<vector>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<iomanip>using namespace std;/*double sum1(vector<double>a, int i, int j){vector<double> v;for (int k = i; k <= j; k++){if(k==i)v.push_back(a[k]);else{v.push_back(a[k]+v[k-i-1]);}}double sum = 0.0;for (int i = 0; i < v.size(); i++){sum += v[i];}return sum;}*/int main(){int N;cin >> N;double t;int n = N;vector<double> v;while (N--){cin >> t;v.push_back(t);}//sort(v.begin(), v.end(),cmp);不是排序//reverse(v.begin(), v.end());double sum = 0;/*for (int i = 0; i < v.size(); i++){sum += sum1(v, i, v.size() - 1);}*//*vector<double> vv;for (int i = 0; i < v.size(); i++){if (i == 0){vv.push_back(v[i]);}elsevv.push_back(v[i] * (i+1) + vv[i - 1]);估计有精度损失,其实这个跟下面的思路一样}*/for (int i = 0; i < v.size(); i++){sum += v[i]*(n-i)*(i+1);//找出元素出现的规律即可}printf("%.2f", sum);return 0;}
- 浙大PAT甲级 1104
- PAT甲级1104
- PAT 甲级
- PAT 甲级 1104 sum of Number Segments
- PAT甲级 A1025.PAT RANKING
- PAT 甲级 1025 PAT Ranking
- PAT(甲级)1003
- PAT(甲级)1004
- PAT(甲级)1005
- PAT(甲级)1006
- PAT(甲级)1007
- PAT(甲级)1008
- PAT(甲级)1009
- PAT(甲级)1010
- PAT(甲级)1011
- PAT(甲级)1012
- PAT(甲级)1013
- PAT(甲级)1014
- 【Android开发—智能家居系列】(四):UDP通信发送指令
- 【一步步学OpenGL 25】-《Skybox天空盒子》
- 将开源项目导入到自己工程中出现Error:(1, 1)
- Theano深度学习笔记(三)多层感知器
- linux系统磁盘分区以及建立一个swap文件增加虚拟内存
- PAT甲级1104
- web服务如何调试https请求
- c语言判断一个数是否为素数
- 立方尾不变(简单算法)
- ZCMU-1812-K好数
- linux 笔记day03(补充版)
- 剖析为什么在多核多线程程序中要慎用volatile关键字?
- Android系统所有可申明权限(原文)
- leetcode 344 Reverse String