2015年3月27日

CodeForces 285E Positions in Permutations :找出多少恰好满足k个位置的|a[i]-i|==1的n的全排列个数 :dp/思维

摘要: dp[i][j] 表示前i个位置中正好有j个位置满足good对于第i个位置 第i个位置不是good dp[i][j]= dp[i-1][j] 。 第i个位置是goodi取i+1转移没问题,但i取i-1可能被前面用过,所以记录后面三个数根据dp结果可以算出sum[i],然后sum[i] *=fac... 阅读全文

posted @ 2015-03-27 17:54 xiao_xin 阅读(498) 评论(0) 推荐(0) 编辑

CodeForces 385C Bear and Prime Numbers :给定n个数和m个询问,对于每个询问n个数里面是l-r中质数倍数和(不重复) :筛法的技巧

摘要: 题意和范围:http://codeforces.com/problemset/problem/385/C好题呀==在筛质数的过程中顺带累加筛他的质数vis值最后统计就是前缀和相减== 1 #include 2 #include 3 #include 4 using namespace std; 5 ... 阅读全文

posted @ 2015-03-27 17:21 xiao_xin 阅读(263) 评论(0) 推荐(0) 编辑

CodeForces 232B Table : n*m (m>>n)的矩阵使每个n*n矩阵里面准确包含k个点,有多少种放法 :dp/数学思维/快速幂

摘要: 本题关键地方在于:只要确定前n列的点阵,后面每列放多少就全部确定了==这样就可用dp和组合数预处理递推前面的n列放法,同时利用快速幂将所有列放法计算出来 1 #include 2 #include 3 #include 4 using namespace std; 5 #define LL long... 阅读全文

posted @ 2015-03-27 17:07 xiao_xin 阅读(358) 评论(0) 推荐(0) 编辑

CodeForces 314C Sereja and Subsequences :找出序列种所有不下降子序列,求出所有子序列乘积和 :技巧/树状数组

摘要: 树状数组数组里面记录的值是当前以a[i]结尾的乘积和=比如当前到i的a[i],查询1-a[i]的所有值和,乘以(a[i]+1)就是当前以a[i]为结尾的乘积和=这样出现了重复计算的情况,只要减去上一次a[i]结尾的乘积和即可 1 #include 2 #include 3 #include 4 us... 阅读全文

posted @ 2015-03-27 16:54 xiao_xin 阅读(345) 评论(0) 推荐(0) 编辑

CodeForces 201A Clear Symmetry :寻找最小的n使n*n矩阵里面可以对称且不相邻的放下至少x个1 :数学/思维/找规律

摘要: 首先n为偶数必然没有n为奇数优==而n为奇数最多能放(n^n+1)/2个1特别注意特判x=3的时候需要5个,因为3个那样放就相邻了== 1 #include 2 #include 3 #include 4 using namespace std; 5 int main() 6 { 7 int n... 阅读全文

posted @ 2015-03-27 16:24 xiao_xin 阅读(177) 评论(0) 推荐(0) 编辑

CodeForces 225C Barcode :一个只包含.和*的矩阵,改变最少的点+星,使每列只有一种,连续的在x-y之间 :dp

摘要: 比较裸的dp了,多做dp有益身心健康==dp[i][j][kind]表示到i时,是以kind的种类结束,且他连续了j个这种dp一般想到状态,转移方程也就好想了,注意1才需要大规模累加 1 #include 2 #include 3 #include 4 using namespace std; 5 ... 阅读全文

posted @ 2015-03-27 16:07 xiao_xin 阅读(216) 评论(0) 推荐(0) 编辑

CodeForces 276D Little Girl and Maximum XOR :L到R内找出两个数,使他们亦或和最大:找规律

摘要: 像我这种一遇到这种类型题目必然先打个表==然后发现其实就是找到L和R二进制由高到底第一位不同的数,低位全部变成1,想想也好明白== 1 #include 2 #include 3 #include 4 using namespace std; 5 int main() 6 { 7 long lo... 阅读全文

posted @ 2015-03-27 15:55 xiao_xin 阅读(227) 评论(0) 推荐(0) 编辑

CodeForces 525E Anya and Cubes :n个数可以对每个数拿本身,拿阶层,不拿,问和为s有多少种取法 :折半爆搜/map(map迭代)

摘要: n,LL>mp迭代是(it->first).first== 又学了一点stl 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define LL long long 7 pairtmp; 8 map,LL>m... 阅读全文

posted @ 2015-03-27 15:35 xiao_xin 阅读(148) 评论(0) 推荐(0) 编辑

CodeForces 525D Arthur and Walls :只包含点和星的矩阵,需要将部分星变成点使满足点组成矩形 : dfs+思维

摘要: 关键点在于,什么时候需要改变?注意到只有一个2*2的矩形里面只有一个星才需要改变这个星为点只要想到这个这题就能各种姿势搜索了===可以dfs,从可变矩形向四周拓展== 1 #include 2 #include 3 #include 4 using namespace std; 5 int xx[]... 阅读全文

posted @ 2015-03-27 15:24 xiao_xin 阅读(143) 评论(0) 推荐(0) 编辑

CodeForces 69D Dot :两个人轮流移动棋子,移动方法有n种,谁先移动到距离原点>d则输,问谁赢 :博弈+记忆化

摘要: 其实本题还有一个可以沿y=x对称的操作,但仔细思考会发现其并不影响对于一个点,比如A当前先走,只要找到一个他可以跳的地方且B从这儿必跪的A就必胜=否则A跪所以可以用记忆化dfs来写,复杂度大概200*200*20 1 #include 2 #include 3 #include 4 using na... 阅读全文

posted @ 2015-03-27 00:16 xiao_xin 阅读(246) 评论(0) 推荐(0) 编辑

CodeForces 14E Camels :利用1-4拼成长为n的序列,使准确含有t个峰t-1个谷,求方案数 :dp

摘要: 3 ≤ n ≤ 20,1 ≤ t ≤ 10如此小的数据接下来就能各种暴力了===dp[i][j][k][t1][t2]表示前i个字符的最后两个是j和k已有t1个峰t2个谷枚举当前放的数,转移方程容易思考了=复杂度是20*4*4*10*10*4==轻松过啊 1 #include 2 #include ... 阅读全文

posted @ 2015-03-27 00:04 xiao_xin 阅读(260) 评论(0) 推荐(0) 编辑

导航