题目背景

十年。十年前。天空的蔚蓝,云彩的舒软。我,怎么会认识你。洁白的,洁白的,十年前。我无法忘却。终究是小时候的约定。记忆被困在冻土里,有时我不认识那天的我。难道一切,都锁在心里面了吗?

题目描述

一条君的项链弄丢了,或许还躺在学校草坪里的某处,那条项链系着他珍藏的一把锁。千棘虽然不情愿,但是也必须帮忙找,因为这起事大概是她造成的。

学校草坪可以看作N×M的格子。一条从左上角(1,1),千棘从右下角(n,m)开始寻找。每个时刻,一条会选择一个他自己没有找过的某块草坪开始找,(他应该不知晓千棘有没有找过这块草坪)。千棘也这么做。但是,同一时刻,一条和千棘不能在同一个格子里,不然他们会发生口角。

历史的车轮已经留下辙迹,未来的迷一般的花园却绚丽绛紫、怦然心动。是宇宙幽默的必然,还是人类甜涩的多情。总之,他们想知道,这样的搜寻方案,有多多少少呢。

输入输出格式

输入格式:

第一行两个整数N,M,表示草坪的长和宽。

输出格式:

一行一个正整数Ans,表示方案数,除以23333的余数。

输入输出样例

输入样例#1:

2 2
输出样例#1:

18
样例解释:
一条:(1,1)-(1,2)-(2,1)-(2,2) 千棘:(2,2)-(1,1)-(1,2)-(2,1)
一条:(1,1)-(1,2)-(2,1)-(2,2) 千棘:(2,2)-(2,1)-(1,1)-(1,2)
一条:(1,1)-(1,2)-(2,1)-(2,2) 千棘:(2,2)-(2,1)-(1,2)-(1,1)
一条:(1,1)-(1,2)-(2,2)-(2,1) 千棘:(2,2)-(1,1)-(2,1)-(1,2)
一条:(1,1)-(1,2)-(2,2)-(2,1) 千棘:(2,2)-(2,1)-(1,1)-(1,2)
一条:(1,1)-(1,2)-(2,2)-(2,1) 千棘:(2,2)-(2,1)-(1,2)-(1,1)
一条:(1,1)-(2,1)-(1,2)-(2,2) 千棘:(2,2)-(1,1)-(2,1)-(1,2)
一条:(1,1)-(2,1)-(1,2)-(2,2) 千棘:(2,2)-(1,2)-(1,1)-(2,1)
一条:(1,1)-(2,1)-(1,2)-(2,2) 千棘:(2,2)-(1,2)-(2,1)-(1,1)
一条:(1,1)-(2,1)-(2,2)-(1,2) 千棘:(2,2)-(1,1)-(1,2)-(2,1)
一条:(1,1)-(2,1)-(2,2)-(1,2) 千棘:(2,2)-(1,2)-(1,1)-(2,1)
一条:(1,1)-(2,1)-(2,2)-(1,2) 千棘:(2,2)-(1,2)-(2,1)-(1,1)
一条:(1,1)-(2,2)-(1,2)-(2,1) 千棘:(2,2)-(1,1)-(2,1)-(1,2)
一条:(1,1)-(2,2)-(1,2)-(2,1) 千棘:(2,2)-(1,2)-(2,1)-(1,1)
一条:(1,1)-(2,2)-(1,2)-(2,1) 千棘:(2,2)-(2,1)-(1,1)-(1,2)
一条:(1,1)-(2,2)-(2,1)-(1,2) 千棘:(2,2)-(1,1)-(1,2)-(2,1)
一条:(1,1)-(2,2)-(2,1)-(1,2) 千棘:(2,2)-(1,2)-(1,1)-(2,1)
一条:(1,1)-(2,2)-(2,1)-(1,2) 千棘:(2,2)-(2,1)-(1,2)-(1,1)
共计18种
说明

对于30%的数据,n≤2011,m≤1000;

对于100%的数据,1≤n≤20114820163637,1≤m≤201205201610。

★啊阿 淡淡浮现脑海不确定的记忆

★仅是轮廓却充满着荆棘的样子

★紧紧束缚内心

巧克力便当还是兔子沙盒。

Thanks for viewing this problem.

出题人:S_H_Y

思路:首先要明確一個問題,由於一條和千棘是二次人物或其他各種神奇的原因,他們的移動方式是瞬移。。。

然後問題就可以轉化為求一條的全部搜索路線每條各自對應的錯排列的總和。

由於第一個搜索點是確定的,所以一條的全部搜索路線a=(n*m-1)!。

由於千棘的第一個搜索點也是確定的,所以每一條一條的搜索路線對應的錯排數b=f[n*m-1]=f[n*m-1]+(f[n*m-1]+1)*(n*m-2)。(這個式子是要一路推過來的)

另外,還需要惡心的高精技巧,而且還要取mod。

額呵呵,根據式子,如果m*n>mod,輸出0即可,不用太在意n*m爆空間的問題了,高精也可以水一點了。

然而水不過,so。。。

代碼實現:

 #include<cstdio>
#include<iostream>
using namespace std;
const int mod=;
long long n,m;
int yt=,qj[],ans;
int main(){
cin>>n>>m;qj[]=;
if(n>mod||m>mod||n*m>mod||n*m==){printf("0\n");return ;}//特判一下。
if(m*n==){printf("1\n");return ;}//特判一下。
for(int i=;i<=n*m-;i++){yt*=i;yt%=mod;}
for(int i=;i<=n*m;i++) qj[i]=(qj[i-]+qj[i-])*(i-)%mod;
ans=(yt*qj[n*m])%mod;
printf("%d\n",ans);
return ;
}

