交互题训练1

本文介绍了交互题目的经典思路——二分搜索,通过实例解析如何利用二分解决猜数字问题,以及在[IOI 2018]highway中的应用,涉及在无向图中最短路径的询问策略,展示二分法在限制询问次数情况下的高效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


交互题经典思路:二分


一道经典的题目便是猜数字。
Codeforces 1011D - Rocket
不过,这里面的人有可能撒谎,即大于有可能说成小于,小于有可能说成大于。
好在,它们说真假话为n个一个周期。
即第iii次说假话当且仅当i mod ni\ mod\ ni mod n时说假话。
真话同理。
猜的数在[1,1e9]内。n⩽30n\leqslant 30n30,需要60次内猜出来。
我们可以先采取n次每次问1,得出真谎话周期。
后面二分即可。

codeforces 862D和codeforces 714D均是这个经典思路的应用。

在[IOI 2018]highway中,二分的伟大神力被体现地淋漓尽致。
题意:
有个n个点,m条边的无向图。n⩽90000n\leqslant 90000n90000 m⩽130000m\leqslant 130000m

### C51单片机练习及相关资源 #### 关于C51单片机的练习 为了更好地理解和掌握C51单片机的应用开发,《单片机原理与应用设计(C51编程+Proteus仿真)(第2版)》一书中提供了大量的实例和习解答,涵盖了从基础理论到实际应用的内容[^1]。通过这些练习,学习者可以逐步熟悉单片机的工作机制及其编程技巧。 以下是几个常见的C51单片机练习1. **LED闪烁控制** 编写一段C51代码,使得P1端口上的LED灯每隔一秒交替亮灭一次。 ```c #include <reg52.h> void delay(unsigned int time) { while (time--) { } } void main() { P1 = 0xFF; // 初始化P1端口为高电平 while(1){ P1_0 = ~P1_0; // 反转P1.0的状态 delay(60000); // 延时函数调用 } } ``` 2. **按键检测** 使用矩阵键盘输入数字并通过数码管显示出来。此练习涉及到了矩阵按键扫描算法以及动态驱动数码管的技术要点[^3]。 3. **定时器/计数器配置** 配置T0作为定时器工作模式1,在每经过一定时间间隔后触发中断服务例程ISR,并在其中完成特定的任务处理逻辑。 4. **串行通信实验** 实现两个单片机之间简单的UART异步通讯协议交互测试,一方发送字符流给另一方接收并回显确认消息。 #### 推荐参考资料 对于希望进一步提升自己关于C51单片机技能水平的学习者来说,《单片机原理及应用——基于C51+Proteus仿真》是一本非常实用的手册[^2]。它不仅包含了详尽的基础知识讲解,还特别强调了如何利用现代EDA工具如Keil uVision集成环境配合Proteus虚拟平台来进行高效便捷的产品原型构建尝试。 另外值得注意的是,在讨论外部数据存储访问方式的时候提到过`pdata` 和 `xdata` 这两种类型分别用于表示不同的地址空间范围内的变量声明情况[^4]。理解它们的区别有助于编写更高效的嵌入式应用程序。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值