Description

Flowey 是一朵能够通过友谊颗粒传播LOVE 的小花.它的友谊颗粒分为两种,
圆粒的和皱粒的,它们依次排列组成了一个长度为2m 的序列.对于一个友谊颗
粒的序列,如果存在1<=i

Solution

这道题60分很好打,设f[i][j][k]为做到第i个,偶数的圆粒和皱粒的个数,然后转移,注意要看到只有前偶后奇才能转移就很简单了。
我们发现,最麻烦的东西就是上面的限制。
要要求数量不超过2n,那么我们就在前面强制放n个偶数(圆粒+皱粒=n),然后只要后面失配的奇数可以被前面的这个n匹配完,那么就合法。
因为我们是一奇一偶的加进来的,所以我们偶数的个数一定不会减少(进来一对奇偶,匹不匹配成功偶数总数都为n),那么就是圆粒还是皱粒的问题了,设f[i][j]表示做到第i个偶数圆粒为j个,那么偶数皱粒为n-j个,所以就可以像60分一样强行转移。
但是我们发现会算重,有很多情况都会算重。
但是我们发现当j=0的时候是不会算重的,因为这时的序列是唯一确定的,所以我们还要多记录一维表示是否已经达到过0。
但是我们可以发现第一个奇数是不会被前面的偶数匹配到的,所以这个奇数和另一个偶数的颜色随意,最后答案*4

Code

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
#define fo(i,a,b) for(i=a;i<=b;i++)
#define min(a,b) (a<b?a:b)
using namespace std;
typedef long long ll;
const int maxn=3007;
ll i,j,k,l,t,n,m,ans,mo,u,v;
ll f[maxn][maxn][2];
int main(){freopen("friend.in","r",stdin);freopen("friend.out","w",stdout);scanf("%lld%lld%lld",&n,&m,&mo);n--,m--;fo(i,1,n)f[0][i][0]=1;f[0][0][1]=1;fo(i,0,m-1){fo(j,0,n){f[i+1][j][0]=(f[i+1][j][0]+2*f[i][j][0])%mo;f[i+1][j][1]=(f[i+1][j][1]+2*f[i][j][1])%mo;f[i+1][j+1][0]=(f[i+1][j+1][0]+f[i][j][0])%mo;f[i+1][j+1][1]=(f[i+1][j+1][1]+f[i][j][1])%mo;if(j){if(j==1)f[i+1][j-1][1]=(f[i+1][j-1][1]+f[i][j][1]+f[i][j][0])%mo;else f[i+1][j-1][1]=(f[i+1][j-1][1]+f[i][j][1])%mo,f[i+1][j-1][0]=(f[i+1][j-1][0]+f[i][j][0])%mo;}}}fo(i,0,n)ans=(ans+f[m][i][1])%mo;printf("%lld\n",ans*4%mo);
}

