首页 > 有趣的区间
头像 BE-ABLE-N
发表于 2022-01-14 16:08:26
Problem Solution 翻译下题意:当一个区间内存在一个元素为奇数时,则被称为有趣的区间,并且只要两个区间的左右端点有一个不一样,这两个区间就不是同一个区间。 了解题意后,如何求出满足条件的区间个数呢? 我们可以假设数组内所有元素都为奇数,可以很容易地想到,此时的区间个数为1 + 展开全文
头像 绝迹的星
发表于 2024-05-17 17:51:00
有趣的区间 x是奇数 ⇔ x的二进制最低位为1 A[l] | ...|A[r]为奇数 ⇔ A[l~r]至少有一个数是奇数 设以A[i]为右端点, 考虑它的左端点(<=i)能取哪些位置: (1) 如果A[i]为奇数, 左端点可以随便取, 因为包含了A[i]这个奇数, 有i+1个 (2) 如 展开全文
头像 菜狗二号
发表于 2022-01-14 10:10:50
D.有趣的区间 原题链接 感觉题解的办法好简单呜呜呜,但是我不会。 这里给出我的做法: 由题意知,只要区间中有一个数为奇数那么该区间就是有趣的区间。 不妨考虑[1,n]的所有区间个数设为s,不管它是否有趣。 那么显然s = (1+n)*n/2 考虑以下例子: 5 1 2 3 4 5 那么列出 展开全文
头像 Guoxu_
发表于 2024-02-21 17:08:47
思路 显然,区间中只要包含一个奇数,其结果就会是奇数。 进一步思考,统计包含一个或以上奇数的区间的工作量大于统计只包含偶数的区间的工作量。 代码实现 #include <bits/stdc++.h> using namespace std; using ll = long long; 展开全文

等你来战

查看全部