HDU-5968 이상 또는 비밀번호

3105 단어 일상
암호
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1311    Accepted Submission(s): 431
Problem Description
아침 에 종이 에 길이 가 N 인 비 마이너스 정수 시퀀스{를 썼 습 니 다.
ai}。이 시퀀스 에 대한 연속 하위 시퀀스{
al,al+1,...,ar}아침 에 그 중의 모든 차이 점 이나 결 과 를 구 할 수 있 습 니 다. 
alxoral+1xor...xorar 에서 xor 는 위치 가 다 르 거나 연산 을 표시 하고 C,C++,자바 등 언어 에서 의^연산 에 대응 합 니 다.
샤 오 루 는 질문 마다 정수 로 M 개 를 제안 했다. 
설명
모든 질문 에 대해 아침 에 시퀀스 를 찾 아야 합 니 다{
ai}의 모든 연속 서브 시퀀스,모든 하위 시퀀스 의 다른 결 과 를 구하 고 모든 결과 와 
xi 의 차 이 는 절대 치가 가장 작은 것 이 고 샤 오 루 에 게 해당 하 는 서브 시퀀스 의 길 이 를 알려 준다.
조건 을 만족 시 키 는 연속 서브 시퀀스 가 여러 개 있 으 면 샤 오 루 에 게 이 서브 시퀀스 중 가장 긴 길 이 를 알려 준다.
 
Input
여러 그룹의 테스트 데 이 터 를 포함 하고 첫 번 째 줄 의 정수 T 는 데이터 그룹 수 를 나타 낸다.
각 조 의 데 이 터 는 모두 두 줄 이다.
첫 줄 은 N+1 개의 비 마이너스 정 수 를 포함한다.그 중에서 첫 번 째 수 는 N 으로 서열 의 길 이 를 나타 낸다.다음 N 개 수,순서대로 시퀀스 설명{ 
ai}의 매개 수.
두 번 째 줄 은 M+1 개의 정 수 를 포함한다.그 중 첫 번 째 수 는 M 으로 문의 의 개 수 를 나타 낸다.다음 M 개수. 
xi,각 수 는 문제 설명 중의 질문 에 대응 합 니 다.
보증 1<=N<=100,1<=M<=100,
ai <= 1024,|
xi|<=1024,데이터 그룹 수<=100.
 
Output
각 그룹의 데이터 출력 M+1 줄.아침 M 개 질문 에 대한 답변,M+1 행동 공백
 
Sample Input
 
   
2 2 1 1 2 0 2 3 1 2 4 3 10 5 1
 

Sample Output
 
   
2 1 3 2 1

数据小 可以直接暴力 但是在求异或的时候打个表 要不随缘998过。。。

#include
#include
#include
#include
using namespace std;
int main()
{
    int t,n,m,i,j,k,MIN,ans;
    int a[101],b[101];
    int sum[101],res[101][101];
    while(scanf("%d",&t)!=EOF)
    {
        while(t--)
        {
            scanf("%d",&n);
            for(i=1;i<=n;i++)
                scanf("%d",&a[i]);
            memset(sum,0,sizeof(sum));
            for(i=1;i<=n;i++)
                sum[i]=sum[i-1]^a[i];
            for(i=1;i<=n;i++)
                for(j=i;j<=n;j++)
                res[i][j]=sum[j]^sum[i-1];

            scanf("%d",&m);
            for(i=1;i<=m;i++)
                scanf("%d",&b[i]);

            for(k=1;k<=m;k++)
            {
                MIN=1000000;
                ans=0;
                for(i=1;i<=n;i++)
                {
                    for(j=i;j<=n;j++)
                    {
                        if(abs(res[i][j]-b[k])

좋은 웹페이지 즐겨찾기