【寒假每日一题】洛谷 P6414 [COCI2014-2015#1] PROSJEK

    该文是一个关于数列操作的编程题,要求根据给定的数列b通过特定公式反推出数列a。程序使用C++编写,通过动态规划计算原始数列a的每个元素。输入包含数列b的长度和元素,输出是还原后的数列a。

    摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    题目链接:P6414 [COCI2014-2015#1] PROSJEK - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

    题目描述

    有一个数列 a,现在按照下列公式求出一个数列 b:

    给你数列 b,请求出数列 a。

    输入格式

    第一行一个整数 n ,表示数列 b 的长度。

    接下来一行 n 个整数,表示数列 b。

    输出格式

    一行 n 个整数,表示数列 a。

    样例 #1

    样例输入 #1

    1
    2

    样例输出 #1

    2

    样例 #2

    样例输入 #2

    4
    3 2 3 5

    样例输出 #2

    3 1 5 11

    样例 #3

    样例输入 #3

    5
    1 2 2 3 4

    样例输出 #3

    1 3 2 6 8

    提示

    样例输入输出 3 解释

    当数列 a = 1,3,2,6,8 时,数列 ,即 b = 1,2,2,3,4。

    数据规模与约定

    对于 100% 的数据,保证 1 <= n <= 100,1 <= ai,bi <= 10^9。

    说明

    本题总分 50 分。

    本题译自 Croatian Open Competition in Informatics 2014/2015 Contest #1 T1 PROSJEK。

    AC code:

    #include<iostream>
    #include<algorithm>
    #include<cmath>
    #include<vector>
    
    using namespace std;
    
    typedef long long ll;
    
    int main()
    {
    	ll n;
    	cin>>n;
    	vector<ll> a(n + 1),b(n + 1);
    	
    	for(ll i = 1 ; i <= n ; i ++)
    		cin>>b[i];
    	
    	a[1] = b[1];
    	
    	int sum = a[1];
    	for(int i = 2 ; i <= n ; i ++)
    	{
    		a[i] = b[i] * i - sum;
    		sum += a[i];
    	}
    	
    	for(int i = 1 ; i <= n ; i ++)
    		cout<<a[i]<<" ";
    	
    	return 0;
    }
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值
    程序员都在用的中文IT技术交流社区

    程序员都在用的中文IT技术交流社区

    专业的中文 IT 技术社区,与千万技术人共成长

    专业的中文 IT 技术社区,与千万技术人共成长

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    客服 返回顶部