1 #include 2 /* 3 输入一个数n,输出1~n的全排列,有多少种不同的排列? 4 //暴力枚举当然可以,写判断累死.for循环嵌套起来也是累. 5 6 这里运用的是depth first search,DFS 深度优先搜索的思想 7 装作n对应的是n张扑克牌,将其放入n个盒子里有...
分类:
编程语言 时间:
2015-06-06 01:36:54
阅读次数:
143
分析:暴力,注意有公共点是指两个城池是否相邻。
#include
#include
using namespace std;
bool map[505][505];
vector vx;
vector vy;
int n,m;
bool judge(int x,int y)
{
bool t1,t2,t3,t4;
t1=t2=t3=t4=0;
if(x>1 && map[x-1][y...
分类:
其他好文 时间:
2015-06-03 10:04:18
阅读次数:
115
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5247
分析:这道题是2015百度之星初赛1的2题,当时没看这道题
是队友看的,比完以后也做了一下,思路大体都是一样的,就是
暴力枚举,因为k
这段区间,把每得到一段连续的子区间[x,?],则num[len]++(len=size([x,?]));
这样就可以了,最后num数组里就是对应的答案...
分类:
其他好文 时间:
2015-06-01 22:37:57
阅读次数:
248
分析:一个图,求图中‘#’组成了多少个十字架,注意十字架的宽度是奇数。对每个‘#’判断,上下左右 ,步长为1 ,2,。。。25是不是都符合条件,符合的话判断个数为奇数即可。
#include
using namespace std;
#define N 50
char map[N][N];
int dir[4][2]={
{-1,0},
{0,-1},
{1,0},
{0,1}};
i...
分类:
其他好文 时间:
2015-05-31 18:31:41
阅读次数:
110
二维dp,定义G[i][j]表示i,j为顶点的最大正方形边长.如果G[i][j]本身为1,则转移方程为:G[i][j]=min(G[i+1][j],G[i][j+1],G[i+1][j+1])+1.其实就是由其下方,右方,右下方的点确定它所能构成的最大正方形(在图上可以很清楚的发现这一点).
其实这道题也可以暴力枚举;我们枚举每个点作为正方形左上角顶点时可以得到的最大边长正方形,而边长为k的正方形...
分类:
其他好文 时间:
2015-05-30 09:24:50
阅读次数:
100
题意:有一个容量为n的箱子,有两种珠宝,占的体积和价值分别是s1,v1,s2,v2,求能装下的最大的价值总量。
分析:刚开始以为是背包问题,但其实没那么简单;后来分情况讨论还是不行;后来又暴力枚举,当然是超时了。正确做法是有一部分是用背包的贪心,另一部分用枚举!现在就是看哪一部分用贪心。
看别人的题解是:L = LCM(s1,s2),可是知道大于L的部分就用价值比高的,所以n%L的部分枚举,其...
分类:
其他好文 时间:
2015-05-28 23:10:46
阅读次数:
174
kruskal思想,排序后暴力枚举从任意边开始能够组成的最小生成树#include #include using namespace std;const int maxn = 101;const int maxe = maxn * maxn / 2;struct edge{ int f,t,c...
分类:
其他好文 时间:
2015-05-23 21:22:23
阅读次数:
198
这个题目如果直接暴力枚举连续子区间是肯定会超时的;其实枚举子区间的时候会有很多重复的计算,我们可以利用这个性质.假设我们现在我们枚举起点为i,终点为j-1的区间是满足要求的,但是由于a[j]的值大于最大值或小于最小值,导致Max-Min>k,那么如果我们是暴力枚举的话,我们会将起点设为i+1然后继续枚举,但是其实如果a[i+1]点的值没有改变最大值或最小值则区间的终点仍然是j,不会得到一个更优的解....
分类:
其他好文 时间:
2015-05-15 17:49:40
阅读次数:
118
打表法就是将所要求的一系列数按照题目所要求的顺序放入一个数组biao[i],当你想要拿出这一系列有规律数中的第i个时 你可以直接拿出biao[i],例如用打表法求素数的集合打表法判断素数在此之前,我们判断素数的方法多是用暴力枚举法,即若要判断一个数n是否是素数,就需要从i=2开始,一直到n/2为止,...
分类:
其他好文 时间:
2015-05-14 14:02:14
阅读次数:
145
题目大意:给定一个区间[l,r][l,r],你需要在这个区间中选择最多kk个不同的数,使得异或和最小当r?l+1≤4r-l+1\leq4时,暴力枚举集合即可
当r?l+1≥5r-l+1\geq5时,讨论:
若k≥4k\geq4,则[l,r][l,r]中一定存在一组数为2k,2k+1,2k+2,2k+32k,2k+1,2k+2,2k+3,故答案为0
若k=1k=1,则只能取ll
若k=2k=2...
分类:
其他好文 时间:
2015-05-13 12:56:12
阅读次数:
183