【HDOJ6146】Pokémon GO(DP,计数)
题意:一个2*n的矩阵,从任意一格出发,不重复且不遗漏地走遍所有格子,问方案数 mo 10^9+7
n<=10000
思路:因为OEIS搜出来的两个数列都是错误的,所以考虑DP
设B[i]为2*i的矩阵,从其中一个角开始走,走遍整个矩阵最后回到同一列的方案数
经打草稿+猜结论得到B[i]=2^(i-1)
设A[i]为2*i的矩阵,从其中一个角开始走,走遍整个矩阵不一定要回到同一列的方案数
推导后得A[i]=B[i]+2*A[i-1]+4*A[i-2]
因为有四个角,所以ANS=a[n]*4
继续考虑从中间开始走的方案数,可以先往左回来再往右,也可以先往右再往左
ANS=ANS+8*sigma(a[i-1]*b[n-i]+b[i-1]*a[n-i])
const mo=;
var a,b:array[..]of int64;
cas,v,i,n:longint;
ans:int64; begin
assign(input,'hdoj6146.in'); reset(input);
assign(output,'hdoj6146.out'); rewrite(output);
b[]:=;
for i:= to do b[i]:=b[i-]* mod mo;
a[]:=; a[]:=;
for i:= to do a[i]:=(b[i]+*a[i-] mod mo+*a[i-] mod mo) mod mo;
readln(cas);
for v:= to cas do
begin
readln(n);
if n= then
begin
writeln();
continue;
end;
ans:=a[n]* mod mo;
for i:= to n- do
ans:=(ans+*(a[i-]*b[n-i] mod mo+b[i-]*a[n-i] mod mo)) mod mo;
writeln(ans);
end;
close(input);
close(output);
end.
【HDOJ6146】Pokémon GO(DP,计数)的更多相关文章
- HDU 6146 Pokémon GO DP,计数
		题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6146 题意:~ 解法:原题..http://blog.csdn.net/y990041769/arti ... 
- 动态规划(DP计数):HDU 5116 Everlasting L
		Matt loves letter L.A point set P is (a, b)-L if and only if there exists x, y satisfying:P = {(x, y ... 
- 【POJ1952】逢低吸纳 dp+计数
		题目大意:给定一个有 N 个数的序列,求其最长下降子序列的长度,并求出有多少种不同的最长下降子序列.(子序列各项数值相同视为同一种) update at 2019.4.3 题解:求最长下降子序列本身并 ... 
- Tetrahedron(Codeforces Round #113 (Div. 2) + 打表找规律 + dp计数)
		题目链接: https://codeforces.com/contest/166/problem/E 题目: 题意: 给你一个三菱锥,初始时你在D点,然后你每次可以往相邻的顶点移动,问你第n步回到D点 ... 
- HDU 4055 The King’s Ups and Downs(DP计数)
		题意: 国王的士兵有n个,每个人的身高都不同,国王要将他们排列,必须一高一矮间隔进行,即其中的一个人必须同时高于(或低于)左边和右边.问可能的排列数.例子有1千个,但是最多只算到20个士兵,并且20个 ... 
- HDU 4055 Number String(DP计数)
		题意: 给你一个含n个字符的字符串,字符为'D'时表示小于号,字符为“I”时表示大于号,字符为“?”时表示大小于都可以.比如排列 {3, 1, 2, 7, 4, 6, 5} 表示为字符串 DIIDID ... 
- 动态规划(DP计数):HDU 5117 Fluorescent
		Matt, a famous adventurer who once defeated a pack of dire wolves alone, found a lost court. Matt fi ... 
- [HAOI2010]最长公共子序列(LCS+dp计数)
		字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列.令给定的字符序列X=“x0,x1,…,xm-1”,序列Y=“y0,y1,…,yk-1”是X ... 
- F - Tmutarakan Exams URAL - 1091 -莫比乌斯函数-容斥 or DP计数
		F - Tmutarakan Exams 题意 : 从 < = S 的 数 中 选 出 K 个 不 同 的 数 并 且 gcd > 1 .求方案数. 思路 :记 录 一 下 每 个 数 的 ... 
- hdu-6415 Rikka with Nash Equilibrium  dp计数题
		http://acm.hdu.edu.cn/showproblem.php?pid=6415 题意:将1~n*m填入一个n*m矩阵 问只有一个顶点的构造方案. 顶点的定义是:某数同时是本行本列的最大值 ... 
随机推荐
- Codeforces Round #138 (Div. 1)
			A 记得以前做过 当时好像没做对 就是找个子串 满足括号的匹配 []最多的 开两个栈模拟 标记下就行 #include <iostream> #include<cstring> ... 
- 通过 DBCA 工具创建Oracle数据库
			DBCA 是 Oracle 提供的一款图形化界面工具,用来帮助数据库管理员快速.直观地创建数据库,避免了繁琐复杂的 SQL命令操作. 使用 DBCA创建数据库的过程如下. (1)依次 单击“开始 ”→ ... 
- PHP + ORACLE 远程连接数据库环境配置
			在ORACLE官网下载instantclient_11_2,放在D盘 把instantclient_11_2目录下的所有dll文件复制到C:\Windows\SysWOW64 和 D:\phpS ... 
- Android动态权限申请
			Android系统中,目前Dangerous级别的权限都需要动态申请.步骤如下: 1.AndroidManfiest.xml中申明需要的动态权限 <?xml version="1.0& ... 
- Android开发——蓝牙
			---恢复内容开始--- 前言 孤芳自赏,一揽芳华: 人情冷暖,自在人心: 登高远眺,望步止前: 喜笑言开,欺人骗己. 上篇文章介绍了基本的蓝牙使用,书写的demo也不是很完善,希望各位大神能够改正. ... 
- R in action读书笔记(5)-第七章:基本统计分析
			7.1描述性统计分析 > vars<-c("mpg","hp","wt") > head(mtcars[vars]) ... 
- org.springframework.orm.hibernate4.support.OpenSessionInterceptor
			/* * Copyright 2002-2014 the original author or authors. * * Licensed under the Apache License, Vers ... 
- spring mvc 配置运行报错误
			四月 06, 2015 10:51:18 上午 org.apache.catalina.startup.VersionLoggerListener log 信息: Server version: Ap ... 
- python 需求分析
			第三章: 需求分析需求分析任务: ??? 功能分析性能分析EG: 相应时间.主存容量.磁盘容量.安全性.等可靠性和可用性出错处理需求系统发现错误时采取的行动,主要在系统关键部分设置接口需求用户接口.硬 ... 
- ALTER TRIGGER - 修改一个触发器的定义
			SYNOPSIS ALTER TRIGGER name ON table RENAME TO newname DESCRIPTION 描述 ALTER TRIGGER 改变一个现有触发器的属性. RE ... 
