这场比赛演的逼真,感谢队友不杀之恩

总结:卡题了赶紧换,手上捏着的题尽快上机解决

http://csustacm.com:4803/

1113~1122

1113:六学家

题意:找出满足ai+aj=ak,i<k<j的个数

题解:用map将每个数映射一下n方暴力扫即可

代码:

#include<bits/stdc++.h>
#define fuck(x) cout<<#x<<" = "<<x<<endl;
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
#define ls rt<<1
#define rs rt<<1|1


typedef long long ll;
typedef long long LL;
const int maxn = 100086;
const int inf = 0x3f3f3f3f;
const int mod = 1e9 + 7;
using namespace std;
map<int, bool>mp[2008];
set<int>st;
int a[maxn];
int main() {

    int n;
    scanf("%d", &n);
    for(int i = 1; i <= n; i++) {
        scanf("%d", &a[i]);
    }

    for(int i = n; i >= 1; i--) {
        mp[i] = mp[i + 1];
        mp[i][a[i]] = true;
    }

    int ans = 0;
    for(int k = 1; k <= n; k++) {
        for(int l = k - 1; l >= 1; l--) {
            if(mp[k + 1][a[k] - a[l]]) {
                ans++;
                break;
            }
        }
    }
    printf("%d\n", ans);


    return 0;
}
View Code

相关文章:

  • 2022-12-23
  • 2022-01-09
  • 2019-03-06
  • 2021-11-13
  • 2021-10-04
  • 2021-11-16
  • 2022-01-13
  • 2021-12-21
猜你喜欢
  • 2022-12-23
  • 2021-12-18
  • 2021-05-12
  • 2021-07-07
  • 2022-12-23
相关资源
相似解决方案