躺平看日出 level
获赞
196
粉丝
42
关注
54
看过 TA
1300
湖北大学
2025
嵌入式软件工程师
IP属地:陕西
憨吧啦
私信
关注
编程2题 只会暴力,复杂度O(n*max_x*max_y),不知道能不能通过,求教// 在无限大的中国象棋棋盘中有n个炮,第i个炮的坐标是(xi,yi),攻击方式与中国象棋规则一致,每个炮只能攻击到间隔一个棋子的炮,不能打间隔两个及以上棋子的炮,请求出每个炮第一次能攻击到多少个炮。输入是:// 6// 0 0// 0 1// 0 2// 1 0// 2 0// 3 0// 输出是// 2// 0// 1// 1// 1// 1#include# include#include# define MAX_SIZE 1000bool cannon[MAX_SIZE][MAX_SIZE];int main(){typedef struct position {int x;int y;int result;} position_input;position_input input_canno[MAX_SIZE];int input_cannonnums;int max_x=0, max_y=0;scanf("%d", &input_cannonnums);for(int i=0; i max_x){max_x = input_canno[i].x;}if(input_canno[i].y > max_y){max_y = input_canno[i].y;}}for(int i=0; i=0; k--){if(cannon[k][y] == 1){for(int l=k-1; l>=0; l--){if(cannon[l][y] == 1){input_canno[i].result++;break;}}break;}}// 纵向for(int k=y+1; k<=max_y; k++){if(cannon[x][k] == 1){for(int l=k+1; l<=max_y; l++){if(cannon[x][l] == 1){input_canno[i].result++;break;}}break;}}for(int k=y-1; k>=0; k--){if(cannon[x][k] == 1){for(int l=k-1; l>=0; l--){if(cannon[x][l] == 1){input_canno[i].result++;break;}}break;}}}for(int i=0; i
投递美团等公司10个岗位
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务