CodeCraft-21 and Codeforces Round #711 (Div. 2) C. Planar Reflections
题意
给定一个衰变期为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相关推荐
- 思维dp ---- Codeforces Round #711 (Div. 2) - C. Planar Reflections[dp/记忆化搜索]
题目链接 题目大意: 就是给你n个平面和一个寿命为k的衰变粒子.开始粒子从左向右飞行,粒子每经过一个平面就会产生一个副本粒子,这个副本粒子比原粒子的寿命少1,即为k-1,并且飞行方向是原粒子的反方向. ...
- 【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 ...
- CodeCraft-21 and Codeforces Round #711 (Div. 2) 题解
先上链接CodeCraft-21 and Codeforces Round #711 (Div. 2) A: 从n开始往后找,不出几十个 一定能找到的,所以暴力就好了 void sovle(){cin ...
- 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 ...
- 枚举 ---- 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 ...
- 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] ...
- CodeCraft-21 and Codeforces Round #711 (Div. 2)ABC题解
A题,至少能找到个gcd=2gcd=2gcd=2的,只要222个都是偶数就行 #include<bits/stdc++.h> using namespace std; typedef lo ...
- CodeCraft-21 and Codeforces Round #711 (Div. 2) B. Box Fitting(优先队列)
传送门 题意: 给一堆高度为1的小块,长度为2的次幂,给一个长度为W(W肯定大于小块的最大长度)的框,要求把所有小块放进框内,求出最小高度,保证小块不旋转也不重叠: 思路: 用优先队列(默认是大根堆) ...
- 2021-03-30 CodeCraft-21 and Codeforces Round #711 (Div. 2)
这场比赛,只A了一道,暴露了我很多不足的地方. A. GCD Sum 题意:就是判断一个数和他所有位上的数加起来的值的gcd是否大于一,等于一就对当前数加1,直到两者的gcd大于一. #include ...
最新文章
- SAP MM 事务代码MI31之思考之续集
- qt5.6.3版本移植arm
- POJ 3281 -- Dining(最大流,拆点建图)
- flink on yarn模式出现The main method caused an error: Could not deploy Yarn job cluster问题排查+解决
- 一个男人逐渐变心的过程。。 | 今日最佳
- 全方位分析web前端如何进行性能优化
- 给Android程序员的一些面试建议,帮你突破瓶颈
- 程序员必读的10本经典书(含资源)建议收藏
- 小i机器人伴侣_【数据分析】2020年3月全国工业机器人产量统计数据分析
- 免费的Access数据库员工管理系统下载-IT技术网站 企业人员管理系统源码
- DIY的U盘量产CD-ROM做PE启动盘教程(银灿IS903-A4主控+东芝SLC颗粒)
- 游戏视频怎么录制,游戏录制软件哪个好
- Django项目实战——10—(修改地址前后端逻辑、删除地址前后端逻辑、设置默认地址、修改密码、虚拟机安装docker/FastDFS、电商-商品知识、首页广告数据库表分析、商品信息数据库表分析)
- js pug 代码_Pug 代码 Code
- Javasctipt面试题整理
- 360漏洞修复网管版小软件不错
- 传说中的b站mac客户端(支持M1芯片、适配Big Sur)-bilibili mac客户端
- 王垠受邀面试阿里 P9,被 P10 面跪后网上怒发文,惨打 325 的 P10 赵海平回应了!...
- 如何在PR软件中制作加速快进视频?
- 【UOS操作系统】dd刻录镜像
热门文章
- MATLAB双精度向下取整问比实际小1的问题
- 对话 | 汪玉对话周志华:深度学习理论探讨比应用滞后太多
- 包过滤防火墙配置和应用
- MongoDB这么牛??
- 今天我们去看《你的名字》了
- html5-表格练习题
- Bright Data Proxy和ClonBrowser浏览器,双重助力打造高效数据采集系统
- java毕业设计——基于JSP+mysql的图书馆借阅系统设计与实现(毕业论文+程序源码)——图书馆借阅系统
- Jmeter接口测试实战(一):Jmeter将测试结果写入到Excel中
- 机器人对话常用语模板_原来AI也可以如此简单!教你从0到1开发开源知识问答机器人...