2 条题解

  • -1
    @ 2025-2-19 17:18:27

    标题

    思路

    对 len>2 的区间进行操作是没有意义的,因为可以转为多次对len=2的区间进行操作。

    所以我们只需要考虑当下,每次a[i]会受到上一次操作的影响增加 b[i-1]-a[i-1],遍历进行这些操作,最后判断a[n]是否等于b[n] 即可。

    解题方法

    复杂度

    时间复杂度:

    添加时间复杂度, 示例: O(n)O(n)

    空间复杂度:

    添加空间复杂度, 示例: O(n)O(n)

    Code

    #include <bits/stdc++.h>
    using namespace std;
    using ll =long long;
    const int maxn=1e5+5;
    int n;
    ll a[maxn],b[maxn];
    void solve()
    {
    	cin>>n;
    	for(int i=1;i<=n;i++)cin>>a[i];
    	for(int i=1;i<=n;i++)
    	{
    		cin>>b[i];
    		a[i]+=b[i-1]-a[i-1];
    	}
    	if(a[n]==b[n])cout<<"Yes\n";
    	else cout<<"No\n";
    }
    int main()
    {
    	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    	int t;
    	cin>>t;
    	while(t--)
    	{
    		solve();
    	}
    	return 0;
    }
    

    「TAOI-3」终有一天,飞向水平线的彼方

    信息

    ID
    111
    时间
    3000ms
    内存
    512MiB
    难度
    3
    标签
    递交数
    786
    已通过
    155
    上传者