上一页 1 2 3 4 5 6 7 ··· 9 下一页
摘要: 最近真是快被虐哭了,接连两场比赛在坑队友方面都有出色的表现,虽然队友也没说什么,但是心里还是挺愧疚的。这个计划大概就是学期结束之前的了,主要还是学学相对常见而我又不会的东西。1.函数式线段树(这个很久之前就想学了,但是。。呵呵)2.后缀数据结构,主要是就SA和SAM了3.概率,期望方面的基础知识,还有高斯消元。(。。。)4.博弈:主要就是SG定理的应用了。。(博弈搜索什么的先扔到暑假再说)5.插头DP6.组合计数相关(大坑。。。)暑假之前还有一个半月左右的时间,加上还要应付考试什么的,上面的东西得一个一个地啃了,希望能做完吧。暑假的时候再分专题进行特训把。另外计算几何基本就GG了。。靠队友了下 阅读全文
posted @ 2013-06-02 20:59 silver__bullet 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 上周末,我和hanfei19910905,HEU_xueyan两位学长一起参加了省赛。。。。比赛过程: 具体的流水帐可以参见飞哥的总结。。因为卡题卡得太惨烈,我对整场比赛没什么全局概念。。 我们开了A B C F G H I J八个题(不算比赛中临时加的签到题K)...其中A B F G J K过得毫无压力,不过我觉得开始搞G和J的时候有点晚。。。C直接坑了飞哥一场。H由于我突然sb浪费了好多时间。I题被题意坑了一下,飞哥DAG上的DP莫名其妙的WA,最后重新写了个普通有根树版本的才AC。 由于在C和H上浪费了不少时间,这就直接导致我们直接把前中期能切掉的题目硬生生地拖到了后期。。。在飞... 阅读全文
posted @ 2013-05-22 09:45 silver__bullet 阅读(491) 评论(5) 推荐(0) 编辑
摘要: 区间第k大问题,因为这个是动态的,有修改,所以划分树是搞不定的。第一次写树套树,也就是线段树套平衡树,线段树的每个节点是一个平衡树。查询的时候二分枚举答案,然后判断当前枚举的数是不是第k大的。这里我的平衡树选择的是treap,但是释放空间那儿写的好丑。。。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 const int inf=~0u>>1; 6 const int N=(int)1e5+10; 7 const int 阅读全文
posted @ 2013-04-24 20:31 silver__bullet 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 解法:splay显而易见 除了REVOLVE操作,其它的都是splay的常规操作。 REVOLVE操作可以用三次翻转操作来实现。。。如果要实现区间[a,b][b+1,c]的交换,可以依次翻转[a,b],[b+1,c],[a,b]。。。。p.s.换了下splay的代码风格。。瞬间感觉清新明快不少。。。。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 const int N = (int)1e6+10; 6 const int inf=~ 阅读全文
posted @ 2013-04-18 20:59 silver__bullet 阅读(669) 评论(0) 推荐(0) 编辑
摘要: p.s.我只是拿来练treap的。。。treap比SBT真心好写啊。。。又参考了一下别人的treap写法。。真心飘逸。。。。学习之。。。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #include<string> 6 #include<vector> 7 #include<set> 8 #include<map> 9 #include<vector> 10 #in 阅读全文
posted @ 2013-03-27 18:59 silver__bullet 阅读(629) 评论(0) 推荐(0) 编辑
摘要: 解法: 状态压缩,首先注意到第三种可以用两个第五种的块代替,所以枚举状态的时候不用考虑3. dp[i][mask]记录第 i行状态为mask时能覆盖的最大面积,状态转移的时候直接枚举除了铺第一种砖块之外的所有状态,最后作下减法即可求出需要几个第一种砖块。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<bitset> 5 #include<iostream> 6 #define N 1010 7 using namespace std; 8 阅读全文
posted @ 2013-03-15 19:48 silver__bullet 阅读(204) 评论(0) 推荐(0) 编辑
摘要: p.s.寒假过得太堕落,一些计划没完成,忏悔 >< 最近思维能力太差,近期就练这个了,近期不准备学大量的特定算法。dp,贪心,组合数学啊什么的要搞啊搞。 1.概率,期望的一些公式; 2.基本的特殊计数序列(我这种没好好学过组合数学的人真的可以去死了); 3.母函数; 4.Lucas定理; 5.高斯消元; 6..... 刷题方向,主要以提高思维能力和数学能力为主><...比赛最近先不做了吧,心情不太好,冷静一下先 阅读全文
posted @ 2013-03-12 22:37 silver__bullet 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 题意:统计某段区间内满足它所有非零数位能整除这个数本身的数的个数。解法; 自己搞的时候除了想到开N维数组分别记录之外没什么别的想法>< 2~9所有数的lcm最大是2520,dp[pos][pre_mod][pre_lcm]记录前pos位数对2520取余为pre_mod并且非零位的lcm位pre_lcm的个数。 因为2到9的lcm最多只有不到50个,我们需要对lcm离散化一下。。。。 1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #include<algorithm 阅读全文
posted @ 2013-03-11 20:29 silver__bullet 阅读(1163) 评论(0) 推荐(0) 编辑
摘要: 解法: 不含前导0,那么最开始dfs的时候可以把最高位之前那位设为11,这样的话最高位的数选取不受限制,还要注意的就是枚举到当前位的时候数是不是已经大于0。 1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #include<algorithm> 5 #define N 20 6 using namespace std; 7 typedef long long ll; 8 ll dp[N][N]; 9 int bit[N];10 ll dfs(int pos,int st, 阅读全文
posted @ 2013-03-09 14:49 silver__bullet 阅读(618) 评论(0) 推荐(0) 编辑
摘要: 解法: 数据范围很小,其实直接暴力就行,但是刚开始学数位dp,所以还是dp了一下,学习了一下数位dp的dfs写法,感觉简洁明了,但是要注意细节。 dp[i][0]:前i位不含不吉利数的个数。 dp[i][1]:前i位不含不吉利数且i+1位是6的个数。 dp[i][2]:前i位含不吉利数的个数。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #define N 10 5 using namespace std; 6 int bit[N]; 7 int dp[N][3]; 8 9 i 阅读全文
posted @ 2013-03-09 14:44 silver__bullet 阅读(2297) 评论(0) 推荐(1) 编辑
上一页 1 2 3 4 5 6 7 ··· 9 下一页