03 2013 档案

摘要: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 阅读(645) 评论(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 阅读(211) 评论(0) 推荐(0)
摘要:p.s.寒假过得太堕落,一些计划没完成,忏悔 >< 最近思维能力太差,近期就练这个了,近期不准备学大量的特定算法。dp,贪心,组合数学啊什么的要搞啊搞。 1.概率,期望的一些公式; 2.基本的特殊计数序列(我这种没好好学过组合数学的人真的可以去死了); 3.母函数; 4.Lucas定理; 5.高斯消元; 6..... 刷题方向,主要以提高思维能力和数学能力为主><...比赛最近先不做了吧,心情不太好,冷静一下先 阅读全文
posted @ 2013-03-12 22:37 silver__bullet 阅读(172) 评论(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 阅读(1168) 评论(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 阅读(624) 评论(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 阅读(2305) 评论(0) 推荐(1)