(纪中)3505. 积木【DP】
解题思路
不是正解。。
先对于每一个位置,求出这一个位置的极高,例如对于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】相关推荐
- 2020.2.5普及C组 Hank比赛【纪中】【DP】
DP是我致命的弱点,但CSP-J怎会不考DP?( ▼-▼ ) #include<iostream> #include<cmath> #include<cstdio> ...
- 从零开始的纪中生活(7.11~7.22)
文章目录 Day 0 早上 下午 晚上 Day 1 早上 下午 晚上 题解链接 Day 2 早上 下午 晚上 题解链接 Day 3 早上 下午 晚上 题解链接 Day 4 早上 下午 晚上 题解链接 ...
- 2019纪中暑假游记+总结
Travels总篇\texttt{Travels总篇}Travels总篇 7/4\texttt{7/4}7/4 下午才去纪中,早上就一大早和同学出去玩,看了蜘蛛侠然后到3点多才出发. 因为走南沙大桥所 ...
- 欢乐纪中A组周六赛【2019.5.18】
前言 重返纪中之日,又是被虐之时 成绩 JJJ表示初中,HHH表示高中后面加的是几年级 RankRankRank PersonPersonPerson ScoreScoreScore AAA BBB ...
- 纪中2019(上)游记+总结
目录之下 文章目录 目录之下 游记之下 Day−1Day-1Day−1 Day0Day0Day0 Day1Day1Day1 Day2Day2Day2 Day3Day3Day3 Day4Day4Day4 ...
- 学习手记(2018/7/14~2018/7/18)——快乐纪中
2018/7/14:普通的纪中一天 儿子兄弟表示法 将一颗多叉树转换为二叉树的方法,左子节点连原树的第一个儿子,右子节点连原树的右边的兄弟 适用范围:树形dp 数位dp常见方法 状态压缩 分类讨论 记 ...
- 纪中在家培训总结(2020.2.1~2020.2.24)
前言 因为新型冠状病毒(疫情情况)的原因,纪中培训改为在家培训,一天的进度变成了两天甚至三天的进度QAQ,但我还是想说:武汉加油!中国加油! 这次培训总结没啥好写,请勿嘲讽 正文 Day 0(2020 ...
- 纪中培训总结(2019年9月4~13日)
Day0(4号) 今天来到纪中,收拾了一下行李,然后来到机房,老师讲了一下规则,然后刷题去了 Day1(5号) 早上起来去吃了个早餐,喝了瓶奶,然后来到机房,发现巨佬都已经到了,然后等待着比赛,比赛开 ...
- 纪中国庆10.5做题小结
纪中国庆10.5做题小结 T1:教主的花园 T2:教主泡嫦娥 T3:保镖排队 T4:教主的别墅 T1:教主的花园 Description [问题背景] LHX教主最近总困扰于前来膜拜他的人太多了,所以 ...
- PKUWC2019纪中游记
day-4 晚上考完化学被告知要停课训练 半喜半忧吧,可以为冬令营做准备,写不了寒假作业 day-3 早起训练,但估计在比赛时还是睡了至少1个小时,只会暴力 只改出了一题,还有一道分治fft在拖 da ...
最新文章
- autoburn eMMC hacking
- php根据IP获取所有地,腾讯IP API
- nextcloud 中文乱码解决方案
- 计算机网络——因特网的接入技术
- 求解最长回文子串----Manacher 算法
- myeclipse每次保存编译全部_Fuchsia编译运行指南
- 哲学经典名句[zt]
- Codeforces Round #FF (Div. 2):Problem A - DZY Loves Hash
- java sqlite 密码保护_密码保护SQLite数据库 . 可能吗?
- linux 随机函数,Linux系统产生随机数方法
- java生成zipf分布_用于文本生成的Java中的Zipf定律 – 太慢了
- (15,7)循环码的编译码方法
- Linux Bridge的IP NAT细节探析-填补又一坑的过程
- oracle 执行计划耗时,oracle各种执行计划优缺点
- 2021年全国职业院校技能大赛(中职组)网络安全竞赛试题(1)详细解析教程
- python爬虫知乎图片_python 爬取知乎图片
- SaaS产品项目实施流程
- java便签_localStorage实现便签小程序
- 推荐一款免费的数据库管理工具,比Navicat还要好用,功能还很强大
- PrintStream和PrintWriter
热门文章
- 【华为云】python调用华为云API,获取token值
- 信息学奥赛一本通高手训练1682:最小字典序
- JavaWeb-过滤器Filter学习(三)实现用户的自动登录与IP黑名单过滤
- 更改服务器进bios修改启动项,bios设置修改开机启动项的方法
- python seek_Python 文件 seek() 方法
- Ubuntu 16.04 系统装机、编译环境配置及代码编译过程小结
- TeamCity VS Jenkins:选择正确的CI / CD工具
- 请画出使用mapreduce对英文句子_英文写作中有哪些常见的标点符号问题?小心你的essay会被教授diss不专业...
- Dubbo概述及架构图
- leetcode每日一题-字符串中的第一个唯一字符