搜索
文章平均质量分 60
huanghongxun
这个作者很懒,什么都没留下…
展开
-
BZOJ 1648 USACO 2006 Dec Cow Picnic 奶牛野餐 搜索
24ms。。不过排在第1页就好233。爆搜一下各点并记录访问次数,被访问k次即属于答案。#include #include #define FOR(i,j,k) for(i=j;i<=k;i++)const int K = 101, N = 1001, M = 10001;int a[K], s[N], d[N], h[N], p[M], v[M];void dfs(int x)原创 2016-02-08 13:12:11 · 701 阅读 · 0 评论 -
BZOJ 3643|Phi的反函数|搜索|线性筛法
求φ−1(n)=min{x|φ(x)=n}(n≤231) \varphi^{-1}(n)=\min\{x|\varphi(x)=n\} (n\leq 2^{31})太大就输出-1的一定是搜索题φ(n)=n(1−1p1)⋯(1−1pk)=pa11⋯pakk(1−1p1)⋯(1−1pk)=pa1−11(p1−1)⋯pak−1k(pk−1)\begin{aligned} \varphi(n)&=n(1-\原创 2016-04-26 11:07:46 · 636 阅读 · 0 评论 -
POJ 1129 Channel Allocation 图的染色 最大团
%%% http://www.cnblogs.com/zhj5chengfeng/archive/2013/07/29/3224092.html题意:对图染色,要求相邻节点不能同色,问最多要多少种颜色。其实应该是个平面图来着。。四色定理还没用呢。。不管那么多了。。首先,最少需要颜色种数的瓶颈在什么地方?自然是完全图,两两相邻,那么完全图的颜色种数自然是完全图的点数。那么对于一个原创 2016-02-11 15:09:55 · 596 阅读 · 0 评论 -
CodeVS 1416|USACO Train 5.5.3|Two Five|二五语言|搜索
题目【描述】有一种奇怪的语言叫做“贰五语言”。它的每个单词都由A~Y这25个字母各一个组成。但是,并不是任何一种排列都是一个合法的贰五语言单词。贰五语言的单词必须满足这样一个条件:把它的25个字母排成一个5*5的矩阵,它的每一行和每一列都必须是递增的。比如单词ACEPTBDHQUFJMRWGKNSXILOVY,它排成的矩阵如下所示: A C E P T B D H Q U F J M R W原创 2016-04-23 10:19:23 · 1214 阅读 · 0 评论 -
机房水题欢乐赛 2016-04-23 上午 搜索
milk4 【描述】 农夫约翰要量取 Q(1 <= Q <= 20,000)夸脱(夸脱,quarts,容积单位——译者注) 他的最好的牛奶,并把它装入一个大瓶子中卖出。消费者要多少,他就给多少,从不有任何误差。 农夫约翰总是很节约。他现在在奶牛五金商店购买一些桶,用来从他的巨大的牛奶池中量出 Q 夸脱的牛奶。每个桶的价格一样。你的任务是计算出一个农夫约翰可以购买的最少的桶的集合,使得能够刚好用原创 2016-04-23 23:58:31 · 522 阅读 · 0 评论 -
机房水题欢乐赛 2016-04-22 上午
crypt1【描述】下面是一个乘法竖式,如果用我们给定的那n个数字来取代*,可以使式子成立的话,我们就叫这个式子牛式。 * * * x * * ---------- * * * * * * ---------- * * * *数字只能取代*,当然第一位不能为0,况且给定的数字里不包括0。 注意一下在美国的学校中教的“原创 2016-04-23 23:59:38 · 447 阅读 · 0 评论 -
机房水题欢乐赛 2016-04-26 上午
Command【题目描述】我们现在来讨论一种机器的抽象模型。这种机器有一个有限的状态集S={s0,s1,s2..sn} 和一个有限的指令集C={c0,c1,c2…cm} 。机器在任意时刻都处于某 一种状态s∈S 。同时,机器还有一个转移函数f : S x C->S ,表示机器在当前状态下接 到某个指令之后会转移到的状态,亦即机器在状态s下接到指令c后状态会变成f (s,c)。 现在对于一个机原创 2016-04-25 09:11:46 · 835 阅读 · 0 评论 -
CodeForces 731
731A题目大意:类似电话表盘,不过表盘上有26个字母,问一开始表盘指向a,如何转动表盘使得依次指向字符串中的各个字符且转动表盘次数最小(转一格为一次) 题解:每次都拿最近的那个#include <cstdio>#include <algorithm>using namespace std;char s[128];int main() { int i, now, ans = 0,原创 2016-10-17 22:17:48 · 1239 阅读 · 0 评论 -
UOJ 147|NOIP 2015|斗地主|搜索|贪心
你有一些扑克牌,有一些出牌方式,问最少出多少张牌才能全部打光。 分别有:王炸、炸弹、单张、对子、三张、三带一、三带二、四带两张、四带两对、单顺子、双顺子、三顺子。 顺子不包含大小王和2。题目:http://uoj.ac/problem/147没有飞机真是可惜 UOJ中途加强数据QwQ。嘛,考虑搜索。 (还记得考场上的程序写的很丑)显然对于一个出牌的方案,顺序是无关的,因此考虑优先出顺子,顺子原创 2016-05-22 13:22:01 · 1944 阅读 · 0 评论 -
CodeForces #157(258A|258B|258C|258D|258E)|数位DP|搜索|线段树
258A - Little Elephanh and Bits小象有一个二进制表示的整数a。现在它要删掉一个二进制位,使这个新整数最大。输入输出样例input101output11input110010output11010题解显然删去尽量高位的0答案就最大,当然没有0的话随便删个1就好了。代码258B原创 2017-06-17 17:03:03 · 631 阅读 · 0 评论 -
CodeForces 813A|813B|813C|813D - 搜索|DP
CodeForces 813813C - 树上搜索并分析题目利用条件原创 2017-06-09 19:51:10 · 566 阅读 · 0 评论 -
CodeForces #?(727A|727B|727D|727F)|贪心|动态规划
727A题目大意:给出s和t,对s有2个操作:一个×2,一个*10+1,问怎么操作能使s变成t。 题解:暴力。。#include <cstdio>typedef long long ll;bool isPower2(ll x) { return x - (x & -x) == 0;}ll s, t, p[64];void output(int d, ll r) { puts原创 2016-10-16 12:02:29 · 1118 阅读 · 0 评论 -
URAL 1033|Labyrinth|搜索
原文地址:http://acm.timus.ru/problem.aspx?space=1&num=1033题目Labyrinth的管理层决定用新装壁纸迎接新季节的到来。因此他们需要一个程序计算Labyrinth里面的墙壁的面积,这个工作就交给你的大兄弟!Labyrinth用一个N×N(3≤N≤33)N\times N(3\leq N\leq 33)的矩阵表示。有些矩阵元素为字符’.’,表示空地,’原创 2017-10-04 20:48:27 · 736 阅读 · 0 评论 -
UVa 122|HDU 1622|Trees on the level|搜索
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=58题目Trees are fundamental in many branches of computer science (Pun definitely intended). Current stateof原创 2017-10-05 23:59:40 · 560 阅读 · 0 评论 -
BZOJ 1024 SCOI2009 生日快乐 暴力搜索
奇怪以前做了却没写题解..强行爆搜保平安。#include #include using namespace std;double dfs(double x, double y, int t) { if (t == 1) return max(x / y, y / x); double mi = 1e18; for(int i = 1; i <= t /原创 2016-01-30 12:34:36 · 423 阅读 · 0 评论 -
UVALive 7958|Gym 101201G|Maximum Islands|二分图|最大独立点集
DescriptionYou are mapping a faraway planet using a satellite. Your satellite has captured an image of the planet’s surface. The photographed section can be modeled as a grid. Each grid cell is either原创 2017-12-09 20:05:14 · 322 阅读 · 0 评论 -
UVa 112|POJ 1145|Tree Summing|字符串处理|树的遍历
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=48题目描述Lisp是最早的高级编程语言之一,Fortran是现在还在用的最古老的语言之一(说得好像Lisp不是一样)。序列是Lisp语言的基础的数据结构,可以很容易地导出其他数据结构,比如树。 本题需要你解原创 2017-10-05 23:11:54 · 385 阅读 · 0 评论 -
codeforces 618d 搜索
题意:给出一个完全图的生成树,树边权和非树边权,求最短路过各点一次当x#include <cstdio>#include <vector>using namespace std;const int N = 200005;vector<int> g[N];int tree = 0;int dfs(int u, int fa) { int out = 2; for (int原创 2016-02-19 21:09:30 · 1118 阅读 · 0 评论 -
机房水题欢乐赛 2016-02-17
考试时题面用pdf格式给却不是latex生成的,严重吐槽T1: 数字给你N个数,编号1~N,从某个区间[L,R]中,任意选择二个数字,它们相同的概率是多少。Input第一行一个整数N 接下来一行,N个整数。 第三行一个整数M,表示询问次数。 接下来M行,每行两个整数L,ROutputM行,每行一个分数,表示两个数字是相同的概率,必须为最简分数。Sample Input6 41 2 3 3 3原创 2016-02-17 16:56:16 · 400 阅读 · 2 评论 -
POJ 2449 Remmarguts' Date K短路
求图中第k短路长度。毕竟要求k短路,因此前k短路得暴出来。。 一个k短路显然可以被分成一段非最短路和一段最短路。 (非最短路放在前面的目的是更加匹配搜索) 那么最短路显然就是非最短路长度为0的路。 而求出一个k短路显然就是从最短路开始,不断调整前面的非最短路,使其变成k短路,也就是说,调整的过程就是使前面的非最短路变长的过程,具体的方法显然,对于非最短路和最短路的分界点,只要调整其出边,这条原创 2016-03-04 09:52:27 · 494 阅读 · 0 评论 -
BZOJ 1574 USACO 2009 Jan Damage 地震损坏
真是乱搜就A了。而且乱搜能上第一页#14惊了。#include using namespace std;const int N = 30001, M = 200001;int read() { int s = 0, f = 1; char ch = getchar(); for (; ch '9'; ch = getchar()) if (ch == '-') f =原创 2016-02-07 19:40:11 · 617 阅读 · 0 评论 -
BZOJ 1653 USACO 2006 Feb Backward Digit Sums 全排列
%%% http://www.cnblogs.com/zyfzyf/p/3983584.html神奇的杨辉三角#include #include #define rep(i,j,k) for(i=j;i<k;i++)int main() { int n, m, i, j, a[10], f[10]; scanf("%d%d", &n, &m); rep(i,0原创 2016-02-07 18:31:42 · 635 阅读 · 0 评论 -
BZOJ 1673 USACO 2005 Dec Scales 天平
%%%KBlackcn#include typedef long long ll;ll n, a[46], c, ans = 0, q[46];void dfs(ll p, ll s) { if (s + q[p] <= ans) return; if (ans < s) ans = s; for (ll i = p; i; i--) if (s + a[i] <原创 2016-02-07 15:42:19 · 618 阅读 · 0 评论 -
BZOJ 3891 USACO 2014 Dec Piggy Back 搜索 最短路
第一个人从1出发边权A,第二个人从2出发边权B,走到一起边权C,求最短方案使两人走到n。分别从1,2,n跑一次最短路,然后枚举走到一起的点计算答案即可。没开快速读入 104ms,开快速读入84ms,第二页和第一页的区别,然而很小。。#include #include #include const int N = 40001, M = 80001;using namespace原创 2016-01-31 17:01:19 · 375 阅读 · 0 评论 -
BZOJ 1603 [Usaco2008 Oct]打谷机 暴力搜索
一些齿轮之间有正着连接和反着连接,问最后一个齿轮的方向。dfs即可。写不写快速读入就是40ms和4ms的区别。。还真是资格赛。#include const int N = 1001, M = 2001;int read() { int s = 0, f = 1; char ch = getchar(); for (; ch '9'; ch = getchar(原创 2016-01-29 21:11:02 · 503 阅读 · 0 评论 -
BZOJ 1619 USACO 2008 Nov Guarding the Farm 保卫牧场
每次都从最高点开始流即可。话说这个dfs是不是floodfill?跪了,第一页咋这么快。#include #include using namespace std;const int N = 700;int read() { int s = 0, f = 1; char ch = getchar(); for (; ch '9'; ch = getchar()原创 2016-02-08 23:19:36 · 633 阅读 · 0 评论 -
BZOJ 1082 SCOI 2005 栅栏 搜索+剪枝
见到最大最小化的先考虑二分答案。。那好就二分可以满足的需求个数。 首先可以确定的优化 1. 删掉比最小的需求都小的木板,删掉比最大给定木板还大的需求。 2. 优先满足更大的需求,从最小的木板开始切。 3. 如果有相等的需求,且上一个相等需求i切了j,那么该需求就从j开始切,可以避免重复搜索量。 4. 如果没被浪费的小于需求的总量就不合法。 概括地说就是要考虑初始的不合法情况,搜索原创 2016-02-09 13:48:08 · 567 阅读 · 0 评论 -
BZOJ 3109 CQOI 2013 新数独
暴力大法好。读入挺麻烦?3s好慢QAQ强行爆搜即可,及时判断行列以及小方格的数字是否使用和大于小于就可以过了。代码比较丑。#include #include #define rep(i,j,k) for(int i=j;i<k;i++)using namespace std;const int block[9][9] = { {1,1,1,2,2,2,3,3,3原创 2016-02-07 14:49:06 · 874 阅读 · 1 评论 -
BZOJ 1085 SCOI 2005 骑士精神
之前听说过IDA*,好像很优越啊。#1的48ms咋实现的。。估价函数为不在目标位置的棋子个数。如果限定的最大搜索深度超过了已经走过的步数+最小可能的步数(即估价函数值),那么就不需要继续走了。枚举一遍最大搜索深度即可。还得好好斟酌一下要枚举的搜索深度。。#include #include using namespace std;#define rep(i,j,原创 2016-02-07 10:40:42 · 513 阅读 · 0 评论 -
机房水题欢乐赛 2016-02-02
——暨GDKOI校队选拔赛T1: 简单题给出N个整数X1,X2,X3,⋯,XnX_1,X_2,X_3,\cdots,X_n,将这NN个数从小到大排序为A1,A2,A3,⋯,AnA_1,A_2,A_3,\cdots,A_n,记数列X1,X2,X3,⋯,XnX_1,X_2,X_3,\cdots,X_n的奇数项之和为PP,偶数项之和为QQ,令T=∣∣P-Q∣∣T=\left|P-Q\right|,求出TT原创 2016-02-02 14:55:16 · 1029 阅读 · 0 评论 -
机房水题欢乐赛 2016-01-31
——暨GDKOI校队选拔赛T1: WXYZ与绿豆饼描述WXYZ很喜欢吃绿豆饼,而且每次都能吃很多。但是担心WXYZ长的太胖,妈妈把买回来的一卷卷的绿豆饼排成一列(每卷绿豆饼的高度可能是不一样的),规定WXYZ只能取其中一段连续的并且高度严格上升的绿豆饼来吃。 可怜的WXYZ发现,根据这个规则,每次他只能拿到很少的绿豆饼,于是他想到了一个办法:趁妈妈不注意的时候改变某一卷绿豆饼的高度(压扁或拉长它)原创 2016-02-01 23:47:27 · 686 阅读 · 0 评论 -
BZOJ 2783 JLOI 2012 树 搜索
#include const int N = 100001, M = 200000;int p[M], h[N], v[M], cnt = 0;void add(int x, int y) { p[++cnt] = h[x]; v[cnt] = y; h[x] = cnt;}void dfs(int x, int fa) { q[r++] = a[x]; sum += a[x];原创 2016-01-30 15:02:59 · 501 阅读 · 0 评论 -
BZOJ 3632 外太空旅行 最大团
%%% http://www.cnblogs.com/zhj5chengfeng/archive/2013/07/29/3224092.html#include <cstdio>using namespace std;const int N = 55;int ans, f[N], set[N][N], a[N][N];bool dfs(int sz, int dep) { if (!sz原创 2016-02-11 11:19:35 · 468 阅读 · 0 评论 -
POJ 1419 Graph Coloring 最大独立点集->最大团 搜索
给定一个图,输出任意一种最大独立点集的方案。于是构建补图跑最大团即可。#include #include using namespace std;const int N = 105;int ans, f[N], set[N][N], a[N][N], tmp[N], group[N];bool dfs(int sz, int dep) { if (!sz) if (d原创 2016-02-11 14:45:02 · 496 阅读 · 0 评论 -
HDU 3585 Maximum Shortest Distance 最大团 二分答案
平面上有N个点,确定k个点使其中各点对距离的最小值最大。有多组数据。这个最优化问题本身似乎不好解决,所以还是二分一下吧。。如果已知距离的最小值mid,判定是否存在k个点且两两距离均超过mid。将距离超过mid的点连起来求一下最大团即可。二分的时候跪了。。判断二分结束的条件r - l > 1e-4,写1e-3就WA了。。这个故事告诉我们不要吝啬。。开够保证正确性为好。原创 2016-02-11 14:15:36 · 1031 阅读 · 0 评论 -
CodeForces 117C Cycle 搜索
题意求一个长度为3的环。题解枚举中间的点判断fa和child的关系? 一个dfs即可。 作死在读入图的时候用scanf(“%1d”, &g[i][j]) 然后TLE 233。代码#include <cstdio>const int N = 5005;int n, a, b, c, g[N][N], vis[N];bool dfs(int u, int fa) { vis[u] =原创 2016-02-17 20:55:14 · 742 阅读 · 0 评论 -
UVA 1063|11318|UVALive 3807|Marble Game|搜索
棋盘游戏有挡板,每步可以往四个方向之一倾斜,然后所有球往那个方向移动,遇到洞就会掉下去。如果一个球没有落到对应编号的洞就输。然后如果前面是墙或者别的球或者挡板就停止移动。当每个球都落到对应编号的洞就算赢。问最少步数/无解。广度搜索暴力解决之。。 map判重大法好!!!!#include <cstdio>#include <map>#include <queue>#include <cstri原创 2016-04-25 21:46:03 · 561 阅读 · 0 评论