现在的位置: 首页 > 综合 > 正文

藏妹子之处

2018年04月25日 ⁄ 综合 ⁄ 共 934字 ⁄ 字号 评论关闭
#include<iostream>
#include<cstdio>
#define mod 1000000007
using namespace std;
int n,m,mn,mx,tx[10001],ty[10001];
long long ans;
int main(){
	freopen("excel.in","r",stdin);
	freopen("excel.out","w",stdout);
	cin>>n>>m>>mn>>mx;
	for(int i=1;i<=n;i++)tx[i]=(n-i)*(i-1);
	for(int i=1;i<=m;i++)ty[i]=(m-i)*(i-1);
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++){
			if(2*(i+j)>=mn&&2*(i+j)<=mx)ans=(ans+(long long)tx[i]*ty[j]*6%mod)%mod;
		}
	cout<<ans<<endl;
}

第二题  藏妹子之处(excel)

问题描述:

今天CZY又找到了三个妹子,有着收藏爱好的他想要找三个地方将妹子们藏起来,将一片空地抽象成一个R行C列的表格,CZY要选出3个单元格。但要满足如下的两个条件:

(1)任意两个单元格都不在同一行。

(2)任意两个单元格都不在同一列。

选取格子存在一个花费,而这个花费是三个格子两两之间曼哈顿距离的和(如(x1,y1)和(x,y2)的曼哈顿距离为|x1-x2|+|y1-y2|)。狗狗想知道的是,花费在minT到maxT之间的方案数有多少。

答案模1000000007。所谓的两种不同方案是指:只要它选中的单元格有一个不同,就认为是不同的方案。

输入格式:

 一行,4个整数,R、C、minT、maxT。3≤R,C≤4000, 1≤minT≤maxT≤20000。

对于30%的数据,  3 ≤ R, C ≤ 70。

输出格式: 

 一个整数,表示不同的选择方案数量模1000000007后的结果。

输入输出样例:

输入样例

3 3 1 20000

 

3 3 4 7

 

4 6 9 12

7 5 13  18

 

4000 4000  4000  14000

输出样例

6

0

264

1212

859690013

 

                

 

抱歉!评论已关闭.