#icpc2013summerday3j. [icpc2013summer_day3_j]A + B

[icpc2013summer_day3_j]A + B

在编程比赛的集训中没有出现问题的想法而感到为难的甲,某一天和朋友商量了。

A: “如果不使用这种算法的话,我想提出一个无法解决的问题,怎么做~?”

朋友:“这种东西想想不就出来了吗?”(真NB)

就这样,那个朋友考虑了以下问题的草案。

给你两个二进制数A,B,做如下变换:

操作1:输出在二进制下1的个数最大的X;A<=X<=A+B;

操作2:将A从开始最下位翻转i位;

操作3:将B从开始最下位翻转i位;

注:i是从最下位到第0位表示最下位

输入格式:第一行一个N,然后二进制数A,B; 2~N+1行 Q表示查询,就是操作1; A i 表示操作2; B i 表示操作3;

输出格式:每次Q查询,输出一行答案