11.12 360笔试技术综合H卷回忆
第一题:
给你一个长度为n的特征值数组a,你每次操作可以将两个特征值a[i]和a[j](i不等于j)相加,并将这个新的特征值替换a[i]或者a[j]。你的目标是通过多次操作将数组每一个值都变为不同的,求最小操作数。
输入示例记不清了我随便写一个
6
1 4 1 3 5 5
输出:
2
ac了,不会贴代码,就说一下思路
用unordered_map将每个特征值作为key,记录这个特征值出现的次数,最后全部求和减去map的size就好了,很简单。
第二题:
假定有一个无限长的数组初始值全为0(下标从0开始),你需要先对它进行n次修改,再进行m次查询,其中修改操作是依据每次修改输入的三个数l,r,x进行操作,具体方式是对原数组下标在l和r这个闭区间内的每一个值和x进行异或。查询操作是对每一个输入的整数输出以这个整数为下标的最终值。
然后输入第一行是n,m,接下来n行每一行三个数l,r,x,其中l代表左index,r代表右index,lr都是最大1e18的正整数,x是一个最大1e9的正整数,然后最后m行每一行有一个数
输入示例:
2 2
1 5 1
3 7 2
4
6
输出:
3
2
ac了,同样只说思路,感觉也是个简单题,直接暴力求就好了,唯一需要注意的是,读题一定得仔细,题目给出的数据有爆int的,用int只能a27%,改long long之后直接a
给你一个长度为n的特征值数组a,你每次操作可以将两个特征值a[i]和a[j](i不等于j)相加,并将这个新的特征值替换a[i]或者a[j]。你的目标是通过多次操作将数组每一个值都变为不同的,求最小操作数。
输入示例记不清了我随便写一个
6
1 4 1 3 5 5
输出:
2
ac了,不会贴代码,就说一下思路
用unordered_map将每个特征值作为key,记录这个特征值出现的次数,最后全部求和减去map的size就好了,很简单。
第二题:
假定有一个无限长的数组初始值全为0(下标从0开始),你需要先对它进行n次修改,再进行m次查询,其中修改操作是依据每次修改输入的三个数l,r,x进行操作,具体方式是对原数组下标在l和r这个闭区间内的每一个值和x进行异或。查询操作是对每一个输入的整数输出以这个整数为下标的最终值。
然后输入第一行是n,m,接下来n行每一行三个数l,r,x,其中l代表左index,r代表右index,lr都是最大1e18的正整数,x是一个最大1e9的正整数,然后最后m行每一行有一个数
输入示例:
2 2
1 5 1
3 7 2
4
6
输出:
3
2
ac了,同样只说思路,感觉也是个简单题,直接暴力求就好了,唯一需要注意的是,读题一定得仔细,题目给出的数据有爆int的,用int只能a27%,改long long之后直接a
全部评论
选择题都考些啥啊
选择题会考C++相关的吗,目前只会python
第一题是不是要约束数组元素不能为0,否则的话有多个0的时候每个多余的0要至少用2次操作,比如[0,0,1]需要至少2次操作
相关推荐
09-27 09:26
湖南女子学院 运营 点赞 评论 收藏
分享