搜索
Jiahe Xu
为何要去攀登珠穆朗玛峰,因为她就在那里啊.
展开
-
zoj3949 Edge to the Root树形dp
题意:给一棵树,从1点任意连一边到其他点,使得所有点到1点的 最短距离之和 最小。题解:先求出某点子树到其距离之和,以及某点除子树外所有点到其距离之和。考虑连到某点时,不能确定的就是当前点和1点的这条链上每个点和其子树的归属问题,很明显应该从链中间点切开这样就可以得到最优解。#include using namespace std;#define maxn 210000int n;ve原创 2017-04-09 20:35:57 · 782 阅读 · 0 评论 -
poj1190 生日蛋糕 搜索+剪枝
首先写出最裸的剪枝。我们可以发现第原创 2014-09-19 19:07:57 · 690 阅读 · 0 评论 -
poj1128 dfs好题 voj1030
先找出每个矩形的边界,再建立拓扑图。原创 2014-08-22 16:15:11 · 533 阅读 · 0 评论 -
poj1011 Sticks 搜索
把长度按大到小排一次。#include #include #include #include using namespace std;int sticks[65];int used[65];int n,len;bool dfs(int i,int l,int t){ if(l==0) { t-=len; if(t==0)return原创 2014-09-19 18:02:57 · 503 阅读 · 0 评论 -
hdu1520
蒟蒻的自我拯救。。。#include #include #include #include #include using namespace std;#define maxn 11000struct node{ int u,v;}g[maxn];int p[maxn],next[maxn],val[maxn],n;int num,vis[maxn];long l原创 2014-07-31 15:15:11 · 483 阅读 · 0 评论 -
hdu2140
蒟蒻的自我拯救。。。#include #include #include #include #include using namespace std;char st[100],st2[100];int sum[100],len1,len2,ans;int pow(int num){int tmp=1;for(int i=1;i<=num;i++){tmp*=10;}return t原创 2014-08-03 10:13:12 · 473 阅读 · 0 评论 -
hdu1072 bfs
蒟蒻的自我拯救。。。#include"cstdio" #include"cstring" #include"cmath" #include"cstdlib" #include"iostream" #include"algorithm" #include"queue" using namespace std; int n,m; int move[4][2]= {{原创 2014-08-03 15:59:06 · 416 阅读 · 0 评论 -
hdu1539Shredding Company dfs
蒟蒻的自我拯救。。。#include #include #include #include #include using namespace std;char save[100];int st[100];int n,m,ans[100],getm,tmp[100],numans,lans;void dfs(int loc,int sum,int now,int t){ /原创 2014-07-30 20:50:35 · 544 阅读 · 0 评论 -
poj3669 Meteor Shower BFS
#include #include #include #include #include #include using namespace std;int st[400][400];struct node{ int x,y,t,mv;}save[51000];vectormiss[1100];int n,ed;int dx[]={0,0,1,-1,0};int原创 2014-08-28 18:07:33 · 478 阅读 · 0 评论 -
hdu5887 Herbs Gathering 搜索01背包
题目大意:01背包,但花费和价值都是10w 可是商品只有100个题解:搜索01背包,对花费进行排序,记下前缀和,然后搜索时强剪枝就好了。PS:这题改编自一个usaco的原题 http://blog.csdn.net/eod_realize/article/details/38656021 #include #include #include #include #include原创 2016-09-18 09:00:30 · 962 阅读 · 0 评论 -
bzoj3106: [cqoi2013]棋盘游戏 对抗搜索
f[X][Y][A][B][C][D]代表白在A,B;黑在C,D时走了Y步。如果X是0代表这一步改白走。#include #include #include using namespace std;#define INF 0x3fffffffint f[2][61][22][22][22][22];int n,a,b,c,d,i,j,k;int dfs(int x,int y,int原创 2014-12-21 21:14:57 · 1549 阅读 · 0 评论 -
codevs2102 石子归并 2
那年还是孩子的我一位有多难,现在原创 2014-11-06 15:56:43 · 537 阅读 · 0 评论 -
bzoj1198: [HNOI2006]军机调度
有爱的搜索题。我们可以把每个任务所有满足条件的分人方式记录下来。由于人数很少可以用位运算。按起始时间排序,由于只是改变了原序列对任务分配时的编号,所以用myp标记一下即可。#include #include #include #include #include #include using namespace std;#define pb(a) push_back(a)原创 2014-11-26 23:58:35 · 895 阅读 · 0 评论 -
hdu 4705 树形dp
题意:树上任意三个点不在一条路径上,统计这样的三点集合有多少种。三个点构成的路方案数 S = C(n,3)=n*(n-1)*(n-2)/6用S减去三个点在一条路径上的数目就是答案。枚举中间点作为第二个点,在它的第K棵子树上找一个点作为第一个点,在剩下的,没有枚举过的结点里,找一个点作为第三个点。数目相乘。这样问题就变成了统计结点的子节点问题,简单的树形dp原创 2014-11-05 18:27:28 · 434 阅读 · 0 评论 -
vijosP1879 小岛的贪吃蛇 BFS
BFS 队列要手动开到1e6 (巨坑)。原创 2014-09-28 19:41:35 · 718 阅读 · 0 评论 -
poj2688 Cleaning Robot 简单BFS+DFS
先bfs处理出各个垃圾之间的距离,然后直接原创 2014-09-24 18:11:46 · 568 阅读 · 0 评论 -
bzoj1024: [SCOI2009]生日快乐 DFS
裸搜,每次把剩下的蛋糕分为原创 2014-07-25 15:25:27 · 904 阅读 · 0 评论 -
bzoj1048: [HAOI2007]分割矩阵 记忆化搜索
#include #include #include #include const int INF = (int)(1e9) + 10; const int N = 10 + 2;int d[N][N][N][N][N];//x1,y1,x2,y2,lim int r, c, lim; int ar[N][N];int sum(int x1, int y1, i原创 2014-08-04 09:16:01 · 734 阅读 · 0 评论 -
poj2044 Weather Forecast 搜索
vis判重 几个值分别表示 日期 左上角所在位置()原创 2014-09-22 20:28:51 · 899 阅读 · 0 评论 -
hdu1456
验证别写函数。。。原创 2014-08-01 07:21:40 · 633 阅读 · 0 评论 -
hdu1619
蒟蒻的自我拯救。。。#include #include #include #include #include using namespace std;int save[20][200],dp[20][200];int ans[200],tmp[200];int n,m;bool cmp(int aa,int bb){ return aa<bb;}int dfs(in原创 2014-07-31 16:53:18 · 589 阅读 · 0 评论 -
hdu2307
#include #include #include #define MIN(X,Y) (((X) using namespace std;bool necklace(string T){ size_t n = T.size(); for (size_t i = 1; i for (size_t j = 0;原创 2014-08-03 08:33:43 · 643 阅读 · 0 评论 -
hdu2181
蒟蒻的自我拯救。。。#include #include #include #include #include using namespace std;int save[100][100],ans[100],n,sum;bool vis[100];void dfs(int num,int dep){ ans[dep]=num; if(dep==20) {原创 2014-08-01 22:02:52 · 524 阅读 · 0 评论 -
hdu1515
蒟蒻的自我拯救。。。#include #include #include #include #include #include using namespace std;char st[1000],re[1000];int len,ans[1000],tmp[1000],len2;void print(){ for(int i=0;i<2*len;i++) {原创 2014-08-01 14:07:39 · 687 阅读 · 0 评论 -
hdu1514
蒟蒻的自我拯救。。。原创 2014-08-01 12:28:42 · 600 阅读 · 0 评论 -
hdu1455
蒟蒻的自我拯救。。。#include #include #include #include #include using namespace std;#define maxn 100int len[maxn],n,num,sum;bool vis[maxn];bool dfs(int length,int l,int count,int pos){ if(length=原创 2014-07-31 21:04:57 · 596 阅读 · 0 评论 -
hdu1429
很久以前写的。。#include #include #include #include using namespace std;int dir[4][2]={1,0,-1,0,0,1,0,-1};struct node{ int key,step; int x,y;};int ans,n,m,t,s_x,s_y;char map[22][22];int ha原创 2014-07-17 19:55:36 · 523 阅读 · 0 评论 -
hdu2821
直接dfs#include #include #include int n,m,num,cnt,a[35][35],dir[4][2]={0,-1,0,1,-1,0,1,0}; char map[35][35],p[]="LRUD",path[625]; int ok(int x,int y) { if(x=n||y>=m) ret原创 2014-07-17 19:26:39 · 452 阅读 · 0 评论 -
wikioi2966 Catch That Cow 简单BFS
把每种情况入队即可,有used[]判断每个点是否走过原创 2014-04-30 19:37:54 · 497 阅读 · 0 评论 -
hdu1026
进bfs了。。。蒟蒻的自我拯救。。。原创 2014-08-03 15:52:39 · 500 阅读 · 0 评论 -
hdu1010 dfs
蒟蒻决定开始练dfs了,所以原创 2014-07-30 08:21:48 · 417 阅读 · 0 评论 -
hdu1813
蒟蒻的进击。。。#include #include #include #include #include #include #include using namespace std;int n,cnt,len,save[20][20],dis[20][20],ans[100];char st[20];int dx[]={0,-1,1,0};int dy[]={1,0,0,-1原创 2014-08-04 23:06:06 · 521 阅读 · 0 评论 -
hdu1518
蒟蒻的自我拯救。。。#include #include #include #include #include //#pragma comment(linker, "/STACK:1024000000,1024000000")using namespace std;int save[100],n,sum,num;bool vis[100];bool dfs(int length,i原创 2014-08-01 08:52:10 · 600 阅读 · 0 评论 -
hdu1627
蒟蒻的自我拯救。。。#include#include#include#include#include#include#include#includeusing namespace std;const int maxn=41779;int a[142];int n,l; int cnt=0;bool dfs(int cur){ if(cnt==n) {原创 2014-07-31 08:05:12 · 542 阅读 · 0 评论 -
hdu2266
蒟蒻的自我拯救。。。#include #include #include #include #include using namespace std;int save[100],len,n,ans;char st[100];void dfs(int loc,int sum,int now){ //printf("%d %d %d\n",loc,sum,now);原创 2014-07-31 09:20:46 · 653 阅读 · 0 评论 -
hdu1312
蒟蒻的自我拯救。。。#include #include #include #include #include using namespace std;int m,n,sx,sy,ans;char st[30][30];bool vis[30][30];int dx[]={1,-1,0,0};int dy[]={0,0,1,-1};bool ok(int x,int y){原创 2014-07-30 16:11:36 · 533 阅读 · 0 评论 -
hdu1208
蒟蒻的自我拯救。。。#include #include #include #include #include using namespace std;#define ll __int64int save[40][40],m,n;ll dp[40][40];bool ok(int x,int y){ if(x>0&&x0) return true;原创 2014-07-31 13:57:12 · 585 阅读 · 0 评论 -
hdu1142
蒟蒻的自我拯救。。。#include#include#define INF 10000000int map[1001][1001];int vis[1001];int dis[1001];int n,m;int dp[1001];void dijkstra(int st){ int i,j,k; memset(vis,0,sizeof(vis)); for原创 2014-07-31 13:19:52 · 511 阅读 · 0 评论 -
hdu1078
蒟蒻的自我拯救。。。#include #include #include #include #include using namespace std;int save[500][500],dp[500][500];int m,n,k;int dx[]={0,0,1,-1};int dy[]={1,-1,0,0};bool ok(int x,int y){ if(x>0原创 2014-07-31 11:11:10 · 479 阅读 · 0 评论 -
hdu2660
#include #include #include #include #include using namespace std;int v[2000],c[2000],ans,n,m,maxl;void dfs(int loc,int sum,int val,int get){ if(n-loc<m-get) { return; }原创 2014-07-31 09:54:48 · 564 阅读 · 0 评论