专栏文章

题解:P13421 [COCI 2012/2013 #6] DOBRI

P13421题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mio6t7i0
此快照首次捕获于
2025/12/02 14:18
3 个月前
此快照最后确认于
2025/12/02 14:18
3 个月前
查看原文
简单思路:
1.对于每个位置 i(从第4个开始),检查 A[i] 是否等于前面任意三个数的和
2.使用三重循环来检查所有可能的组合
3.如果找到满足条件的组合,就计数加1
话不多说,直接上代码
CPP
#include<bits/stdc++.h>
using namespace std;
int main() {
    int n,s=0;
    cin>>n;
    vector<int> a(n+1);  // 使用下标1到n
    for(int i=1;i<=n;i++) cin>>a[i];
    for(int i=4;i<=n;i++){    // 从第4个元素开始检查(前3个不可能是好元素)
        bool f=0;
		for(int x=1;x<i;x++){        // 检查所有可能的三个数的组合(都在i前面)
            for(int y=1;y<i;y++){      //使用三重循环来尝试所有可能的三个数字的组合
                for(int z=1;z<i;z++){
                    if (a[x]+a[y]+a[z]==a[i]){
                        f=1;
                        break;
                    }
                }
                if(f==1) break;
            }
            if (f==1) break;
        } 
        if(f==1) s++;
    }
    cout<<s<<endl;
    return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...