一个厨师出售1~6种不同的食物,每种食物都需要使用各自的特殊厨具,厨师的灶台最多只能同时摆放3种厨具,所以厨师决定空间不够时就更换最久没使用过的厨具。每种食物烹饪都需要15分钟,更换一次厨具需要6分钟。请计算按点单顺序完成输入的点单列表所需时间。
输入描述
每行一个数字,1~6代表6种订单,7代表结束
输出描述
一个数字,代表厨师需要的总时间
示例1
输入
2
2
5
6
4
2
4
6
5
2
3
3
3
3
4
6
1
5
1
1
7
输出
354
// 本题为考试多行输入输出规范示例,无需提交,不计分。 #include33 机器人大赛#include using namespace std; int main(){ int x[3] = {}, cur = 0; int a; int res = 0; while (cin>>a) { if (a == 7) { break; } int flag = 0; for (int i = 0; i < 3; i++) { if (x[i] == a) { flag = 1; break; } } res += 15; if (!flag) { res += 6; } for (int i = 1; i >= 0; i--) { if (x[i] != a) x[i+1] = x[i]; } x[0] = a; } //第一次不需要不需要更换厨具 for (int i = 0; i < 3; i++) if (x[i]) { res -= 6; } cout << res; return 0; }
小明参加机器人大赛,比赛的场地是一个n*m的方块。
现在规定,机器人从左上角出发,前往右下角。因为时间紧张,小明只设计出了最简单的智能算法,他的机器人只会向下或者向右。
小明现在想知道,一共有多少种方案能达到终点?
输入描述
输入的第一行是两个整数n, m (1<=n,m<=10)
接下来的n行,每行m个数字
数字只会是0或者1
0代表可以通过,1代表障碍物
数据保证起点终点一定是0
输出描述
一个正整数ans,表示方案数
数据随机生成,且保证答案不超过2^31
示例1
输入
5 5
0 1 0 0 0
0 1 0 0 0
0 1 0 0 0
0 1 0 0 0
0 0 0 0 0
输出
1
示例2
输入
10 10
0 0 0 0 0 0 1 0 1 0
0 1 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 1 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 1 0 0 1
0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0
输出
3463
// 本题为考试多行输入输出规范示例,无需提交,不计分。 #include#include using namespace std; int n, m, a[11][11]; int dp[11][11]; int main(){ cin >> n >> m; for (int i = 0 ; i < n ; i++) { for (int j = 0 ; j < n; j++) { cin >> a[i][j]; } } dp[0][0] = 1; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (a[i][j] == 1) continue; if (i > 0 && a[i-1][j] == 0) { dp[i][j] += dp[i-1][j]; } if (j > 0 && a[i][j-1] == 0) { dp[i][j] += dp[i][j-1]; } } } cout << dp[n-1][m-1]; return 0; }



