Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

wa疯了,求组高手,求测试数据

Posted by winer at 2010-05-12 20:26:25 on Problem 2965
#include <iostream>
#include <stdio.h>
//暴力搜索,枚举所有可能,为运算
using namespace std;
int flip[] = {0x111f,0x222f,0x444f,0x888f,0x11f1,0x22f2,0x44f4,0x88f8,0x1f11,0x2f22,0x4f44,0x8f88,0xf111,0xf222,0xf444,0xf888};//flip[i]表示翻第i个需要改变的那些棋子
int step = 16;
int dep_status1 = 0; //记录改变了的节点
void Search(int result,int dep , int fliped,int dep_status){ //递归出全部可能
    if(result == 0 ){
        if(fliped < step)
            step = fliped;
            dep_status1 = dep_status;
    }
    if(dep == 16) return ;
    Search(result,dep+1,fliped,dep_status);
    Search(result ^= flip[dep] , dep+1 , fliped+1,dep_status=dep_status+(1<<dep));
    return ;
}
int main(){
    int result = 0;
    //根据输入初始化result
    for(int i = 0 ; i< 16 ;){
        char temp;
        int x;
        temp = getchar();
        if(temp == '+' || temp == '-'){
            if(temp == '+'){
                x = 1;
                x = x << i;
                result += x;
            }
            i++;
        }

    }
    Search(result,0,0,0);
    printf("%d\n",step);
    for(int i = 0 ; i < 16 ; i++){
        int x = 1<<i;
        if((x&dep_status1 )!=0){
            printf("%d %d\n",i/4+1,i%4+1);
        }
    }

    return 0;
}

或者发写测试数据吧,非常感谢

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator