搜索
wspl654321
。。。。。。
展开
-
狐狸分奶酪(codeforces 371b)
很容易想到的一个思路是暴力,就是对多的蛋糕吃,进行bfs(); 一旦两种蛋糕相等,就是最小步数的,很容易写。 还有更好的方法,很容易看出,最后的解一定是它们的最大公约数,然后把他们的最大公约数去掉,看看能不能吃成1,记下步骤,也可以看能不能吃成最大公约数,是一样的。#include<cstdio>#include<iostream>#include<cstring>#include<que原创 2017-06-18 08:46:41 · 1699 阅读 · 0 评论 -
[SDOI2015]排序
大爆搜 操作不分先后,所以我们就枚举每一个操作 我们从1开始枚举区间个数为i 因为只能交换1<#include<cstdio>#include<iostream> using namespace std;int jc[14],base[14],n,a[1<<13];long long ans;bool check(int x,int t)...原创 2018-03-10 17:05:23 · 334 阅读 · 0 评论 -
A*得题
P2483 【模板】k短路([SDOI2010]魔法猪学院) 也是模板题#include<cstdio>#define ll long long#include<cstring> #include<queue>using namespace std;const int M=220000,inf=0x7fffffff;const double I...原创 2018-03-10 14:16:06 · 188 阅读 · 0 评论 -
A*算法
转自http://www.360doc.com/content/16/1201/12/99071_610999046.shtml http://blog.csdn.net/thinfatty/article/details/72643044 http://blog.csdn.net/kk303/article/details/69539432018-03-10 wspl098760 ...转载 2018-03-10 11:08:31 · 466 阅读 · 0 评论 -
测试 3
chess 简单的搜索题,递归模拟,没啥优化剪枝。。。 不知怎么搞的’,’忘加了。。 然后走一步的特判在程序里错了,弄出去就对了。。。#include<cstdio>#include<iostream>using namespace std;struct st{ int maxn,cnt; };int a[11][11],b[11][11];int xx[]={1,1,-1原创 2017-10-25 15:07:16 · 246 阅读 · 0 评论 -
洛谷月赛八连测 SAC E#1 - 一道大水题 Knight
一开始一直re。。。。 原来是tot,cnt忘付出值为零了。。。。 跳了一上午。。 这个题就是一个包搜 因为只有16个旗子。 但白骑士,与黑骑士和国王不用记,因为你吃不掉黑骑士,国王你只要吃掉就赢了 所以将所有状态用二进制记录下来,有1<<13(2^13) 种,预处理出他们能走于不能走的地方 然后bfs从一个状态到另一个状态。#include<cstdio>#include<cstd原创 2017-10-16 14:53:11 · 585 阅读 · 1 评论 -
加分二叉树
想不到dp,写了个暴力,用记忆化搜索优化a了 枚举一个根,求出子树的最大值,记录下来,一点点向下 输出序列就记录下每个区间最大值的根,从他向下分,输出#include<cstdio>#include<iostream>using namespace std;int n,a[19999],toto,ans2[199999],dep[1999][1999],dp[1999][1999];in原创 2017-10-20 15:46:12 · 196 阅读 · 0 评论 -
小木棍
爆搜,我觉得我的应该更优,可不行,不知为什么,就看了题解 加了剪枝 1.如果不行,比他大的也不行。 2.如果第一个不行剩下的都不行 3.相同的不行#include<cstdio>#include<queue>#include<cstring>#include<cstdlib>#include<algorithm>using namespace std;int cmp(const原创 2017-08-07 10:17:05 · 360 阅读 · 0 评论 -
引水入城
疯狂爆搜233333 dfsdfs%%%% 许多大佬都用bfs判断,这里我用了dfs,就不用再写bfs了。 思路 很容易发现区间一定是连续的,否则不行,就可以先爆搜出区间左和右,转化为一个区间覆盖问题#include<cstdio>#include<iostream>#include<cmath>#include<cstring>#include<algorithm>using原创 2017-08-06 19:52:33 · 180 阅读 · 0 评论 -
油滴扩散
这个题很恶心啊。。 精度处理太tm恶心了。。。。。。。。。。。 思路: 因为n<=6,这也太小了 直接求出全排列来,求出所有点之间的距离,这个点扩展的距离就等于到已确定的点的距离-它的半径的最小值,然后一点点模拟。。 距离小于之前的半径了,就把他的半径付为零,我因这wa曾了四个点#include<cstdio>#include<iostream>#include<cmath>#inc原创 2017-08-06 16:05:02 · 404 阅读 · 0 评论 -
day4
alien 飞船降落问题 矩阵前缀和+枚举 求出前缀和,暴力枚举每一个子矩阵的和,是0就可以降落 注意有正方形飞船,长度不等于点#include<cstdio>#include<iostream>#include<cstring>using namespace std;#define D "%d"#define for(i,x,y) for(int i=x;i<=y;i++)#d原创 2017-07-26 11:23:15 · 180 阅读 · 0 评论 -
mayan游戏
这个题是个大爆搜。。。 考虑把一个位置的方块移到右面,就等同于把一个方块移到左面,所以只枚举向右的就行了,可以保证优先级,但这个位置的方块如果是空的,虽然是向右移的,但题目不让这么输出,所以打个标记就行了。 所以我们的思路就出来了,先枚举换的位置,如果相同就不用换,然后交换,清除,使空中的快下降, 下降完后一次次清除,一次次下降,直到不行为止,这样的话不会超时吗,因为n只有5啊,所以不会爆。#原创 2017-08-08 08:14:27 · 339 阅读 · 0 评论 -
虫食算
这个题很6啊 字符串处理很恶心啊,在我调了两个晚自习之后终于a了 思路:枚举每一个数字代表哪一个字母,如果是30分,就是一个全排列啊,找出所有排列前情况,暴力判断是否过 而这样显然,26的阶乘会炸的很惨,所以我们就需要很多优化 1.如果一竖行的都算出来了,直接判断是否正确,就不用枚举下面的了 2.如果第一位的加起来大于等于n了,就要进位了,这是不符合题意的 3.按从后往前的的顺序搜,先枚原创 2017-08-07 20:26:23 · 443 阅读 · 0 评论 -
八数码难题
调了一下午终于ac了,恶心死我了23333333 这个题大佬们都是用什么康托展开,什么hash。。。 作为一个懒。。我不想写了,就写了个bool,暴力判断重的情况 可是九维的bool会爆数组啊,那我们就要想一个问题,因为数码不会重,知道了前八位,最后一位可以推出来,这样就不会爆了,就可以尽情的去爆搜了 我用了一个bfs 思路:先取出一个0,从0开时搜,交换值 交换值时打一个表就很好解决了原创 2017-08-07 17:43:36 · 352 阅读 · 0 评论 -
斗地主
2015最后一题,这道题是大爆搜+贪心,先枚举四带一,三带一,单牌,etc,再枚举顺子优化解,在搜索优化的解是不是优化的(不一定是最优的,所以要递归),在递归回去,找别的顺子优化。#include<cstdio>#include<iostream>#include<cstring>using namespace std;int t,n;int s[5]; int a[9999],b[9999原创 2017-06-11 09:37:32 · 361 阅读 · 0 评论