【NOIP2017提高A组集训10.22】友谊相关推荐

  1. JZOJ5411. 【NOIP2017提高A组集训10.22】友谊 DP

    DescriptionFlowey 是一朵能够通过友谊颗粒传播LOVE 的小花.它的友谊颗粒分为两种, 圆粒的和皱粒的,它们依次排列组成了一个长度为2m 的序列.对于一个友谊颗 粒的序列,如果存在1& ...

  2. 【JZOJ5411】【NOIP2017提高A组集训10.22】友谊

    Description Flowey 是一朵能够通过友谊颗粒传播LOVE 的小花.它的友谊颗粒分为两种, 圆粒的和皱粒的,它们依次排列组成了一个长度为2m 的序列.对于一个友谊颗 粒的序列,如果存在1 ...

  3. JZOJ 5415. 【NOIP2017提高A组集训10.22】公交运输

    Description 城市中有一条长度为n的道路,每隔1的长度有一个公交车站,编号从0到n,学校在0号车站的位置.其中每个公交车站(除了n号车站)有两个属性ci和vi,代表从这个公交车站出发的公交车 ...

  4. JZOJ 5414. 【NOIP2017提高A组集训10.22】幸运值

    Description 校庆志愿者小Z在休息时间和同学们玩卡牌游戏.一共有n张卡牌,每张卡牌上有一个数Ai,每次可以从中选出k张卡牌.一种选取方案的幸运值为这k张卡牌上数的异或和.小Z想知道所有选取方 ...

  5. 【JZOJ 5410】【NOIP2017提高A组集训10.22】小型耀斑

    Description Uthuso 的核反应失控了,她在地灵殿释放了几颗大核弹.地灵殿可以看做一个大小为n*m 的矩阵.一颗大小为k 的核弹,对于任意一个与爆炸中心曼哈顿距离小于k 的地区,会造成( ...

  6. jzoj5410【NOIP2017提高A组集训10.22】小型耀斑

    题目 Description Uthuso 的核反应失控了,她在地灵殿释放了几颗大核弹.地灵殿可以看做一个大小为n*m 的矩阵.一颗大小为k 的核弹,对于任意一个与爆炸中心曼哈顿距离小于k 的地区,会 ...

  7. 【JZOJ5410】【NOIP2017提高A组集训10.22】小型耀斑

    Description Uthuso 的核反应失控了,她在地灵殿释放了几颗大核弹.地灵殿可以看做一个大小为n*m 的矩阵.一颗大小为k 的核弹,对于任意一个与爆炸中心曼哈顿距离小于k 的地区,会造成( ...

  8. JZOJ 5410. 【NOIP2017提高A组集训10.22】小型耀斑

    Description Uthuso 的核反应失控了,她在地灵殿释放了几颗大核弹.地灵殿可以看做一个大小为n*m 的矩阵.一颗大小为k 的核弹,对于任意一个与爆炸中心曼哈顿距离小于k 的地区,会造成( ...

  9. [JZOJ5410]【NOIP2017提高A组集训10.22】小型耀斑 (口胡)

    Description Uthuso 的核反应失控了,她在地灵殿释放了几颗大核弹.地灵殿可以看做一个大小为n*m 的矩阵.一颗大小为k 的核弹,对于任意一个与爆炸中心曼哈顿距离小于k 的地区,会造成( ...

最新文章

  1. S210-设置通过X130-Profinet口进行配置
  2. Python编程基础:第十六节 元组Tuple
  3. Flickr 的开发者的 Web 应用优化技巧(转)
  4. php 获取请求,PHP 扩展 - 获取请求信息
  5. CPU为什么是方形而不是圆形的?
  6. c语言中的无符号字节,C语言之有符号数和无符号数
  7. 如何访问Server 2008R2的共享不输入密码
  8. aws rds监控慢sql_AWS RDS SQL Server –启动新的数据库实例
  9. 我从别人那里偷学的前端调试小技巧(浏览器篇)
  10. 理解Android编译命令
  11. Linux 多进程学习
  12. 是的,我开通了小密圈
  13. linux7mysql集群_linux下mysql集群搭建
  14. swiftyjson_是时候放弃SwiftyJSON了
  15. 那些年我们常用的软件
  16. 比特大陆10万机位备战丰水期,詹克团接管矿业重担
  17. 联邦学习模型鲁棒性攻击
  18. AR/VR---沉浸式体验
  19. 小布语音下载安装_oppo语音助手小布小冰安装包app
  20. Golang sort包Search函数源码分析

热门文章

  1. 【计几】曼哈顿距离与切比雪夫距离
  2. 2021-04-20 #CentOS7.4普通用户编写脚本利用lftp进行sftp数据传输
  3. 解决LinuxMysql1045错误ERROR 1045 (28000): Accessdenied for user ‘root‘@‘localhost‘ (using password: YES)
  4. 【ACWing】260. 买票
  5. word里插入图片打印不模糊
  6. 深受程序员鄙视的外行语录
  7. 静态SQL和动态SQL
  8. linux 之JDK安装
  9. Rosetta如何连接隐私计算与AI?道翰天琼认知智能机器人平台API接口大脑为您揭秘-1。
  10. 特朗普当选总统后 科技CEO们急忙安抚员工