2014年11月1日
摘要: 好吧。。。想了半天想错了。。。虽然知道是贪心。。。我们每次找没有被买的两种价格最小的牛,比较a = 当前差价最大的 + 当前优惠券价格最小的牛与b = 当前非优惠券价格最小的牛所以。。。我们要先维护两个小根堆,分别表示用优惠券买的牛的价格和不用优惠券买的牛的价格还有个叫Recover的大根堆,表示当... 阅读全文
posted @ 2014-11-01 20:30 Xs酱~ 阅读(908) 评论(3) 推荐(0) 编辑
摘要: 貌似以前做到过这题。。。结果没搞出来T T现在终于会了!谁想出来的,这么巧妙>.11 #include 12 13 using namespace std;14 const int N = 100005;15 int n, ans;16 int v[N], a[N], b[N];17 18 in... 阅读全文
posted @ 2014-11-01 17:09 Xs酱~ 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 一、线性筛法众所周知。。。线性筛就是在O(n)的时间里找出所有素数的方法code: 1 void get_prime(int N){ 2 int i, j, k; 3 memset(Flag, sizeof(Flag), 0); 4 for (i = 2; i N) bre... 阅读全文
posted @ 2014-11-01 12:09 Xs酱~ 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 支持合并,删除最小值操作的不就是可并堆吗。。。还要窝有板子,液!这题还要注意,对于一个点,找根的话,要用到并查集。 1 /************************************************************** 2 Problem: 1455 3 ... 阅读全文
posted @ 2014-11-01 10:41 Xs酱~ 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 蒟蒻只会广搜。。。20分。。。后来发现对于一个状态,中间的一个棋子可以往两边跳,而两边的棋子最多只有一个可以往中间跳(怎么发现的?废话嘛、、、!)故每个状态看做一个点,有关连的状态连起来,就形成了一棵二叉树对于一个某个有解的状态而言,中间往两边跳的两个状态是它的儿子,两边往中间跳的状态是它的父亲于是... 阅读全文
posted @ 2014-11-01 09:47 Xs酱~ 阅读(405) 评论(0) 推荐(0) 编辑