1 条题解

  • 0
    @ 2026-6-19 10:30:59

    📝 题目大意

    给定两个值为 0011 的整数 LLRR,分别表示左手和右手是否举起。要求判断:若只举左手则输出 Yes,若只举右手则输出 No,其他情况(双手都举或都不举)输出 Invalid

    💡 解题思路

    1. 题目分析L,R{0,1}L, R \in \{0, 1\},一共只有 2×2=42 \times 2 = 4 种可能情况,直接分类讨论即可。数据范围极小,无需任何优化。

    2. 算法推导:根据题意,结果完全由 (L,R)(L, R) 的取值决定:

      • (1,0)(1, 0):只举左手,想吃章鱼烧 → 输出 Yes
      • (0,1)(0, 1):只举右手,不想吃 → 输出 No
      • (1,1)(1, 1)(0,0)(0, 0):不按指示(举双手或不举手)→ 输出 Invalid

      代码中使用 if-else if-else 结构依次判断这三种情况。

    3. 边界与细节:本题无复杂边界,但需注意 YesNo 的大小写(首字母大写其余小写),以及 Invalid 的拼写,避免因拼写错误导致 WA。

    ⏱️ 复杂度分析

    • 时间复杂度O(1)O(1)
    • 空间复杂度O(1)O(1)

    💻 标准代码 (C++)

    #include <bits/stdc++.h>
    using namespace std;
    
    int main () {
    	int l, r;
    	scanf("%d%d", &l, &r);
    	// 分类讨论四种情况
    	if (l == 1 && r == 0)      // 只举左手:想吃章鱼烧
    		printf("Yes");
    	else if (l == 0 && r == 1) // 只举右手:不想吃
    		printf("No");
    	else                       // 双手都举或都不举
    		printf("Invalid");
    	return 0;
    }
    
    • 1

    信息

    ID
    831
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    (无)
    递交数
    1
    已通过
    1
    上传者