题意

给定一个衰变期为k的粒子,依次穿过n个墙(从左到右),每次穿过一个墙,都会在运动的反方向生成一个衰变期为k -1 的粒子,这个粒子仍保持原来的衰变期和方向穿下一个墙,生成的粒子沿反方向穿墙。直到粒子的衰变期为1时不在生成粒子。
给定一个n和k输出最后所有的粒子数。
n <= 1000 k <=1000
样例

思路

根据时间复杂度,大概为O(nk)
所有根据复杂度每次枚举衰变期k来确定第i个墙和第i + 1之间的墙之间的的个数。这个个数可以表示为衰变期为k+1朝该方向粒子个数,可以按照最开始的方向枚举,每次操作之后因为反射,方向会相反
注意第一个墙在衰变期大于1时也会产生一个粒子这个粒子不在墙之间。

代码

#include<iostream>
#include<cstring>
#include<algorithm>using namespace std;
const int N = 1010,mod = 1e9 + 7;
int f[N][N];
int main(){int T;cin >> T;while(T--){memset(f,0,sizeof f);int n,k;scanf("%d%d",&n,&k);int res = 1;if(k > 1){res ++;for(int i = 1;i < n;i++){f[i][k - 1] = 1;res ++;}}int cnt = 1;for(int i = k - 2;i >= 1;i--){int ans = 0;if(cnt & 1)for(int j = 1;j < n;j++){f[j][i] = (ans + f[j][i + 1]) % mod;ans = (ans + f[j][i + 1]) % mod;res = (res + f[j][i])%mod;}elsefor(int j = n - 1;j >= 1;j--){f[j][i] = (ans + f[j][i + 1]) % mod;ans = (ans + f[j][i + 1]) % mod;res = (res + f[j][i])%mod;}cnt ++;}cout <<res << endl;}return 0;
}

CodeCraft-21 and Codeforces Round #711 (Div. 2) C. Planar Reflections相关推荐

  1. 思维dp ---- Codeforces Round #711 (Div. 2) - C. Planar Reflections[dp/记忆化搜索]

    题目链接 题目大意: 就是给你n个平面和一个寿命为k的衰变粒子.开始粒子从左向右飞行,粒子每经过一个平面就会产生一个副本粒子,这个副本粒子比原粒子的寿命少1,即为k-1,并且飞行方向是原粒子的反方向. ...

  2. 【Christmas Game】【CodeCraft-21 and Codeforces Round #711 (Div. 2)】【Nim-博弈】【树形DP】【拆分树】

    CodeCraft-21 and Codeforces Round #711 (Div. 2) Christmas Game Nim-博弈 树形DP 拆分树 牛客链接 https://ac.nowco ...

  3. CodeCraft-21 and Codeforces Round #711 (Div. 2) 题解

    先上链接CodeCraft-21 and Codeforces Round #711 (Div. 2) A: 从n开始往后找,不出几十个 一定能找到的,所以暴力就好了 void sovle(){cin ...

  4. CodeCraft-21 and Codeforces Round #711 (Div. 2)

    CodeCraft-21 and Codeforces Round #711 (Div. 2) 题号 题目 考点 A GCD Sum 签到,模拟 B Box Fitting 贪心 C Planar R ...

  5. 枚举 ---- Codeforces Round #711 (Div. 2) D. Bananas in a Microwave[枚举暴力+思维优化]

    题目链接 题目大意: 就是你有n次操作,每次操作给你三个参数:ti,xi,yit_i,x_i,y_iti​,xi​,yi​. 如果ti==1t_i == 1ti​==1你可以进行k=k+xik=k+x ...

  6. CodeCraft-21 and Codeforces Round #711 (Div. 2) D. Bananas in a Microwave 优化暴力

    传送门 文章目录 题意: 思路: 题意: 有nnn个时间,每个时间给你两个操作,第一个是k=k+xk=k+xk=k+x,第二个是k=k∗xk=k*xk=k∗x,且可以执行[0,y][0,y][0,y] ...

  7. CodeCraft-21 and Codeforces Round #711 (Div. 2)ABC题解

    A题,至少能找到个gcd=2gcd=2gcd=2的,只要222个都是偶数就行 #include<bits/stdc++.h> using namespace std; typedef lo ...

  8. CodeCraft-21 and Codeforces Round #711 (Div. 2) B. Box Fitting(优先队列)

    传送门 题意: 给一堆高度为1的小块,长度为2的次幂,给一个长度为W(W肯定大于小块的最大长度)的框,要求把所有小块放进框内,求出最小高度,保证小块不旋转也不重叠: 思路: 用优先队列(默认是大根堆) ...

  9. 2021-03-30 CodeCraft-21 and Codeforces Round #711 (Div. 2)

    这场比赛,只A了一道,暴露了我很多不足的地方. A. GCD Sum 题意:就是判断一个数和他所有位上的数加起来的值的gcd是否大于一,等于一就对当前数加1,直到两者的gcd大于一. #include ...

最新文章

  1. SAP MM 事务代码MI31之思考之续集
  2. qt5.6.3版本移植arm
  3. POJ 3281 -- Dining(最大流,拆点建图)
  4. flink on yarn模式出现The main method caused an error: Could not deploy Yarn job cluster问题排查+解决
  5. 一个男人逐渐变心的过程。。 | 今日最佳
  6. 全方位分析web前端如何进行性能优化
  7. 给Android程序员的一些面试建议,帮你突破瓶颈
  8. 程序员必读的10本经典书(含资源)建议收藏
  9. 小i机器人伴侣_【数据分析】2020年3月全国工业机器人产量统计数据分析
  10. 免费的Access数据库员工管理系统下载-IT技术网站 企业人员管理系统源码
  11. DIY的U盘量产CD-ROM做PE启动盘教程(银灿IS903-A4主控+东芝SLC颗粒)
  12. 游戏视频怎么录制,游戏录制软件哪个好
  13. Django项目实战——10—(修改地址前后端逻辑、删除地址前后端逻辑、设置默认地址、修改密码、虚拟机安装docker/FastDFS、电商-商品知识、首页广告数据库表分析、商品信息数据库表分析)
  14. js pug 代码_Pug 代码 Code
  15. Javasctipt面试题整理
  16. 360漏洞修复网管版小软件不错
  17. 传说中的b站mac客户端(支持M1芯片、适配Big Sur)-bilibili mac客户端
  18. 王垠受邀面试阿里 P9,被 P10 面跪后网上怒发文,惨打 325 的 P10 赵海平回应了!...
  19. 如何在PR软件中制作加速快进视频?
  20. 【UOS操作系统】dd刻录镜像

热门文章

  1. MATLAB双精度向下取整问比实际小1的问题
  2. 对话 | 汪玉对话周志华:深度学习理论探讨比应用滞后太多
  3. 包过滤防火墙配置和应用
  4. MongoDB这么牛??
  5. 今天我们去看《你的名字》了
  6. html5-表格练习题
  7. Bright Data Proxy和ClonBrowser浏览器,双重助力打造高效数据采集系统
  8. java毕业设计——基于JSP+mysql的图书馆借阅系统设计与实现(毕业论文+程序源码)——图书馆借阅系统
  9. Jmeter接口测试实战(一):Jmeter将测试结果写入到Excel中
  10. 机器人对话常用语模板_原来AI也可以如此简单!教你从0到1开发开源知识问答机器人...