深圳福田站,弹簧机东莞网站建设,网站左侧悬浮导航,网页微信手机版单元格
题目大意#xff1a;
在一个RC的矩形中选三个点#xff0c;使他们行列各不同#xff0c;定义“费用”为#xff0c;这三个点之间的行列的差值的和#xff08;1,2和3,4费用是差值是#xff08;3-1#xff09;#xff08;4-2#xff09;224#xff09;#x…单元格
题目大意
在一个R×C的矩形中选三个点使他们行列各不同定义“费用”为这三个点之间的行列的差值的和1,2和3,4费用是差值是3-14-2224问差值不小于minT不大于maxT的三个点中选定的三个点不同的方案有多少种结果对1000000007取模
数据范围限制
3≤R,C≤4000, 1≤minT≤maxT≤20000
提示 解题思路
我们先定一个长为4i宽为4j的矩形如下图这三个点可以在它的边界上定义我们先固定一个点黑点然后另外两个点可以在另外两条边上定义不能在交点上这种情况的种数是(i-2)×(j-2)因为矩形有四个点所以乘上44×(i-2)×(j-2) 然后我们可以固定两个对顶点如图然后另外一个点可以在中间定义种数为(i-2)×(j-2),因为对顶点有两对所以有2×(i-2)×(j-2)种可能 合并前面两种则为6×(i-2)×(j-2),然后这种矩形在全图的个数可以从下图看出不要问我为什么用绿色因为我左边的CNH奆佬喜欢绿色,他的个数是四个行有两个三列有两个三相乘为4则为(R-i1)×(C-j1),总结一下就是6×(i-2)×(j-2)×(R-i1)×(C-j1),然后直接枚举i和j就行了 #includecstdio
#includeiostream
using namespace std;
long long n,m,maxx,minn,ans;
int main()
{scanf(%lld %lld %lld %lld,n,m,minn,maxx);for (long long i3;in;i)//枚举ifor (long long j3;jm;j)//枚举jif ((ij-2)*2maxx(ij-2)*2minn)//判断是否符合题意ans(ans6*(i-2)*(j-2)*(n-i1)*(m-j1))%1000000007;//代入公式取模printf(%lld,ans);//输出结果return 0;
}