社区讨论

暴力,目标75分,为什么只有10pts?

P2119[NOIP 2016 普及组] 魔法阵参与者 3已保存回复 2

讨论操作

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

当前回复
2 条
当前快照
1 份
快照标识符
@m1prp03l
此快照首次捕获于
2024/10/01 09:36
去年
此快照最后确认于
2025/11/04 18:25
4 个月前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
int n,m;
struct node{
    int num,vis;
};
node x[40005];
bool cmp(node x,node y){
    return x.num<y.num;
}
int mp[400005][5];
vector<int> s[400005];
int main(){
    // freopen("test.in","r",stdin);
    // freopen("test.out","w",stdout);
    cin>>n>>m;
    for (int i=1;i<=m;i++){
        cin>>x[i].num;
        x[i].vis=i;
        s[x[i].num].push_back(i);
    }
    stable_sort(x+1,x+m+1,cmp);
    for (int i=1;i<=m;i++){
        for (int j=i+1;j<=m;j++){
            if (x[i].num>=x[j].num) continue;
            if (x[j].num-x[i].num%2==1) continue;
            for (int k=j+1;k<=m;k++){
                if ((x[j].num-x[i].num)*3>=(x[k].num-x[j].num)){
                    continue;
                }
                if (x[j].num==x[k].num) continue;
                // for (int l=k+1;l<=m;l++){
                //     if (x[k].num==x[l].num) continue;
                //     if (x[j].num-x[i].num!=(x[l].num-x[k].num)*2) continue;
                //     mp[x[i].vis][1]++;
                //     mp[x[j].vis][2]++;
                //     mp[x[k].vis][3]++;
                //     mp[x[l].vis][4]++;
                // }
                int hi=(x[j].num-x[i].num)/2+x[k].num;//d
                if (s[hi].size()==0) continue;
                if (hi<=x[k].num) continue;
                if ((hi-x[k].num)*2!=(x[j].num-x[i].num)) continue;
                mp[x[i].vis][1]++;
                mp[x[j].vis][2]++;
                mp[x[k].vis][3]++;
                for (int is=0;is<s[hi].size();is++){
                    mp[s[hi][is]][4]++;
                }
                // printf("%d %d %d %d\n",x[i].vis,x[j].vis,x[k].vis,hi);
            }
        }
    }
    for (int i=1;i<=m;i++){
        for (int j=1;j<=4;j++){
            cout<<mp[i][j]<<" ";
        }
        cout<<endl;
    }
    return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...