1 条题解
-
0
自动搬运
来自洛谷,原作者为

xuyixuan_123
叫我Air/空气搬运于
2025-08-24 21:21:56,当前版本为作者最后更新于2025-06-07 12:57:30,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
思路:
由于最终只有一盏灯是开的,这意味着这盏灯被按了奇数次,而其他所有灯都被按了偶数次。
这里可以利用异或运算的特性:
- 任何数与 异或结果是它本身。
- 任何数与自身异或结果是 。
因此,我们可以将每次操作涉及的灯的编号进行异或运算,最终得到的结果就是唯一开着的灯的编号。
代码:
#include<bits/stdc++.h> using namespace std; long long n,t,ans,x; double a; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a>>t; for(int i=1;i<=t;i++){ x=(int)floor(a*i);//a*i为当前灯的编号 ans^=x; } } cout<<ans; return 0; }
- 1
信息
- ID
- 163
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 1
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者