2 条题解

  • 0
    @ 2026-6-20 23:59:50
    #include<iostream>
    using namespace std;
    int main(){
    	int x,y,z;
    	scanf("%d%d%d",&x,&y,&z);
    	if(x==y){
    		printf("No");
    	}else if(z==y && x!=y){
    		printf("Yes");
    		return 0;
    	}
    	while(y!=z){
    		if(y+1==24){
    			y=0;
    			if(y==x){
    				printf("No");
    				return 0;
    			}
    		}else{
    			y++;
    			if(y==x){
    				printf("No");
    				return 0;
    			}
    		}
    	}
    	printf("Yes");
    	return 0;
    }
    
    • 0
      @ 2026-6-19 10:30:57

      📝 题目大意

      一天有 24 小时,高桥君在 BB 点睡觉、CC 点醒来(睡眠时间不足 24 小时),居民在 AA 点表达对章鱼小丸子的爱。判断高桥君在 AA 点时是否醒着(即不在睡觉)。

      💡 解题思路

      1. 题目分析

        • 0A,B,C<240 \le A, B, C < 24,且三者互不相同,睡眠时间少于 24 小时。
        • 核心难点在于睡眠区间可能跨过零点(如 B=21,C=7B=21, C=7,即从晚上 9 点睡到第二天早上 7 点)。
        • 数据范围极小(<24<24),直接枚举或区间判断均可。
      2. 算法推导

        • 统一处理跨天:若 B>CB > C(跨零点),则令 CC+24C \leftarrow C + 24,将睡眠区间统一表示在 [0,48)[0, 48) 的扩展时间轴上,此时睡眠区间为 [B,C][B, C] 且长度 <24< 24
        • 判断是否清醒AA 时刻醒着,等价于 AA 不在睡眠区间 [B,C][B, C] 内。但由于睡眠区间可能跨过 2424,需要从两个角度检查:
          • 当天视角:AA 是否不在 [B,C][B, C] 内 → a < b || a > c
          • 次日视角:A+24A + 24 是否不在 [B,C][B, C] 内 → a + 24 < b || a + 24 > c
        • 两个条件同时成立时,AA 一定在清醒时段内,输出 Yes;否则输出 No
        • 等价理解
          • 若不跨天(B<CB < C):清醒条件为 A<BA < BACA \ge C,此时 a+24 条件恒成立(因为 a+2424Ca+24 \ge 24 \ge C)。
          • 若跨天(B>CB > C 调整后):清醒条件为 C24<A<BC-24 < A < B,恰好对应两个条件分别化简为 a < ba > c - 24
      3. 边界与细节

        • 注意 CC 调整后可能 24\ge 24,比较时直接使用整数即可。
        • 睡眠时间少于 24 小时保证调整后 CB<24C - B < 24,因此 AAA+24A+24 不可能同时落在 [B,C][B, C] 内。

      ⏱️ 复杂度分析

      • 时间复杂度O(1)O(1),仅常数次比较和布尔运算。
      • 空间复杂度O(1)O(1),仅使用几个整型变量。

      💻 标准代码 (C++)

      #include<bits/stdc++.h>
      using namespace std;
      int main()
      {
      	int a,b,c;cin>>a>>b>>c;
      	// 若睡眠跨过零点(B > C),将 C 加上 24 统一处理
      	if(b>c)c+=24;
      	// 同时检查当天 A 和次日 A+24 是否都不在睡眠区间 [B, C] 内
      	if((a<b||a>c)&&(a+24<b||a+24>c))puts("Yes");
      	else puts("No");
      	return 0;
      }
      
      • 1

      信息

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