比赛 2024暑期C班集训2 评测结果 EEETEEEEEE
题目名称 Vera 与现代艺术 最终得分 0
用户昵称 wdsjl 运行时间 4.705 s
代码语言 C++ 内存使用 197.50 MiB
提交时间 2024-07-02 11:13:22
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;

const int N = 5010;
long long mapp[N][N],a[N],b[N],n,q,mi[100],x[N],y[N],v[N],r[N],c[N],maxx,maxy;

int main(){
    freopen("modern.in","r",stdin);
    freopen("modern.out","w",stdout);
    mi[1]=1;
    int k=1;
    while(mi[k]*2<=1e18){
        mi[k+1]=mi[k]*2;
        k++;
    }
    scanf("%lld%lld",&n,&q);
    for(int i=1;i<=n;i++){
        scanf("%lld%lld%lld",&x[i],&y[i],&v[i]);
        a[i]=mi[upper_bound(mi+1,mi+1+k,x[i])-mi-1];
        b[i]=mi[upper_bound(mi+1,mi+1+k,y[i])-mi-1];
//        cout<<"a"<<a[i]<<"b "<<b[i]<<endl;
    }
    for(int i=1;i<=q;i++){
        scanf("%lld%lld",&r[i],&c[i]);
        maxx=max(maxx,r[i]);
        maxy=max(maxy,c[i]);
    }
    for(int i=1;i<=n;i++){
        for(int p=0;x[i]+a[i]*p<=maxx;p++){
            for(int q=0;y[i]+b[i]*q<=maxy;q++){
                mapp[x[i]+a[i]*p][y[i]+b[i]*q]+=v[i];
            }
        }
    }
//    for(int i=1;i<=maxx;i++){
//        for(int j=1;j<=maxy;j++){
//            cout<<mapp[i][j]<<" ";
//        }
//        cout<<endl;
//    }
    for(int i=1;i<=q;i++){
        printf("%lld\n",mapp[r[i]][c[i]]);
    }
    return 0;
}