求助为什么没进主函数
  • 板块灌水区
  • 楼主codingluogu
  • 当前回复14
  • 已保存回复14
  • 发布时间2024/9/7 10:16
  • 上次更新2024/9/7 13:15:24
查看原帖
求助为什么没进主函数
480497
codingluogu楼主2024/9/7 10:16
#include<bits/stdc++.h>
using namespace std;
int n,q,x,y,w,d,v,xx=1,yy=1,score=0;
struct dian{
	int x;
	int y;
	int w;
}; 
bool cmp1(dian a,dian b){
	if(a.x!=b.x){
		return a.x<b.x; 
	}else{
		return a.y<b.y;
	}
}
bool cmp2(dian a,dian b){
	if(a.y!=b.y){
		return a.y<b.y; 
	
	}else{
		return a.x<b.x;
	}
}	
int g[200010],k[200010];
int main(){
	cout<<1;
	dian h[200010];
	dian s[200010];
	cin>>n>>q;
	for(int i=1;i<=n;i++){
		cin>>x>>y>>w;
		h[i].x=x;
		h[i].y=y;
		h[i].w=w;
		s[i].x=x;
		s[i].y=y;
		s[i].w=w;
	}
	sort(h+1,h+n+1,cmp1);
	sort(s+1,s+n+1,cmp2);
	for(int i=1;i<=n;i++){
		if(g[h[i].x]==0){
			g[h[i].x]=i;
		}
		if(k[s[i].y]==0){
			k[s[i].y]=i;
		}		
	}
	for(int i=1;i<=q;i++){
		cin>>d>>v;
		if(d==0){
			for(int j=k[y];s[j].y==y;j++){
				if(s[j].x>x&&s[j].x<=x+v){
					score+=s[j].w;
				}
			}
			xx+=v;
		}
		if(d==1){
			for(int j=g[x];h[j].x==x;j++){
				if(h[j].y>y&&h[j].y<=y+v){
					score+=h[j].w;
				}	
			}
			y+=v;
		}
		if(d==2){
			for(int j=k[y];s[j].y==y;j++){
				if(s[j].x>=x-v&&s[j].x<x){
					score+=s[j].w;
				}
			}
			x+=v;
		}
		if(d==3){
			for(int j=g[x];h[j].x==x;j++){
				if(h[j].y>=y-v&&h[j].y<=y){
					score+=h[j].w;
				}
			}
			x+=v;
		}
	}
	cout<<score<<'\n';
	return 0;
}
2024/9/7 10:16
加载中...