Codeforces Round #757 (Div. 2) C. Divan and bitwise operations

Codeforces Round #757 (Div. 2) C. Divan and bitwise operations,第1张

Codeforces Round #757 (Div. 2) C. Divan and bitwise operations Codeforces Round #757 (Div. 2)

A B两题很简单,C有点绕
原题链接
找了几个不错的博客
大佬的博客
这个大佬讲的思路很清晰,可以借鉴
还有一点:同或和还有一个性质,两个区间的同或和进行或运算可以得到他们并集的同或和。根据这一点,加上题目中提到必然会遍及每一个元素,那么把给出的m个区间的同或和进行或运算即可得到[1,n]的同或和x。
附上代码

#include
using namespace std;
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
typedef long long ll;
typedef pair PII;
const int N=1e5+10;
const int mod=1e9+7;
ll q_mi(int a,int b)
{
   ll ans=1;
   while(b)
   {
      if(b&1) ans=ans*a%mod;
      a=(ll)a*a%mod;
      b>>=1;
   }
   return ans;
}
int main()
{
   IOS;
   int t;
   cin>>t;
   while(t--)
   {
       int n,m;
       ll ans=0;
       cin>>n>>m;
       for(int i=0;i>l>>r>>x;
          ans=ans|x;
       }
       ll sum=q_mi(2,n-1)*ans%mod;
       cout<					
										


					

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5610730.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存