POJ 1166 暴力搜索 即 枚举

e.... 米还是没有读懂题....T_T .....

e.... 这就是传说中的暴力吗。。。。太血腥了。。。。太暴力了。。。九重for循环。。。。就这么赤裸裸的AC了。。。。

水是水了点。。但是。。我也没想到可以这样解。。因为每种操作最多只能进行三次 不然就是重复了。。所以、、、附代码:

#include<stdio.h>
#include<iostream>
#include<string.h>
#define FOR(x) for (x=0; x<=3; ++x)
using namespace std;

int main()
{
    int a[10], b[10], c[10];
    for (int i=0; i<9; ++i)
    cin >> a[i];
    FOR(b[0])
    FOR(b[1])
    FOR(b[2])
    FOR(b[3])
    FOR(b[4])
    FOR(b[5])
    FOR(b[6])
    FOR(b[7])
    FOR(b[8])
    {
        c[0] = (a[0] + b[0] + b[1] + b[3]) % 4;
        c[1] = (a[1] + b[0] + b[1] + b[2] + b[4]) % 4;
        c[2] = (a[2] + b[1] + b[2] + b[5]) % 4;
        c[3] = (a[3] + b[0] + b[3] + b[4] + b[6]) % 4;
        c[4] = (a[4] + b[0] + b[2] + b[4] + b[6] + b[8]) % 4;
        c[5] = (a[5] + b[2] + b[4] + b[5] + b[8]) % 4;
        c[6] = (a[6] + b[3] + b[6] + b[7]) % 4;
        c[7] = (a[7] + b[4] + b[6] + b[7] + b[8]) % 4;
        c[8] = (a[8] + b[5] + b[7] + b[8]) % 4;
        if (c[0] + c[1] +c[2] + c[3] + c[4] + c[5] + c[6] + c[7] + c[8] == 0)
        {
           while(b[0]--) cout << "1 ";
           while(b[1]--) cout << "2 ";
           while(b[2]--) cout << "3 ";
           while(b[3]--) cout << "4 ";
           while(b[4]--) cout << "5 ";
           while(b[5]--) cout << "6 ";
           while(b[6]--) cout << "7 ";
           while(b[7]--) cout << "8 ";
           while(b[8]--) cout << "9 ";
           cout << endl;
           return 0;
        }
    }
}

时间: 2024-10-17 16:56:42

POJ 1166 暴力搜索 即 枚举的相关文章

POJ 2329 (暴力+搜索bfs)

Nearest number - 2 Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 3943 Accepted: 1210 Description Input is the matrix A of N by N non-negative integers. A distance between two elements Aij and Apq is defined as |i ? p| + |j ? q|. Your pro

POJ 2785 (暴力搜索&amp;二分)

The SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, compute how many quadruplet (a, b, c, d ) ∈ A x B x C x D are such that a + b + c + d = 0 . In the following, we assume that all lists have the same size n .

poj 1054 The Troublesome Frog (暴力搜索 + 剪枝优化)

题目链接 看到分类里是dp,结果想了半天,也没想出来,搜了一下题解,全是暴力! 不过剪枝很重要,下面我的代码 266ms. 题意: 在一个矩阵方格里面,青蛙在里面跳,但是青蛙每一步都是等长的跳, 从一个边界外,跳到了另一边的边界外,每跳一次对那个点进行标记. 现在给你很多青蛙跳过后的所标记的所有点,那请你从这些点里面找出 一条可能的路径里面出现过的标记点最多. 分析:先排序(目的是方便剪枝,break),然后枚举两个点,这两个 点代表这条路径的起始的两个点.然后是三个剪枝,下面有. 开始遍历时,

[暴力搜索] POJ 3087 Shuffle&#39;m Up

Shuffle'm Up Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10003   Accepted: 4631 Description A common pastime for poker players at a poker table is to shuffle stacks of chips. Shuffling chips is performed by starting with two stacks o

POJ 2110 Mountain Walking 暴力搜索+二分

题意:n*n的矩阵 每次能走四个方向,定义路径的花费为:路径中方格的max-min,问从左上到右下的最小花费,n<=100 4个方向不是DAG,不能DP,暴力搜索 每个点最坏情况下走n*n 共n*n个点 O(n^4)TLE二分ans后 枚举下界,则此时知道路径的最小值和最大值从 起点出发把mn<=c<=mx的点都遍历,此时dfs 相当于遍历图,不用回溯,复杂度为O(n^3*logn) #include <iostream> #include <cstring> #

G - Shuffle&#39;m Up POJ 3087 模拟洗牌的过程,算作暴力搜索也不为过

G - Shuffle'm Up Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit Status Practice POJ 3087 Description A common pastime for poker players at a poker table is to shuffle stacks of chips. Shuffling chips is performed by start

ACM 暴力搜索题 题目整理

UVa 129 Krypton Factor 注意输出格式,比较坑爹. 每次要进行处理去掉容易的串,统计困难串的个数. #include<iostream> #include<vector> #include<cmath> #include<map> #include<algorithm> #include<cstring> #include<cstdio> #include<cstdlib> #include

Codeforces Round #224 (Div. 2) D 暴力搜索加记忆化

题意读了半年,英语太渣,题意是摆两个棋子在棋盘上作为起点,但是起点不能在#上,然后按照图的指示开始走, < 左 > 右 ^上 v下,走的时候只能按照图的指示走,如果前方是 #的话,可以走进去,但是 走进去之后便不能再走了,走的途中两个棋子不能相碰,但是最终都走到同一个#里是没事的,并且若是能走 无限步的话 输出 -1, 例如  > < 这样左右左右的走就能无限走,然后问你 两个棋子走的最大步数的和 一开始被输出-1给困住了,因为除了 .> <这样以外  还可以刚好形成一

11214 - Guarding the Chessboard(暴力搜索)

IDA*算法, 从小到大枚举深度上限,不过该题是有深度上限的,题目中的第一个样例表明:最多需要5个皇后就可以覆盖整个棋盘 . 利用紫书上的技巧,我们可以快速的判断任意两个棋子是不是在同一行.同一列.同一对角线 (详情见紫书P193那两个图). 这样之后暴力搜索就可以了 . 每一层需要O(nm)的复杂度,但是实际上并不需要那么大的复杂度 .和八皇后问题类似 , 当前行之前的行已经放置了皇后,所以不必在管,每次从下一行开始放置就好 . 细节见代码: #include<bits/stdc++.h>