摘要:
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3998 组队训练时候的一道题。题意是用给出的6个数利用加减乘除求出一个最接近给定数字的数,输出解决方案。 直接用状态压缩的方法,利用集合并,在两集合得出的数值之间加入运算符,存到新的集合之中去。如果不加入剪枝,总的状态数多达50W个,STL的常数大,所以会直接超时了。然后我们可以加上这样的一个剪枝,对于同一个状态,插入的数不应该重复,因为这样的一个数我们只需要一种获取方式就够了。于 阅读全文
摘要:
Problem - 3564 好不容易看见一道可以用Splay Tree写的题,结果应该是常数过大超时了。 好不容易还是给我找到bug了,就是一个字母打错,导致超时了。splay tree可以以421ms的时间完美通过。做法就是模拟插入数字,维护区间的最大LIS值即可。Splay版代码: 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #include <iostream> 5 6 using namespace std; 7 8 const int inf = 阅读全文