在 MMORPG《最终幻想14》的副本“乐欲之所瓯博讷修道院”里,BOSS 机工士姆斯塔迪奥将会接受玩家的挑战。
你需要处理这个副本其中的一个机制:N×M 大小的地图被拆分为了 N×M 个 1×1 的格子,BOSS 会选择若干行或/及若干列释放技能,玩家不能站在释放技能的方格上,否则就会被击中而失败。
给定 BOSS 所有释放技能的行或列信息,请你计算出最后有多少个格子是安全的。
输入格式:
输入第一行是三个整数 N,M,Q (1≤N×M≤105,0≤Q≤1000),表示地图为 N 行 M 列大小以及选择的行/列数量。
接下来 Q 行,每行两个数 Ti,Ci,其中 Ti=0 表示 BOSS 选择的是一整行,Ti=1 表示选择的是一整列,Ci 为选择的行号/列号。行和列的编号均从 1 开始。
输出格式:
输出一个数,表示安全格子的数量。
输入样例:
5 5 3
0 2
0 4
1 3
输出样例:
12
解题思路:
1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 int x, y, m; 6 cin >> x >> y >> m; 7 bool **map=new bool*[y]; 8 for (int i = 0; i <= y; i++) 9 {10 map[i] = new bool[x];11 for (int k = 0; k <= x; k++)12 map[i][k] = 0; 13 }14 for (int i = 0; i < m; i++)15 {16 bool first;17 int num;18 cin >> first >> num;19 if (first == 1)//列,x 20 {21 for (int k = 1; k <= x; k++)22 map[num][k] = 1;23 }24 else25 {26 for (int k = 1; k <= y; k++)27 map[k][num] = 1;28 }29 }30 int sum = 0;31 for (int i = 1; i <= y; i++)32 {33 for (int k = 1; k <= x; k++)34 {35 if (map[i][k] == 0)36 sum++;37 }38 }39 cout << sum;40 return 0;41 }
原文链接:https://www.cnblogs.com/shenyuRin/p/17274577.html
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:L1-087 机工士姆斯塔迪奥*(使用C++动态数组new暴力实现) - Python技术站