当前位置: 首页 > news >正文

SD 一轮集训 day1 lose

 

     神TM有是结论题,我讨厌结论题mmp。

    杨氏矩阵了解一下(建议去维基百科)。

    反正就是推柿子,使劲推,最后写起来有一点小麻烦,但是在草稿纸(然鹅我木有啊)上思路清晰的话还是没问题的。

 

#include<cstdio>
#include<cctype>
#include<algorithm>
#define ll long long
using namespace std;
const int maxn=2000000,ha=1e9+7;

inline int read(){
	int x=0; char ch=getchar();
	for(;!isdigit(ch);ch=getchar());
	for(;isdigit(ch);ch=getchar()) x=x*10+ch-'0';
	return x;
}

inline int add(int x,int y){ x+=y; return x>=ha?x-ha:x;}
inline void ADD(int &x,int y){ x+=y; if(x>=ha) x-=ha;}

inline int ksm(int x,int y){
	int an=1;
	for(;y;y>>=1,x=x*(ll)x%ha) if(y&1) an=an*(ll)x%ha;
	return an;
}

int jc[maxn+5],qz[maxn+5],hz[maxn+5];
int A,B,C,D,T,ans,MX,MY;

inline void init(){
	jc[0]=qz[0]=hz[0]=1;
	for(int i=1;i<=maxn;i++){
		jc[i]=jc[i-1]*(ll)i%ha;
		qz[i]=qz[i-1]*(ll)ksm(i,i)%ha;
	}
	
	for(int i=1;i<=maxn;i++) hz[i]=hz[i-1]*(ll)jc[i]%ha;
}

inline int gethz(int x,int len){
	if(!len) return 1;
    return hz[x+len-1]*(ll)ksm(hz[x-1]*(ll)ksm(jc[x-1],len)%ha,ha-2)%ha;
}

inline int Get(int x,int y,int derta){
	if(x>y) swap(x,y);

	if(!x) return 1;
	
	int now=qz[x+derta]*(ll)ksm(qz[derta]*(ll)ksm(jc[x+derta]*(ll)ksm(jc[derta],ha-2)%ha,derta)%ha,ha-2)%ha;
	now=now*(ll)ksm(jc[y+derta]*(ll)ksm(jc[x+derta],ha-2)%ha,x)%ha*(ll)gethz(y+derta+1,x-1)%ha;
	return now;
}

int main(){
	init();
	
	T=read();
	while(T--){
		A=read(),B=read(),C=read(),D=read();
		A-=B-1,C-=D-1,MX=min(A,C),MY=min(B,D);
		
		if((A>C&&B<D)||(A<C&&B>D))
		    ans=Get(A+C-MX*2,MY,0)*(ll)Get(MX,B+D-MY*2,0)%ha*(ll)Get(MX,MY,A+C+B+D-MX*2-MY*2)%ha;
        else ans=Get(A+C-MX,B+D-MY,0);
        
		ans=jc[A*(ll)B+C*(ll)D-MX*(ll)MY]*(ll)ksm(ans,ha-2)%ha;
		
		printf("%d\n",ans);
	}
	
	return 0;
}

  

转载于:https://www.cnblogs.com/JYYHH/p/9160574.html

相关文章:

  • BZOJ3675: [Apio2014]序列分割(斜率优化)
  • ubuntu16.04下安装aria2
  • Linear Regression with PyTorch
  • JavaScript -- 45 经典技巧以及注意点
  • mybatits
  • win7x64下的redis安装与使用
  • 【Revit API】FamilyInstance、FamilySymbol、Family的寻找关系
  • 「日常训练」 Soldier and Number Game (CFR304D2D)
  • 变量的经典
  • 从cookies 获取token
  • python - Linux C调用Python 函数
  • IIS 7 应用程序池自动回收关闭的解决方案
  • FullScreenPopNavigationController
  • tp5多条件查询
  • 本地电脑与远程服务器之间不能复制粘贴解决方法
  • 【技术性】Search知识
  • docker python 配置
  • js作用域和this的理解
  • Lsb图片隐写
  • mongodb--安装和初步使用教程
  • MYSQL 的 IF 函数
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • python学习笔记-类对象的信息
  • text-decoration与color属性
  • ubuntu 下nginx安装 并支持https协议
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 从0实现一个tiny react(三)生命周期
  • 计算机常识 - 收藏集 - 掘金
  • 码农张的Bug人生 - 见面之礼
  • 面试遇到的一些题
  • 判断客户端类型,Android,iOS,PC
  • 实现菜单下拉伸展折叠效果demo
  • 实现简单的正则表达式引擎
  • 双管齐下,VMware的容器新战略
  • 微信开放平台全网发布【失败】的几点排查方法
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 为视图添加丝滑的水波纹
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • linux 淘宝开源监控工具tsar
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (javascript)再说document.body.scrollTop的使用问题
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (过滤器)Filter和(监听器)listener
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (力扣)1314.矩阵区域和
  • (三)mysql_MYSQL(三)
  • (转) Android中ViewStub组件使用
  • (转)visual stdio 书签功能介绍
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)