社区讨论

红温了,所以为什么阿

P1527[国家集训队] 矩阵乘法参与者 3已保存回复 2

讨论操作

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

当前回复
2 条
当前快照
1 份
快照标识符
@m2ecj3q2
此快照首次捕获于
2024/10/18 14:25
去年
此快照最后确认于
2024/10/18 14:46
去年
查看原帖
WA,0pts,修改标注处可AC,所以为什么阿
CPP
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=505,M=60005,inf=1145141919810;
ll n,m,a[N][N],cnt;
inline ll lowbit(ll x){
	return x&-x;
}
struct BIT{
	ll bit[N][N];



	void add(ll x,ll y,ll k){
		for(;x<=n;x+=lowbit(x))
			for(;y<=n;y+=lowbit(y))
				bit[x][y]+=k;
	}
	ll qsum(ll x,ll y){
		ll res=0;
		for(;x;x-=lowbit(x))
			for(;y;y-=lowbit(y))
				res+=bit[x][y];
		return res;
	}

/*
	void add(ll x,ll y,ll k){
		for(ll i=x;i<=n;i+=lowbit(i))
			for(ll j=y;j<=n;j+=lowbit(j))
				bit[i][j]+=k;
	}
	ll qsum(ll x,ll y){
		ll res=0;
		for(ll i=x;i;i-=lowbit(i))
			for(ll j=y;j;j-=lowbit(j))
				res+=bit[i][j];
		return res;
	}
*/


	ll qsub(ll a,ll b,ll c,ll d){
		return qsum(c,d)-qsum(c,b-1)-qsum(a-1,d)+qsum(a-1,b-1);
	}
}T;
struct que{
	ll sx,sy,tx,ty,k,id,t;
}q[(M+N*N)<<1],q1[(M+N*N)<<1],q2[(M+N*N)<<1];
ll ans[M];
void solve(ll l,ll r,ll L,ll R){//ansrange:l,r
	if(L>R)return;
	if(l==r){
		for(ll i=L;i<=R;i++)if(q[i].t){
			ans[q[i].id]=l;
		}
		return;
	}
	ll mid=(l+r)>>1,c1,c2;c1=c2=0;
	for(ll i=L;i<=R;i++){
		if(q[i].t){
			ll rk=T.qsub(q[i].sx,q[i].sy,q[i].tx,q[i].ty);
			if(rk>=q[i].k)q1[++c1]=q[i];
			else q[i].k-=rk,q2[++c2]=q[i];
		}else{
			if(q[i].k<=mid)q1[++c1]=q[i],T.add(q[i].sx,q[i].sy,1);
			else q2[++c2]=q[i];
		}
	}
	for(ll i=1;i<=c1;i++)if(!q1[i].t)T.add(q1[i].sx,q1[i].sy,-1);
	for(ll i=1;i<=c1;i++)q[L+i-1]=q1[i];
	for(ll i=1;i<=c2;i++)q[L+c1+i-1]=q2[i];
	solve(l,mid,L,L+c1-1);
	solve(mid+1,r,L+c1,R);
}
int main(){
	cin.tie(0)->sync_with_stdio(0);
	cin>>n>>m;
	for(ll i=1;i<=n;i++){
		for(ll j=1;j<=n;j++){
			cin>>a[i][j];
			q[++cnt]=(que){i,j,0,0,a[i][j],0,0};
		}
	}
	for(ll i=1,sx,sy,tx,ty,k;i<=m;i++){
		cin>>sx>>sy>>tx>>ty>>k;
		q[++cnt]=(que){sx,sy,tx,ty,k,i,1};
	}
	solve(0,1000000009,1,cnt);
	for(ll i=1;i<=m;i++)cout<<ans[i]<<'\n';
	return 0;
}

回复

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

正在加载回复...