內心崩潰,無以言說。

题目来源:洛谷

放课后的约定 by:S_H_Y的更多相关文章

  1. $NOIp$前的日常

    嗯,一想到没准今年\(NOIp\)之后就要退役了,觉得没准这篇博客就是我OI史上的绝唱了-- \(hhh\),希望不会这样. \(12.4\) 退役了是真的233-- 居然感到一身轻松啊qwqwq \ ...

  2. im协议设计选型【转】

    一.im协议的分层设计所谓“协议”是双方共同遵守的规则,例如:离婚协议,停战协议.协议有语法.语义.时序三要素.(1)语法:即数据与控制信息的结构或格式(2)语义:即需要发出何种控制信息,完成何种动作 ...

  3. SFC游戏列表(维基百科)

    SFC游戏列表 日文名 中文译名 英文版名 发行日期 发行商 スーパーマリオワールド 超级马里奥世界 Super Mario World 1990年11月21日 任天堂 エフゼロ F-Zero F-Z ...

  4. DLL中调用约定和名称修饰(一)

    DLL中调用约定和名称修饰(一) 调用约定(Calling Convention)是指在程序设计语言中为了实现函数调用而建立的一种协议.这种协议规定了该语言的函数中的参数传送方式.参数是否可变和由谁来 ...

  5. Delphi调用约定

    Register Calling Convention Ojbect Pascal的默认调用约定为register,寄存器调用约定会将前三个参数依次放入eax,edx,ecx,返回值是eax(根据类型 ...

  6. __cdecl __stdcall __fastcall之函数调用约定讲解

    首先讲解一下栈帧的概念: 从逻辑上讲,栈帧就是一个函数执行的环境:函数参数.函数的局部变量.函数执行完后返回到哪里等等. 实现上有硬件方式和软件方式(有些体系不支持硬件栈) 首先应该明白,栈是从高地址 ...

  7. struts2基于Convention插件的约定映射使用

    一.首先说明一点:所谓的基于Convention插件的约定优于配置的使用,并不是严格意义上的零配置,struts.xml文件并不能完全舍弃. 获得Convention插件功能,所必需的jar包有:|a ...

  8. 读书笔记 effective c++ Item 51 实现new和delete的时候要遵守约定

    Item 50中解释了在什么情况下你可能想实现自己版本的operator new和operator delete,但是没有解释当你实现的时候需要遵守的约定.遵守这些规则并不是很困难,但是它们其中有一些 ...

  9. Effective Java 第三版——10. 重写equals方法时遵守通用约定

    Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...

随机推荐

  1. iOS如何生成.a文件

    首先来谈谈为何要使用.a文件 Objective-c语言有.h .m 文件组成.静态库可以将 .m文件封装成一个.a文件,第三方应用程序只需要拿到这个.a文件和代码对应的.h文件即可使用静态库中封装的 ...

  2. C语言中最常用的三种输入输出函数scanf()、printf()、getchar()和putchar()

    本文给大家介绍C语言中最常用的三种输入输出函数scanf().printf().getchar()和putchar(). 一.scanf()函数格式化输入函数scanf()的功能是从键盘上输入数据,该 ...

  3. STM32之GPIO端口位带操作

    #ifndef __SYS_H #define __SYS_H #include "stm32f10x.h" //位带操作 //把“位带地址+位序号”转换别名地址宏 #define ...

  4. office2013不能正常使用

    感觉非常卡一样 还不能显示内容 工具栏也点不动   这个应该是Office硬件图形加速惹得祸,解决办法: 文件>选项>高级>显示,找到“禁用硬件图形加速”在前面打勾,关闭再打开就OK ...

  5. python抓取性感尤物美女图

    由于是只用标准库,装了python3运行本代码就能下载到多多的美女图... 写出代码前面部分的时候,我意识到自己的函数设计错了,强忍继续把代码写完. 测试发现速度一般,200K左右的下载速度,也没有很 ...

  6. 同是url参数传进来的值,String类型就用getAttribute获取不到,只能用getParameter获取,而int就两个都可以这是为什么?

    这是因为int的属性是id,这是在被放到modeldriver中的user所具有的属性,传递过来的参数如果和user的属性重名,struts2的有类似beanutil之类的工具会自动封装参数,这时候用 ...

  7. JavaScript之document对象使用

    1.document 对象常用的有三种: A.document.getElementById:通过html元素的Id,来获取html对象.适用于单个的html元素. B.document.getEle ...

  8. 将byte[]数组数据转换为图片用于预览显示

    假如服务器返回给你的图片信息是byte[] 然后你需要将起转换成图片显示到你的view中去: 按以下的步骤 1.将获取的byte数组保存 假如为temp[]; 2.将temp[]转化为bitmap,你 ...

  9. iOS System Services

    System Services is a singleton class to gather all available information about a device. Over 75 met ...

  10. HDU5441 Travel 并查集

    http://acm.hdu.edu.cn/showproblem.php?pid=5441 无向图,n个点,m条带权边,q次询问,给出数值d,点a可以到点b当且仅当存在一条路线其中最大的权值不超过d ...