搜索
inklutcuah
这个作者很懒,什么都没留下…
展开
-
【jzoj4824】【配对游戏】【搜索】
题目大意流行的跳棋游戏是在一个有m*n个方格的长方形棋盘上玩的。棋盘起初全部被动物或障碍物占满了。在一个方格中,‘X’表示一个障碍物,一个‘0’~‘9’的个位数字表示一个不同种类的动物,相同的个位数字表示相同种类的动物。一对动物只有当它们属于同一种类时才可以被消去。消去之后,他们所占的方格就成为空方格,直到游戏结束。要消去一对动物的前提条件是:这对候选动物所在的方格必须相邻,或它们之间存在一条通路。原创 2016-12-10 14:35:41 · 371 阅读 · 0 评论 -
【jzoj5053】【石子游戏】【搜索】
题目大意桌面上有n堆石子,第i堆中有a[i]个石子,你和你的好朋友玩NIM游戏。你很绅士的让你的好朋友先手,但是,为了展示自己的聪明才智,你想确保自己能够胜利。于是,趁你好朋友不在的时候,你悄悄地从口袋里摸出一些石子,并决定在桌面上若干石子堆中放入一些新石子,并从若干个石子堆中拿走一些石子(可以取完石子堆,但是不能创造新的石子堆)你希望在新的游戏局面中确保自己必胜,同时,为了避免被发现,你对现有局面原创 2017-04-12 14:39:04 · 1097 阅读 · 0 评论 -
【google code jam Qualification Round 2017】【Tidy Numbers】【搜索】
题目大意求一个比x小的最大的数满足从左到右每个数位的数字不下降。解题思路暴力搜索,先枚举大的,找到就退出。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define LF double#define LL long long#define ULL unsigned原创 2017-04-11 15:55:51 · 601 阅读 · 0 评论 -
【jzoj3741】【TJOI2014】【拼图(puzzle)】【搜索】
题目大意解题思路把填放状态压成二进制,直接搜索即可。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define LF double#define LL long long#define Min(a,b) ((a<b)?a:b)#define Max(a,b) (原创 2017-03-25 14:34:28 · 520 阅读 · 0 评论 -
【jzoj3760】【BJOI2014】【Euler】
题目大意欧拉函数 φ(n) 定义为不超过正整数 n 并且与 n 互素的整数的数目。可以证明 φ(n) = n ∗ ∏ (1 − 1 / pi). 其中 pi(1 <= i <= k)是 n 的全部素因子。已知 y,求最小的自然数 x 使得 φ(x) = y.多组询问。解题思路观察可知y的约数-1包含了所有x的质因子,所以我们可以求出x的质因子。通过变形可以用y表示x,通过选取质因子可以求出x,原创 2017-02-07 22:33:35 · 455 阅读 · 0 评论 -
【jzoj4822】【完美标号】【2-set】
题目大意给定M个二元组(A_i, B_i),求X_1, …, X_N满足:对于任意(A_i, B_i),有|X_{A_i} - X_{B_i}| = 1成立。解题思路我们发现其实这是二分图判定,我们只要用0,1染色即可,直接dfs。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<iostrea原创 2016-12-24 19:09:20 · 416 阅读 · 0 评论 -
【jzoj4831】【方程式】
题目大意解多次方程,解在1到20内。解题思路暴力枚举,因式分解。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define LL long long#define LD double#define max(a,b) ((a>b原创 2016-12-04 17:30:12 · 291 阅读 · 0 评论 -
【Codeforces662B】【Graph Coloring】
题目大意给出一个图,边有两种颜色,可以改变一个点相连边的颜色,都取反,求最少改变多少个点使得全部边颜色一样。解题思路可以发现一个点最多改变一次,由于只有两种颜色,一条边只和两个点有关,知道一个点必可求出另一个点的状态,可以暴力求解,具体怎么暴力可以看代码,注意可能有多个连通块。code#include<set>#include<cmath>#include<cstdio>#include<cs原创 2016-07-20 21:46:10 · 620 阅读 · 0 评论 -
【jzoj4743】【积木】【搜索】
题目大意解题思路没什么好讲的,一眼就是搜索,加一个最优性剪枝就过了。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define LF double#define LL long long#define max(a,b) ((a>b)?a:b)#define mi原创 2016-09-05 21:03:55 · 486 阅读 · 0 评论 -
【jzoj4777】【灌水】【搜索】
题目大意解题思路显然暴力模拟,我是一块一块(2*2)考虑的,注意一块有四个访问标记即一个块的不同部分都有可能被访问到。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define LF double#define LL long long#define max(a,原创 2016-09-23 20:27:24 · 362 阅读 · 0 评论 -
【jzoj4766】【Word】【搜索】
题目大意有k个字符串{S1,S2,…,Sk},其中的每个字符不是空格,就是26个小写英文字母中的一个。对于常数 l和d,我们的目标是从这k个字符串中得出一个(l,d)-样词,它是一个长度为l的字符串W=W[1]W[2]…W[l],它的每个字符必须符合下面的条件:每个字符串Si(i=1,2,…,k)都有一个长度为l的子串X=X[1]X[2]…X[l],X和W的出错率小于或等于d。(X和W的出错率是(X原创 2016-09-23 22:04:02 · 286 阅读 · 0 评论 -
【jzoj4325】【NOIP2015提高组Day1】【斗地主】
题目大意给出一副手牌,按斗地主的规则最少多少次打完。解题思路暴力枚举,先打顺子,再打四带,再打三带,最后打对子和单牌。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define LF double#define LL long long#define max(n1原创 2016-11-02 21:53:49 · 688 阅读 · 0 评论 -
【jzoj4841】【平衡的子集】【搜索】
题目大意夏令营有N个人,每个人的力气为M(i)。请大家从这N个人中选出若干人,如果这些人可以分成两组且两组力气之和完全相等,则称为一个合法的选法,问有多少种合法的选法?解题思路使用meet in the middle,分开暴力枚举将两个集合的差值求出来,保存选取情况,合并的时候hash判重。code#include<set>#include<cmath>#include<cstdio>#inc原创 2016-11-09 11:44:08 · 327 阅读 · 0 评论 -
【jzoj4833】【Mahjong】【搜索】
题目大意解题思路暴力,先考虑顺子,再考虑四带,三带,对子,单牌,加点最优性剪枝即可。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define LL long long#define LD double#define max(原创 2016-11-16 12:38:06 · 458 阅读 · 0 评论 -
【51nod1060】【最复杂的数】【数论】【反素数】【搜索】【结论】
题目大意把一个数的约数个数定义为该数的复杂程度,给出一个n,求1-n中复杂程度最高的那个数。例如:12的约数为:1 2 3 4 6 12,共6个数,所以12的复杂程度是6。如果有多个数复杂度相等,输出最小的。解题思路额……这个是求小于n的最大反素数(一脸懵逼)。对于任何正整数x,其约数的个数记做g(x)。如果某个正整数x满足:对于任意i(0<i<x)i(0<i<x),都有g(i)<g(x)g(i)<原创 2016-11-29 16:57:41 · 418 阅读 · 0 评论 -
【jzoj5086】【GDOI2017第四轮模拟day1】【数列】【搜索】
题目大意有一个长度为n 的排列,现在有一些位置的数已经模糊不清了,你只知道这个排列的逆序对个数是K,你能计算出总共有多少可能的排列吗?解题思路观察到空格比较少,考虑meet in the middle。预处理出原本的贡献,每个位填那些数的贡献,考虑如何分数及跨块的贡献,枚举左右的排列及其贡献(从大到小枚举可同时计算贡献),排序后指针扫一遍即可。code#include<cstdio>#includ原创 2017-04-24 21:40:31 · 464 阅读 · 0 评论