嵊州普及Day6T3
题意:n个点,对于q个询问,有t秒及一个矩形的范围。在此矩形内的数每秒加1,若等于c,则下一秒变为0。
思路:t可能很大,%c+1就可以了。然后一个一个加起来就可以了。
见代码:
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int n,q,c,a[101][101],x,y,x2,y2,t,ans; bool flag[101][101]; int main() { freopen("sun.in.txt","r",stdin); freopen("sun.out.txt","w",stdout); cin>>n>>q>>c; for(int i=1;i<=n;i++) { cin>>x>>y; cin>>a[x][y]; flag[x][y]=true; } for(int j=1;j<=q;j++) { ans=0; cin>>t>>x>>y>>x2>>y2; t%=(c+1); for(int i=x;i<=x2;i++) for(int k=y;k<=y2;k++) { if(flag[i][k]==true) { int xx=a[i][k]+t; if(xx>c) xx-=c+1; ans+=xx; } } cout<<ans<<endl; } return 0; }