题意是在一个数列中找到一段连续的子串使其异或值与所给值最接近,求出子串长度,若有多组结果,输出最大长度。

做题之前一定多注意数据范围,这道题就可以直接暴力,用数组 p[ i ][ j ] 表示长度为 i 的数的第 j+1(从 0 开始)个异或值。

代码如下:

 #include <bits/stdc++.h>
using namespace std;
int a[];
int p[][];
int main()
{
int t,n,m,len,minl,r;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(int i = ; i < n; ++i)
scanf("%d",&a[i]);
memset(p,,sizeof(p));
for(int i = ; i < n; ++i)
for(int j = ; j < n-i; ++j)
for(int k = j; k <= j+i; ++k)
p[i][j]^=a[k];
scanf("%d",&m);
while(m--)
{
minl = 0xfffffff;
scanf("%d",&r);
for(int i = ; i < n; ++i)
for(int j = ; j < n-i; ++j)
{
if(abs(p[i][j]-r) < minl)
{
minl = abs(p[i][j]-r);
len = i+;
}
if(i+>len && abs(p[i][j]-r)==minl)
len = i+;
}
printf("%d\n",len);
}
printf("\n");
}
return ;
}

感谢这篇博客的作者:

https://blog.csdn.net/dt_zhangshuo/article/details/53056486

最新文章

  1. Python的平凡之路(21)
  2. 安装grunt
  3. Android之Socket群组聊天
  4. \r,\n,\t
  5. 第十篇、让UIScrollView的滚动条常显
  6. MySQL提示:The server quit without updating PID file问题的解决办法
  7. java学习:AWT组件和事件处理的笔记(1)--文本框
  8. HTTP协议详解 转自小坦克
  9. 4.python迭代器生成器装饰器
  10. iOS开发证书和配置文件的使用
  11. struts2-第一章-基础用法2
  12. [Swift]LeetCode253.会议室 II $ Meeting Rooms II
  13. CSS3绘制特殊图形
  14. C#控制台下测试多线程的源码
  15. JAVA的环境变量配置
  16. [USACO12MAR] 花盆Flowerpot
  17. Django——中间件设置缓存
  18. mongo源码学习(四)服务入口点ServiceEntryPoint
  19. VS2010程序打包操作--超详细
  20. CSUOJ 1868 潜在好友

热门文章

  1. Chinese word segment based on character representation learning 论文笔记
  2. SQLServer之创建唯一非聚集索引
  3. Linux Collection:软件配置
  4. 初学Django项目可能会遇到的问题
  5. 解决OrangePi 耳机孔没有声音
  6. shell中的EOF用法
  7. js获取浏览器窗体最大化事件
  8. linux sort排序及取前几条数据
  9. Surging1.0发布在即,.NET开发者们,你们还在等什么?
  10. hdu-1052(贪心)