摘要:
好像是智力题的样子。。参考:http://www.cnblogs.com/drizzlecrj/archive/2007/10/20/931011.html以下是构造N个人(N >= 1)过桥最佳方案的方法:1)如果N=1或者N=2,所有人直接过桥。2)如果N=3,由最快的人往返一次把其他两人送过河。3)如果N>=4,设A,B为走的最快的和次快的旅行者,过桥所需时间分别为a,b;而Z,Y为走得最慢的和次慢的旅行者,过桥所需时间分别为z,y。那么当2b>a+y时,使用模式一将Z和Y移动过桥当2b
#include
#include
#include
#include
#incl 阅读全文
摘要:
二维树状数组,注意树状数组下标不能从0开始, 且注意数据中 x1, y1 对于x2, y2不一定是左上角和右上角#include
#include
#include
#include
#include
#include
using namespace std;
int bk[1005][1005];
int n=1004;
int lowbit(int x)
{ return x&(-x);
}
int query(int x,int y)
{ int tp, ret=0; while(x>0) { tp=y; while(tp>... 阅读全文
摘要:
线段树区间变化, 用2进制保存颜色。。#include
#include
#include
#include
#include
#include
using namespace std;
#define LL(x) (x>1; build(LL(p),l,m); build(RR(p),m+1,r);
}
void PushDown(int p)
{ if(T[p].col!=-1) { T[LL(p)].va=T[RR(p)].va=T[p].col; T[LL(p)].col=T[RR(p)].col=T[p].col; ... 阅读全文
摘要:
这题就是找到对应钥匙然后突破对应的门,反正最终目的是要到达X 这个终点。要求花费最小时间,如果不能到达输出The poor student is trapped!很明显是广搜,把钥匙的四种状态都加入到哈希表来记重,还有对应的坐标所以是六维数组。。#include
#include
#include
#include
#include
#include
using namespace std;
int n, m;
char map[105][105];
bool vis[105][105][2][2][2][2];
struct node
{ node(int p,int q,bool ... 阅读全文
摘要:
这题真的过的好艰辛啊,自己的方法是不对的,参考了某个大神的博客,然后修改自己的代码才通过。对于各个区间的交叉之类的还不是很会啊,尚需努力。。。。参考:大神博客线段树真的写的好挫啊,,,,,无力吐槽了。。。题意是对 一些气球染色,然后输出最长的且最近的那个染成白色的连续区间#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define LL(x) x=r) return; T[p].l=l; T[p].r=r; T[p].va=-1; if(l=... 阅读全文