- 博客(10)
- 问答 (1)
- 收藏
- 关注
原创 zoj3777 Problem Arrangement
题意:n道题目放在n个位置,任意题目放在任意位置会得到一个分数,求总分>=m的方案数;也可以看成在n*n矩阵中选n个不同行不同列的数。分析:dp[i][s][k]表示前i个数放在s集合的这些位置得分为k的方案数,s是现在各位置的状态,可以省略i这一维,s已经包含前多少个位置的信息了,而且可以由s递推之后的状态,这是因为由s递推其他状态时,s已经被递推完成了。#include#includ
2015-03-24 14:10:50 422
原创 zoj3826 Hierarchical Notation
题意:一些结构体,键和值是字符串,有若干组询问,输入键,输出值。分析:写一个递归函数,用把每一个键对应一个哈希值,对应的值为开始和结束下标。#include#include#include#include#include#include#includeusing namespace std;typedef unsigned long long ull;typedef lo
2015-03-21 17:38:04 373
原创 zoj3822 Domination
题意:n*m的棋盘,每天放一个棋子,直到每行每列都有棋子时不再放,问所放棋子个数的期望。分析:概率dp,dp[a][b][k]表示用k个棋子占据a行b列还需棋子的期望,具体转移看代码。#include#include#include#include#include#include#include#include#include#define inf 1000000000
2015-03-19 17:29:57 382
原创 zoj3847 Collect Chars
点击打开链接题意:从@开始走,走到任何一个字母节点可以捡起>=1个字母,找到给定字符串集合中的任一个字符串的最小步数。分析:对给出的字符串建ac自动机,从@开始走,dp[i][j][k]代表在自动机的节点i,位于(j,k)点走的最小步数,用spfa转移。#include#include#include#include#include#include#include#inc
2015-03-13 19:45:50 501
原创 codeforces 46E Comb
题意:n*m的矩阵每个位置一个数字,现在要从每一行取出c个数字,要求c1>c2c4....,且所取数字总和最大,n,m分析:dp[i][j]表示i行取j个元素且前i行满足条件,此时的最大值,dp[i][j]=dp[i-1][k]+d[i][j],能想到这里就够了。#include#include#include#include#include#include#include#
2015-03-12 19:13:00 593
原创 zoj3845 Fixed Point
题意:求L-R有多少个x满足c&x==x,c|x==x,x^x==x,且x的二进制位中1-0的绝对值分析:数位dp,从第0位到第31位递推,dp[i][j]表示31-i位满足条件且差值为j的方案数,flag记录0-i位是否超过边界值,若处理到31位flag认为false,则返回0。#include#include#include#include#include#include#
2015-03-09 20:21:21 477
原创 hdu5138 Negative and Positive (NP) 快速读入
先预处理前缀和sum[i],枚举区间尾i,查找哈希表中是否有sum[i]-k和sum[i]+k,哈希表用map就行了,mp[0]表示以偶数下标结尾前缀和,mp[1]表示以奇数下标结尾前缀和。快速读入read.#include#include#include#include#include#include#include#include#include#include#d
2015-03-07 22:43:26 459
原创 求逆元的两种方法
扩展欧几里得算法求逆元 ax ≡ 1 (mod n) 其中a,n互质。复杂度:O(logN)LL extend_gcd(LL a, LL b, LL &x, LL& y) { if (b == 0) { x = 1, y = 0; return a; } else { LL r = extend_gcd(b, a % b,
2015-03-05 15:37:57 458
原创 Codeforces Round #295 (Div. 2) E. Pluses everywhere
在n位数之间插入k个+,求所有方式加起来的和mod1e9+7;考虑各个位上的数对最终结果的贡献,把各个位作为个十百千...位的次数用组合数写出来可以发现规律;大组合数取模:预处理阶乘和阶乘的逆元,阶乘的逆元可以从后往前递推。#include#include#include#include#include#include#include#include#include#
2015-03-05 15:22:06 388
原创 Codeforces Round #294 (Div. 2) E. A and B and Lecture Rooms
一个数n个节点,m组询问,需回答与a,b距离相等的点的个数。首先转化为根树,求得a,b的lca,d[i]表示i到节点1的距离,d1=d[a]-d[lca],d2=d[b]-d[lca],d1+d2为奇数时结果为0,偶数时两种情况:num[i]为以i为根的子树节点数。1.d1==d2,u=a向上走d1-1步,v=b向上走d2-1步,结果为n-num[u]-num[v];2.假设d1>
2015-03-03 21:53:50 581
空空如也
ACM一道题 poj3523 UVA1601双向广度优先BFS
2014-10-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人