解题思路

不是正解。。

先对于每一个位置,求出这一个位置的极高,例如对于7而言,每一个位置的极高为0,1,2,3,2,1,00,1,2,3,2,1,00,1,2,3,2,1,0,对于8而言,每一个位置的极高为0,1,2,3,3,2,1,00,1,2,3,3,2,1,00,1,2,3,3,2,1,0;

设f[i][j]f[i][j]f[i][j]表示到第i个位置,高度为j的方案数,如果当前位置被推倒,
则f[i][j]=f[i−1][j−1]+f[i−1][j]+f[i−1][j+1]f[i][j]=f[i-1][j-1]+f[i-1][j]+f[i-1][j+1]f[i][j]=f[i−1][j−1]+f[i−1][j]+f[i−1][j+1].
对于知道当前位置的高度时,上式所有的j=a[i];j=a[i];j=a[i];

要开滚动数组,否则会炸。。

(正解:数论题,我可能会吗??)


代码

#pragma GCC optimize(3,"Ofast","inline")
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm>
#include<iomanip>
#include<cmath>
using namespace std;const int mod=1e9+7;
int n,t,tt,a[20010];
long long f[2][10010];int h(int x)
{if(x<(n/2+1))return x-1;return n-x;
}int main(){freopen("brick.in","r",stdin);freopen("brick.out","w",stdout);scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);}f[0][0]=1;for(int i=1;i<=n;i++){t=h(i);tt=h(i-1);if(a[i]!=-1){if(a[i]<=t){f[1][a[i]]+=f[0][a[i]];if(a[i]>=1)f[1][a[i]]+=f[0][a[i]-1];if(a[i]+1<=tt)f[1][a[i]]+=f[0][a[i]+1];if(i%10==0)f[1][a[i]]%=mod;}}else{for(int j=0;j<=t;j++){f[1][j]+=f[0][j];if(j>=1)f[1][j]+=f[0][j-1];if(j+1<=tt)f[1][j]+=f[0][j+1];if(i%10==0)f[1][j]%=mod;}}memcpy(f[0],f[1],sizeof(f[1]));memset(f[1],0,sizeof(f[1]));}printf("%lld",f[0][0]%mod);
}

(纪中)3505. 积木【DP】相关推荐

  1. 2020.2.5普及C组 Hank比赛【纪中】【DP】

    DP是我致命的弱点,但CSP-J怎会不考DP?( ▼-▼ ) #include<iostream> #include<cmath> #include<cstdio> ...

  2. 从零开始的纪中生活(7.11~7.22)

    文章目录 Day 0 早上 下午 晚上 Day 1 早上 下午 晚上 题解链接 Day 2 早上 下午 晚上 题解链接 Day 3 早上 下午 晚上 题解链接 Day 4 早上 下午 晚上 题解链接 ...

  3. 2019纪中暑假游记+总结

    Travels总篇\texttt{Travels总篇}Travels总篇 7/4\texttt{7/4}7/4 下午才去纪中,早上就一大早和同学出去玩,看了蜘蛛侠然后到3点多才出发. 因为走南沙大桥所 ...

  4. 欢乐纪中A组周六赛【2019.5.18】

    前言 重返纪中之日,又是被虐之时 成绩 JJJ表示初中,HHH表示高中后面加的是几年级 RankRankRank PersonPersonPerson ScoreScoreScore AAA BBB ...

  5. 纪中2019(上)游记+总结

    目录之下 文章目录 目录之下 游记之下 Day−1Day-1Day−1 Day0Day0Day0 Day1Day1Day1 Day2Day2Day2 Day3Day3Day3 Day4Day4Day4 ...

  6. 学习手记(2018/7/14~2018/7/18)——快乐纪中

    2018/7/14:普通的纪中一天 儿子兄弟表示法 将一颗多叉树转换为二叉树的方法,左子节点连原树的第一个儿子,右子节点连原树的右边的兄弟 适用范围:树形dp 数位dp常见方法 状态压缩 分类讨论 记 ...

  7. 纪中在家培训总结(2020.2.1~2020.2.24)

    前言 因为新型冠状病毒(疫情情况)的原因,纪中培训改为在家培训,一天的进度变成了两天甚至三天的进度QAQ,但我还是想说:武汉加油!中国加油! 这次培训总结没啥好写,请勿嘲讽 正文 Day 0(2020 ...

  8. 纪中培训总结(2019年9月4~13日)

    Day0(4号) 今天来到纪中,收拾了一下行李,然后来到机房,老师讲了一下规则,然后刷题去了 Day1(5号) 早上起来去吃了个早餐,喝了瓶奶,然后来到机房,发现巨佬都已经到了,然后等待着比赛,比赛开 ...

  9. 纪中国庆10.5做题小结

    纪中国庆10.5做题小结 T1:教主的花园 T2:教主泡嫦娥 T3:保镖排队 T4:教主的别墅 T1:教主的花园 Description [问题背景] LHX教主最近总困扰于前来膜拜他的人太多了,所以 ...

  10. PKUWC2019纪中游记

    day-4 晚上考完化学被告知要停课训练 半喜半忧吧,可以为冬令营做准备,写不了寒假作业 day-3 早起训练,但估计在比赛时还是睡了至少1个小时,只会暴力 只改出了一题,还有一道分治fft在拖 da ...

最新文章

  1. autoburn eMMC hacking
  2. php根据IP获取所有地,腾讯IP API
  3. nextcloud 中文乱码解决方案
  4. 计算机网络——因特网的接入技术
  5. 求解最长回文子串----Manacher 算法
  6. myeclipse每次保存编译全部_Fuchsia编译运行指南
  7. 哲学经典名句[zt]
  8. Codeforces Round #FF (Div. 2):Problem A - DZY Loves Hash
  9. java sqlite 密码保护_密码保护SQLite数据库 . 可能吗?
  10. linux 随机函数,Linux系统产生随机数方法
  11. java生成zipf分布_用于文本生成的Java中的Zipf定律 – 太慢了
  12. (15,7)循环码的编译码方法
  13. Linux Bridge的IP NAT细节探析-填补又一坑的过程
  14. oracle 执行计划耗时,oracle各种执行计划优缺点
  15. 2021年全国职业院校技能大赛(中职组)网络安全竞赛试题(1)详细解析教程
  16. python爬虫知乎图片_python 爬取知乎图片
  17. SaaS产品项目实施流程
  18. java便签_localStorage实现便签小程序
  19. 推荐一款免费的数据库管理工具,比Navicat还要好用,功能还很强大
  20. PrintStream和PrintWriter

热门文章

  1. 【华为云】python调用华为云API,获取token值
  2. 信息学奥赛一本通高手训练1682:最小字典序
  3. JavaWeb-过滤器Filter学习(三)实现用户的自动登录与IP黑名单过滤
  4. 更改服务器进bios修改启动项,bios设置修改开机启动项的方法
  5. python seek_Python 文件 seek() 方法
  6. Ubuntu 16.04 系统装机、编译环境配置及代码编译过程小结
  7. TeamCity VS Jenkins:选择正确的CI / CD工具
  8. 请画出使用mapreduce对英文句子_英文写作中有哪些常见的标点符号问题?小心你的essay会被教授diss不专业...
  9. Dubbo概述及架构图
  10. leetcode每日一题-字符串中的第一个唯一字符