引用题解:http://blog.csdn.net/PoPoQQQ/article/details/39829237

注意评论区。

  1. #include<cstdio>
  2. using namespace std;
  3. #define MOD 10086
  4. #define N 100001
  5. int n,a[N],m,base[32],k,real[32],ans,now;
  6. int main()
  7. {
  8. scanf("%d",&n);
  9. for(int i=1;i<=n;++i) scanf("%d",&a[i]);
  10. scanf("%d",&m);
  11. int j;
  12. for(int i=1;i<=n;++i)
  13. {
  14. for(j=31;j>=0;--j)//尝试用所有的线性基去消a[i]
  15. if(((a[i]>>j)&1)&&base[j])
  16. a[i]^=base[j];
  17. if(a[i])//若a[i]不能被以前的线性基所表示(线性无关)
  18. {
  19. for(j=31;j>=0;--j)//把a[i]的剩余部分插入线性基
  20. if(((a[i]>>j)&1)&&(!base[j]))
  21. {
  22. base[j]=a[i];
  23. break;
  24. }
  25. for(int k=31;k>j;--k)//从线性基里把新插入的家伙消掉
  26. if((base[k]>>j)&1)
  27. base[k]^=a[i];
  28. }
  29. }
  30. for(int i=0;i<=31;++i) if(base[i]) real[k++]=base[i];
  31. for(int i=k-1;i>=0;--i)
  32. if((real[i]^now)<=m)
  33. {
  34. now^=real[i];
  35. ans=(ans+(1<<i)%MOD)%MOD;
  36. }
  37. for(int i=0;i<n-k;++i)
  38. ans=(ans<<1)%MOD;
  39. printf("%d\n",(ans+1)%MOD);
  40. return 0;
  41. }

【贪心】【线性基】bzoj2844 albus就是要第一个出场的更多相关文章

  1. 【线性基】bzoj2844: albus就是要第一个出场

    线性基求可重rank 题目描述 给定 n 个数 $\{ a_i \}$ ,以及数 $x$. 将 $\{ a_i \}$​ 的所有子集(包括空集)的异或值从小到大排序,得到 $\{ b_i \} $. ...

  2. BZOJ2844: albus就是要第一个出场

    Description 已知一个长度为n的正整数序列A(下标从1开始), 令 S = { x | 1 <= x <= n }, S 的幂集2^S定义为S 所有子集构成的集合. 定义映射 f ...

  3. BZOJ2844: albus就是要第一个出场(线性基)

    Time Limit: 6 Sec  Memory Limit: 128 MBSubmit: 2054  Solved: 850[Submit][Status][Discuss] Descriptio ...

  4. bzoj千题计划195:bzoj2844: albus就是要第一个出场

    http://www.lydsy.com/JudgeOnline/problem.php?id=2844 题意:给定 n个数,把它的所有子集(可以为空)的异或值从小到大排序得到序列 B,请问 Q 在  ...

  5. 【BZOJ2844】albus就是要第一个出场 高斯消元求线性基

    [BZOJ2844]albus就是要第一个出场 Description 已知一个长度为n的正整数序列A(下标从1开始), 令 S = { x | 1 <= x <= n }, S 的幂集2 ...

  6. BZOJ 2844: albus就是要第一个出场 [高斯消元XOR 线性基]

    2844: albus就是要第一个出场 题意:给定一个n个数的集合S和一个数x,求x在S的$2^n$个子集从小到大的异或和序列中最早出现的位置 一开始看错题了...人家要求的是x第一次出现位置不是第x ...

  7. BZOJ_2844 albus就是要第一个出场 【线性基】

    一.题目 albus就是要第一个出场 二.分析 非常有助于理解线性基的一题. 构造线性基$B$后,如果$|A| > |B|$,那么就意味着有些数可以由$B$中的数异或出来,而多的数可以取或者不取 ...

  8. CF895C: Square Subsets && 【BZOJ2844】albus就是要第一个出场

    CF895C: Square Subsets && [BZOJ2844]albus就是要第一个出场 这两道题很类似,都是线性基的计数问题,解题的核心思想也一样. CF895C Squa ...

  9. BZOJ 2844: albus就是要第一个出场

    2844: albus就是要第一个出场 Time Limit: 6 Sec  Memory Limit: 128 MBSubmit: 1134  Solved: 481[Submit][Status] ...

随机推荐

  1. CSS垂直居中小结

    1.设置子元素: { ... position :absolute; margin:auto; top:; right:; bottom:; left:; } 2.设置子元素:(height必须是固定 ...

  2. jquery学习之add()

    解读: add() 将元素添加到匹配元素的集合中 例1: <!DOCTYPE html> <html> <head> <style> div { wid ...

  3. commons

    <!-- https://mvnrepository.com/artifact/commons-lang/commons-lang --> <dependency> <g ...

  4. SpringMVC——如何获取请求参数

    参考 http://www.cnblogs.com/bigdataZJ/p/springmvc2.html (文章讲了几个注解的使用,但不够深入.) 参考 http://www.cnblogs.com ...

  5. Red-Black Tree

    A red-black tree is a Binary Search Tree that satisfy the red-black tree properties: 1. Every node i ...

  6. js判断浏览器是否为ie

    使用传统方式 if ((navigator.userAgent.indexOf('MSIE') >= 0) && (navigator.userAgent.indexOf('Op ...

  7. DDD——让天下没有难调的程序

    https://www.linuxidc.com/Linux/2016-11/137343.htm DDD全称Data Display Debugger,当我第一次见到它时,它的界面着实让我吃了一惊, ...

  8. 哪些情况会导致OOM

    1. 堆溢出 java堆用于存储对象实例,只要不断地创建对象,并且这些对象不会被回收(什么情况对象不会被回收呢?如:由于GC Root到对象之间有可达路径,所以垃圾回收机制不会清除这些对象),那么,当 ...

  9. Oracle基础 04 归档日志 archivelog

    --查看归档模式archive log list select log_mode from v$database; --修改为归档模式(mount下)alter database archivelog ...

  10. 层级数据模板 案例(HierarchicalDataTemplateWindow)

    1.xaml 文件 <Window x:Class="DataTemplate.HierarchicalDataTemplateWindow"        xmlns=&q ...