2 条题解

  • 1
    @ 2026-7-28 11:14:12

    数学乱搞就行了

    #include<iostream>
    #define ll long long
    using namespace std;
    ll a[1145141];
    ll mount[1145141];
    int main()
    {
    	freopen("rain.in","r",stdin);
    	freopen("rain.out","w",stdout);
    	ll n;cin>>n;
    	ll mountain_1=0;
    	for(ll i=1;i<=n;i++) cin>>a[i];
    	for(ll i=1;i<=n;i++){
    		if(i%2==1) mountain_1+=a[i];
    		else mountain_1-=a[i];
    	}
    	for(ll i=1;i<=n;i++)
    	{
    		if(i==1) mount[1]=mountain_1;
    		else mount[i]=a[i-1]*2-mount[i-1];
    		cout<<mount[i]<<" ";
    	}
    }
    
    • 0
      @ 2026-7-26 23:17:06

      数学题

      #include <bits/stdc++.h>
      
      using namespace std;
      
      #define ll long long
      #define ld long double
      #define inf 0x3f3f3f3f
      #define endl '\n'
      
      int n;
      ll a[100007];
      ll x[100007];
      
      int main(){
      	freopen("rain.in","r",stdin);
      	freopen("rain.out","w",stdout);
      
      	cin>>n;
      	for(int i=1;i<=n;i++) cin>>a[i];
      	
      	ll p = 2*a[1];
      	for(int i=2;i<=n;i++){
      		if(i%2==0) p-=2*a[i];
      		else p+=2*a[i];
      	}
      	p/=2; // x1
      	x[1]=p;
      	
      	for(int i=2;i<=n;i++) x[i]=2*a[i-1]-x[i-1];
      	for(int i=1;i<=n;i++) cout<<x[i]<<" ";
      
      	return 0;
      }
      
      • 1

      信息

      ID
      3583
      时间
      1000ms
      内存
      256MiB
      难度
      4
      标签
      (无)
      递交数
      71
      已通过
      32
      上传者