博客
关于我
CodeForces - 545A Toy Cars
阅读量:638 次
发布时间:2019-03-14

本文共 1705 字,大约阅读时间需要 5 分钟。

需要找出所有在碰撞中没有翻转的车,并通过矩阵来确定每辆车的状态。为了高效解决这个问题,首先遍历矩阵中的每一个元素,根据条件判断每辆车是否翻转。然后按照条件记录所有好的车。最后,将这些车按顺序输出。

步骤解析:

  • 读取输入:获取输入数据,包括n和矩阵A。
  • 初始化结果数组:创建一个数组来记录每辆车的状态。
  • 遍历矩阵:逐个检查矩阵中的每个元素。
    • 对于A[i][j] = 0:双方均未翻转,两人皆为好车。
    • 对于A[i][j] = 1:i翻转,另一人好车。
    • 对于A[i][j] = 2:j翻转,i为好车。
    • 对于A[i][j] = 3:双方皆翻转,双方为好车。
  • 统计并输出结果:收集所有好车的索引,按照顺序输出数量和索引列表。
  • 代码示例:

    #include 
    int main() { int n; scanf("%d", &n); int a[1001][1001]; for (int i = 1; i <= n; ++i) { scanf("%d %d %d", &a[i][1], &a[i][2], &a[i][3]); } int good[1001]; int count = 0; for (int i = 1; i <= n; ++i) { for (int j = 1; j <= n; ++j) { if (i == j) continue; if (a[i][j] == 0) { good[i] = 1; good[j] = 1; count += 2; } else if (a[i][j] == 1) { good[i] = 1; count += 1; } else if (a[i][j] == 2) { good[j] = 1; count += 1; } else if (a[i][j] == 3) { good[i] = 1; good[j] = 1; count += 2; } } } int result_count = 0; for (int i = 1; i <= n; ++i) { if (good[i]) { result_count++; } } if (result_count == 0) { printf("0"); } else { printf("%d", result_count); printf(" "); for (int i = 1; i <= n; ++i) { if (good[i]) { printf("%d", i); if (i < n) printf(" "); } } } return 0;}

    代码解释:

    • 读取输入:首先读取n的值,然后读取每行的三个整数,存储在数组a中。
    • 初始化结果数组:good数组用于记录每辆车是否为好车,初始值为0。
    • 遍历每对i,j:
      • 如果i等于j,主对角线处理,但题目指出这些情况没有碰撞,所以跳过。
      • 根据矩阵中的不同值更新good数组。
    • 统计并输出结果:遍历good数组,统计好车数量并输出结果。

    通过以上步骤,可以高效地解决问题,找到所有在碰撞中没有被翻转的车,并按照要求输出结果。

    转载地址:http://ccxoz.baihongyu.com/

    你可能感兴趣的文章
    Mysql-丢失更新
    查看>>
    Mysql-事务阻塞
    查看>>
    Mysql-存储引擎
    查看>>
    mysql-开启慢查询&所有操作记录日志
    查看>>
    MySQL-数据目录
    查看>>
    MySQL-数据页的结构
    查看>>
    MySQL-架构篇
    查看>>
    MySQL-索引的分类(聚簇索引、二级索引、联合索引)
    查看>>
    Mysql-触发器及创建触发器失败原因
    查看>>
    MySQL-连接
    查看>>
    mysql-递归查询(二)
    查看>>
    MySQL5.1安装
    查看>>
    mysql5.5和5.6版本间的坑
    查看>>
    mysql5.5最简安装教程
    查看>>
    mysql5.6 TIME,DATETIME,TIMESTAMP
    查看>>
    mysql5.6.21重置数据库的root密码
    查看>>
    Mysql5.6主从复制-基于binlog
    查看>>
    MySQL5.6忘记root密码(win平台)
    查看>>
    MySQL5.6的Linux安装shell脚本之二进制安装(一)
    查看>>
    MySQL5.6的zip包安装教程
    查看>>