problem

题目大意:

给你n个数和p,都小于50000要求留下若干个数字,使得剩下的数字异或为0,并且从左到右串联起来可以被p整除,求一种这样的方案。

搜索

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
inline LL read () { LL res = ;int f () ;char ch = getchar ();
while (!isdigit(ch)) { if (ch == '-') f = - ;ch = getchar();}
while (isdigit(ch)) res = (res << ) + (res << ) + (ch ^ ) ,ch = getchar(); return res * f ;
}
template<class T>void write(T x){
if(x>) write(x/);
putchar(+x%);
}
int const maxn=<<;
int n,p,a[maxn],b[maxn],m,check,pos[maxn];
int inline pw(int x){
return x<? :;
}
inline void dfs(int k,int x,int y,int num){
if(x== and y== and num){
puts("Yes"); write(num);putchar('\n');
for(register int i=;i<=num;i++) write(b[i]),putchar(' '); exit();
}
if(k>m) return ;
dfs(k+,x,y,num);
b[num+]=pos[a[k]];
dfs(k+,x^a[k],(y*pw(a[k])+a[k])%p,num+);
}
signed main () {
n=read(),p=read();
for(register int i=;i<=n;i++) {
int x=read();
if(x<maxn) a[++m]=x,pos[x]=i;
}
dfs(,,,); puts("No");
return ;
}

随机推荐

  1. NYOJ-1188并集与交集,STL的灵活运用!

    并集与交集 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 给你两个字符串的集合A和B,让你求这两个字符串集合的并集和交集,按字典序排序后输出. 然后又给出给出两个字符串 ...

  2. 《C语言程序设计(第四版)》阅读心得(四 文件操作)

    第10章  对文件的输入输出 函数名 调用形式 功能 fopen fopen(“a1”,”r”); 打开一个文件 fclose fclose( fp ); 关闭数据文件 fgetc fgetc( fp ...

  3. [codeforces471D]MUH and Cube Walls

    [codeforces471D]MUH and Cube Walls 试题描述 Polar bears Menshykov and Uslada from the zoo of St. Petersb ...

  4. poj - 3041 Asteroids (二分图最大匹配+匈牙利算法)

    http://poj.org/problem?id=3041 在n*n的网格中有K颗小行星,小行星i的位置是(Ri,Ci),现在有一个强有力的武器能够用一发光速将一整行或一整列的小行星轰为灰烬,想要利 ...

  5. Strongly connected-HDU4635

    Problem - 4635 http://acm.hdu.edu.cn/showproblem.php?pid=4635 题目大意: n个点,m条边,求最多再加几条边,然后这个图不是强连通 分析: ...

  6. Eclipse-Java代码规范和质量检查插件-PMD

    PMD是一个源代码分析器. 它发现常见的编程缺陷,如未使用的变量.空catch块.不必要的对象创建等等. 它支持Java.JavaScript.Salesforce.com Apex.PLSQL.Ap ...

  7. 在 IIS 中承载 WCF 服务

    本主题概述了创建 Internet 信息服务 (IIS) 中承载的 Windows Communication Foundation (WCF) 服务所需的基本步骤. 本主题假设您熟悉 IIS 且了解 ...

  8. 初探FFT在数字图像处理中的应用(fft2函数的用法)

    初探FFT在数字图像处理中的应用 一般FFT在通信等领域都做的一维变换就能够了.可是在图像处理方面,须要做二维变换,这个时候就须要用到FFT2. 在利用Octave(或者matlab)里面的fft2( ...

  9. [php learn] php 从头開始学习1

    前言:大概在2006年的时候,学习过一段时间的php.而且当时做了一个下载的站点,后来因为读研究生阶段用的是java.j2ee相关,所以php就搁浅掉了,php这些年也发生了非常大的变化,最大一个变化 ...

  10. android中怎么将桌面较长的图标名称显示完整

    找到相应的 res 资源, 改动其 styles.xml <style name="WorkspaceIcon.Portrait">         <item ...