![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
暴力枚举
枚举
柏油
不负冬日春晓 不负青春韶华
展开
-
UVA 11214 Guarding the Chessboard(回溯)
题意:类似n皇后问题,要求用最少的皇后防守所有的X;思路:暴力回溯,开始一直按照n皇后的思路来解(即同行同列同对角线不能有多个皇后,但事实证明本题可以,因为是逐行向下搜索,所以同行上没有多个皇后)AC代码如下:#include#includeusing namespace std;const int maxn=10+2;char g[maxn][maxn];int vis[4原创 2017-02-20 09:52:22 · 325 阅读 · 0 评论 -
UVA 524 素数环Prime Ring Problem (回溯法)
啃爹的输出格式!PE了好几次!#include#include#includeusing namespace std;const int maxn=16;int vis[maxn],A[maxn]; int n;bool isp(int temp){ //判断是否为素数,是则返回true; int flag=1; for(int i=2;i<=原创 2017-02-07 23:37:08 · 509 阅读 · 0 评论 -
UVA 129 困难的串Krypton Factor (回溯法)
#includeconst int maxn=80+2;int S[maxn];int n,L,count;void print(int cur){ int flag=1; for(int i=0;i<cur;i++){ if(i%4==0 && i>0) { if(i%64==0 && i>0)printf("\n"); else printf(" "); }原创 2017-02-07 23:19:42 · 360 阅读 · 0 评论 -
HDU 2553 n皇后问题(回溯)
本题用回溯法求解(采用边生成边检查的方式),当不满足条件时当前路径不再继续向下搜寻,而继续另外路径的搜寻(这样就不会枚举所有的)。通过逐行向下判断(每行一个皇后),每行都尝试将皇后放在不同的列,然后判断其是否满足条件(同一列、同一对角线不能有两个以上的皇后)此题n测试数据中会有大量重复数据,因此要保存答案,遇到曾经计算过的n直接输出即可,否则可能会超时。#include#incl原创 2017-01-24 14:38:28 · 515 阅读 · 1 评论 -
UVA 10976 分数拆分(暴力枚举)
分析:简单的暴力枚举题,首先题目中给定x>=y,那么当y最大的时候就是y=2k, 所以说对y进行枚举,范围是(k+1,2*k),还需考虑的一个问题是精度问题, 通分就可以避免这个问题。AC代码:#include#includeusing namespace std;const int maxn=10000;int x1[maxn];int y1[maxn];int main()原创 2017-03-17 14:03:01 · 393 阅读 · 0 评论 -
UVA 1152 --4 Values whose Sum is 0(枚举--中途相遇法)
4 Values whose Sum is 0Time Limit:9000MS Memory Limit:0KB 64bit IO Format:%lld & %lluThe SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, computehow m原创 2017-06-16 13:49:59 · 451 阅读 · 0 评论 -
nyoj 7街区最短路径问题(暴力 || 哈曼顿距离)
街区最短路径问题时间限制:3000 ms | 内存限制:65535 KB难度:4描述一个街区有很多住户,街区的街道只能为东西、南北两种方向。住户只可以沿着街道行走。各个街道之间的间隔相等。用(x,y)来表示住户坐在的街区。例如(4,20),表示用户在东西方向第4个街道,南北方向第20个街道。现在要建一个邮局,使得各个住户到原创 2017-11-23 16:32:10 · 409 阅读 · 0 评论 -
nyoj 33 蛇形填数
蛇形填数时间限制:3000 ms | 内存限制:65535 KB难度:3描述在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为:10 11 12 19 16 13 28 15 14 37 6 5 4输入直接输入方陈的维数,即n的值。(n<=100)输出输出结果是蛇形方陈。样例输入3样例输出7 8 16 9 25 4 3思路:依次 向下、向左、向上、向右填数,每...原创 2018-02-12 16:57:12 · 215 阅读 · 0 评论 -
hihoCoder 1039字符消除(字符串处理)暴力
#1039 : 字符消除时间限制:1000ms单点时限:1000ms内存限制:256MB描述小Hi最近在玩一个字符消除游戏。给定一个只包含大写字母"ABC"的字符串s,消除过程是如下进行的:1)如果s包含长度超过1的由相同字母组成的子串,那么这些子串会被同时消除,余下的子串拼成新的字符串。例如"ABCCBCCCAA"中"CC","CCC"和"AA"会被同时消除,余下"AB"和"B原创 2018-03-27 17:30:34 · 265 阅读 · 0 评论 -
hdu 1431素数回文
素数回文Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 21780 Accepted Submission(s): 5081Problem Descriptionxiaoou33对既是素数又是回文的数特别感兴趣。比如说151既是素数又...原创 2018-03-28 13:34:46 · 529 阅读 · 0 评论 -
UVA 725 Divsion(暴力枚举)
分析:暴力法求解,只要知道了除数,那么被除数轻而易举就出来了,所以枚举除数就ok了,最小是1234,当然最大肯定超不过50000,还有一点就是格式的输出了!AC代码#include#includeusing namespace std;int n;bool check(int i){ int a[12]; memset(a,0,sizeof(a)); if(i<10000)原创 2017-03-17 13:16:57 · 366 阅读 · 0 评论 -
UVA 11059 Maximum Product最大乘积(暴力法)
分析:暴力枚举求解,最大值不超过10^18,故可用long long 类型求解,枚举起点、终点。AC代码:#include#include#includeusing namespace std;typedef long long LL;const int maxn=20;int a[maxn];LL cal(int i,int j){ LL sum=1; for(int原创 2017-03-16 23:10:50 · 361 阅读 · 0 评论 -
HDU 5254 棋盘占领(暴力枚举)
百小度最近迷恋上了一款游戏,游戏里有一个n*m的棋盘,每个方格代表一个城池。 一开始的时候我们有g支军队,驻扎并占领了其中某些城池。然后我们可以在这些被占领城池的基础上,吞并占领周围的城池。 而其吞并占领的规则是这样的――一旦一个城池A相邻的上下左右四个城池中至少存在两个被占领,且这两个被占领的城池有公共点,那么城池A也将被占领。 比如我们用1表示初原创 2017-03-16 10:25:50 · 297 阅读 · 0 评论 -
UVA 140 带宽 Bandwidth (暴力枚举+剪枝)
解题思路:本题使用了STL中的next_permutation()函数(位于algorithm中)列举排列。先记录目前已经找到的最小带宽min_width,如果发现已经有某两个结点的距离大于或等于min_width,再怎么扩展也不可能比当前解更有,故应“剪”掉,即剪枝#include#include#include#include#include using namespace st原创 2017-02-09 13:18:03 · 361 阅读 · 0 评论 -
UVA 818 Cutting Chains(二进制枚举+DFS)
题意:有n个圆环,其中有一些已经扣在了一起。现在需要打开尽量少的圆环,使得所有圆环可以组成一条链,例如,有5个圆环,1-2,2-3,4-5,则需要打开一个圆环,如圆环4,然后用它穿过圆环3和圆环5后再次闭合4,就可以形成一条链:1-2-3-4-5。思路:对任意一个小圆环,可打开可关闭;用二进制表示,0(关)、1(开),n个小圆环就有2^n种情况(即暴力枚举),如(00000,11111其中两种原创 2017-02-13 11:19:54 · 624 阅读 · 0 评论 -
POJ 3279 Fliptile 反转 (二进制枚举)
题意:有一个n*m的格子,每个格子都有黑白两面(0表示白色,1表示黑色)。我们需要把所有的格子都反转成白色,每反转一个格子,它上下左右的格子都会跟着反转。请求出用最小步数完成反转时每个格子反转的次数。有多个解时,输出字典序最小的一组。思路:二进制枚举第一行,然后逐行向下进行判断,从第二行(row)起,当第k列的上一行有黑色(1),则必须翻转chang(row,k),保证满足上一行全白色(0);原创 2017-02-14 18:23:02 · 368 阅读 · 0 评论 -
POJ 1426 找倍数 Find The Multiple(枚举+同余模应用)
同余模定理:(a*b)%n = (a%n *b%n)%n;(a+b)%n = (a%n +b%n)%n;详情点击打开链接题意:给出一个整数n,(1 #includeconst int maxn=200+10;const int N=1e6;int mod[N];int t[maxn];int main(){ int n; while(scanf("%d",&n)=原创 2017-02-14 22:07:08 · 334 阅读 · 0 评论 -
蓝桥杯 历届试题 最大子阵
历届试题 最大子阵 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个n*m的矩阵A,求A中的一个非空子矩阵,使这个子矩阵中的元素和最大。 其中,A的子矩阵指在A中行和列均连续的一块。输入格式 输入的第一行包含两个整数n, m,分别表示矩阵A的行数和列数。 接下来n行,每行m个整数,表示矩阵A。输原创 2017-03-08 17:13:54 · 663 阅读 · 0 评论 -
蓝桥杯 历届试题 回文数字 (暴力)
历届试题 回文数字 问题描述 观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。 本题要求你找到一些5位或6位的十进制数字。满足如下要求: 该数字的各个数位之和等于输入的整数。输入格式 一个正整数 n (10输出格式 若干行,每行包含一个满足要求的5原创 2017-03-06 14:22:35 · 287 阅读 · 0 评论 -
HDU 1172 暴力枚举
猜数字Problem Description猜数字游戏是gameboy最喜欢的游戏之一。游戏的规则是这样的:计算机随机产生一个四位数,然后玩家猜这个四位数是什么。每猜一个数,计算机都会告诉玩家猜对几个数字,其中有几个数字在正确的位置上。比如计算机随机产生的数字为1122。如果玩家猜1234,因为1,2这两个数字同时存在于这两个数中,而且1在这两个数中的位置是相同的,所以计算机会原创 2017-03-09 22:16:41 · 289 阅读 · 0 评论 -
蓝桥杯 历届试题 翻硬币
历届试题 翻硬币 问题描述小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:**oo***oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,原创 2017-03-07 09:44:28 · 443 阅读 · 0 评论 -
蓝桥杯 2016 省赛B组 四平方和 (暴力)
四平方和四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多4个正整数的平方和。如果把0包括进去,就正好可以表示为4个数的平方和。比如:5 = 0^2 + 0^2 + 1^2 + 2^27 = 1^2 + 1^2 + 1^2 + 2^2(^符号表示乘方的意思)对于一个给定的正整数,可能存在多种平方和的表示法。要求你对4个数排序:0 并原创 2017-03-27 22:11:37 · 397 阅读 · 0 评论 -
YVA
#include#includeusing namespace std;long long a[30000];int u[20];int main(){int count=1;int i;int n;while(cin>>n){int t=1;a[1]=1;for(int j=1;j>u[j];for(i=1;i int j原创 2016-10-25 19:10:09 · 320 阅读 · 0 评论