40pts求救,闭关!!
查看原帖
40pts求救,闭关!!
1445252
ljy15208198577楼主2025/7/3 10:01
#include <bits/stdc++.h>
using namespace std;
#define int long long
struct Sticker{int x1,y1,x2,y2,p,xt,yt;}s[505];
bool cmp(Sticker a,Sticker b){return a.p>b.p;}
signed main(){
    int n,m,c,k,pa[505][505],nvd[505][505];
    cin>>n>>m>>c>>k;
    for(int i=0;i<k;i++)cin>>s[i].x1>>s[i].y1>>s[i].x2>>s[i].y2>>s[i].p>>s[i].xt>>s[i].yt;
    for(int i=0;i<c;i++)for(int j=0;j<c;j++)cin>>pa[i][j];
    for(int i=0;i<n;i++)for(int j=0;j<m;j++)nvd[i][j]=-1;
    sort(s,s+k,cmp);
    for(int i=0;i<k;i++){
        for(int x=s[i].x1-1;x<s[i].x2;x++){
            for(int y=s[i].y1-1;y<s[i].y2;y++){
                int nx=x-s[i].x1+1;
                int ny=y-s[i].y1+1;
                if(nvd[x][y]==-1 || nvd[x][y]<s[i].p)nvd[x][y]=pa[s[i].xt-1+nx][s[i].yt-1+ny];
            }
        }
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++)cout<<nvd[i][j]<<" ";
        cout<<endl;
    }
}
2025/7/3 10:01
加载中...