考拉

从前,在一片美丽的树林里,居住着一只可爱的小考拉。一天,小狐狸在OJ上刷题的时候遇到了这样一个问题:

给定一个NM列的网格,请在每一格上填上+1或-1,使得每行和每列的数的乘积都等于-1。求方案数。

小狐狸不会做于是找到了小考拉。小考拉也不会做。你能帮助他么?

输入

有多组数据。输入数据第一行包含T为数据组数。

下面T行每行依次包含两个整数NM

输出

输出T行每行一个整数,为方案数。注意方案数可能很大。

样例输入

2

2 3

2 2

样例输出

0

2

数据范围

对于20%的数据有1 ≤ N, M ≤ 5

对于100%的数据有1 ≤ N, M ≤ 100, 1 ≤ T ≤ 10

一开始就往动归方面想。

但情况好多,于是写了个简单搜索程序,打了下面的表。

1

2

3

4

5

6

7

8

1

1

0

1

0

1

0

1

0

2

0

2

0

8

0

32

0

128

3

1

0

16

0

256

0

4096

4

0

8

0

512

0

32768

0

5

1

0

256

0

66536

0

6

0

32

0

32768

0

7

1

0

4096

0

8

0

128

然后发现全都是2的次方,于是把表转化为下面

1

2

3

4

5

6

7

8

1

0

1

0

1

0

1

0

1

2

1

1

1

3

1

5

1

7

3

0

1

4

1

8

1

12

4

1

3

1

9

1

15

1

5

0

1

8

1

16

1

6

1

5

1

15

1

7

0

1

12

1

8

1

7

 

不难看出,对于x=y=n 则 表2[x,y] = (n-1)^2。且对于x+y=2n 的数,其值都和 表2[n,n] 有关系 。所以就有了递归关系式。

 

这题还要用到高精度。最后的结果是个非常大的数。我一开始高精度数组开100,爆了;开到1000,又爆了;直到开到5000才没爆。

 

做是做出来了,但是不知道原因。。这大概就是考试时做动归题目的策略。

                                              

正解:

考虑前N-1行M-1列随便填,那么第N行的前M-1列所有位置唯一确定,第M列的前N-1行所有位置也唯一确定。

如右图。

这时分四种情况:

N为奇数,M为奇数,则区域2的格子的乘积等于的区域1的乘积,区域3的乘积同样等于的区域1的乘积,而区域四的乘积等于区域2的乘积等于区域3的乘积,于是此时答案唯一。

N为奇数,M为偶数,则区域2的格子的乘积等于的区域1的乘积,区域3的乘积却等于的区域1的乘积,此时区域2的乘积不等于区域3的乘积,无解。

N为偶数,M为偶数,同理可知解唯一。

N为偶数,M为奇数,同理可知无解。

综上可知,若NM奇偶性相同则答案为2(N-1)*(M-1),否则答案为0。

var
 t,n,m,k,o,key,oo,i,j:longint;
 a:array[0..5000]of longint;

procedure cheng;
var
 g,i:longint;
begin
 g:=0;
 for i:=5000 downto a[0] do
  begin
   a[i]:=a[i]+a[i]+g;
   g:=a[i] div 10;
   a[i]:=a[i] mod 10;
  end;
 if g<>0 then
   begin
   dec(a[0]);
   a[a[0]]:=g;
   end;
end;

begin
 assign(input,'koala.in');
 assign(output,'koala.out');
 reset(input);
 rewrite(output);
 read(t);
 while t>0 do
  begin
  dec(t);
  read(n,m);
  k:=m+n;
  if k mod 2<>0 then begin writeln(0); continue; end;
  o:=k div 2-1;
  key:=o*o;
  o:=o+1;
  if (o=n)or(o=m) then oo:=key
                  else oo:=key-abs(o-m)*abs(o-m);

fillchar(a,sizeof(a),0);
  a[5000]:=1;
  a[0]:=5000;
  while oo>0 do
   begin
   cheng;
   dec(oo);
   end;
  i:=1;
  for j:=a[0] to 5000 do write(a[j]);
  writeln;
  end;
  close(input);
  close(output);
end.5

考拉nbsp;PASCALnbsp;解题报告相关推荐

  1. 小红书竞品分析_小红书与网易考拉 竞品分析报告

    先说结论: 目标:提升用户信任感→盈利 1) 产品迭代方向一:加强电商模块的运营 a) 增加商品界面的买家评价或讨论区. b) 买家评价和讨论区更能让用户在买之前向已购买用户清晰.准确.简单.直观地了 ...

  2. 小红书竞品分析_小红书与网易考拉海购竞品分析报告

    近几年来,国内电商在政策利好形势下纷纷兴起,经过数轮洗牌,已然处于相对稳定的局面.有天猫国际.网易考拉海购.京东全球购等依靠大型集团公司的综合性跨境电商平台,也有小红书.唯品会等在激烈竞争中生存下来的 ...

  3. hdu 2049 不容易系列之(4)——考新郎 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2049 写这篇解题报告时 我真的很气愤 对自己又一次犯下低级错误改了两个小时 int型的数据居然用%I6 ...

  4. [蓝桥杯解题报告]第十届蓝桥杯大赛省赛(软件类)真题C++A组 Apare_xzc

    蓝桥杯第十届省赛软件类C++A组解题报告 Apare_xzc 2020/2/13 考生须知 A. 平方和(5分) 分析: 这个题就是简单的模拟.只要循环一遍,判断每个数是否含有2019,然后平方相加即 ...

  5. 解题报告(十八)数论题目泛做(Codeforces 难度:2000 ~ 3000 + )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  6. 解题报告(三)多项式求值与插值(拉格朗日插值)(ACM / OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  7. 解题报告(五)组合计数(ACM / OI)超高质量题解

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  8. POJ 2800 垂直直方图 解题报告

    POJ 2800 垂直直方图 解题报告 编号:2800   考查点:简单计算题 思路: 用gets()读入4行数据,然后按字符统计,显示的时候有点小处理即可. 提交情况: 感觉POJ的测试数据有点骗人 ...

  9. 百度之星初赛(1)解题报告

    超级赛亚ACMer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  10. 拓荒会员电商“无人区”,考拉海购能否拿下“新船票”?

    文 | 陈小江 来源 | 螳螂财经(ID:TanglangFin) 考拉海购"变"了. 近日,考拉海购宣布战略升级--在现有跨境业务基础上All in会员电商.这是考拉融入阿里经济 ...

最新文章

  1. 层次聚类python_用python绘制层次聚类图
  2. 折腾的人生......
  3. linux查看samba目录的配额,问Samba中一个共享目录,怎么限制其容量大小?不是用户级quota!!...
  4. 【工业】工业控制博客汇总
  5. [leetcode] 746.使用最小花费爬楼梯
  6. epoll反应堆模型代码
  7. python循环中的else_python 循环中else的简单示例
  8. redis配置mysql缓存_Redis做mysql的缓存服务器
  9. linux主机添加discuz伪静态规则,Discuz! X2.5论坛win主机与linux主机伪静态设置方法...
  10. overflow鼠标拖拽显示_[翻译] 从零开始的 .Net Shell 扩展教程 (四) - Shell 拖拽处理程序
  11. thinkphp页面请求时间超过40S报404错误解决办法
  12. 成长中不可或缺的是信仰(转载)
  13. 小程序学习笔记(7)-使用小程序的组件构建UI界面
  14. 潦草字体在线识别_想要知道某些字是什么字体?帮助你以最快的方式识别
  15. 一维搜索进退法c语言程序,基于c语言黄金分割法优化设计.doc
  16. 为什么一线互联网公司的校招高薪都是算法类,工程岗校招不配拥有高薪吗?
  17. stm32 uv5打开uv4工程错误
  18. video标签 或 微软云 azure-media-player 禁止在iphone safari中默认全屏播放
  19. vb ajax提交post,使用jQuery AJAX将JS数组传递给VB.Net post
  20. 谷歌浏览器打包扩展程序(记录扩展程序根目录)

热门文章

  1. 短视频创业,如何在技术上节省100万启动资金?
  2. XP系统 mscorsvw.exe进程 占CPU资源 开机加载网络连接很慢 解决方法
  3. thinkphp5 layui分页样式
  4. Python简单版本flappy_bird
  5. 晓黑板显示服务器开小差是啥问题,晓黑板怎样写作文
  6. 计算机桌面黑屏有鼠标,win7系统启动黑屏只有显示鼠标指针怎么办(图文)
  7. python远程访问服务器获取文件
  8. 计算机垃圾桶桌面,电脑桌面比垃圾桶还乱?一分钟轻松快速整理你的电脑桌面...
  9. MT【217】韦达定理应用
  10. 风道设计独特,外观简约时尚,安钛克DF 700 Flux机箱体验