procedure2012
It's not worth it to know you're not worth it!
上一页 1 2 3 4 5 6 7 8 9 ··· 20 下一页
摘要: [关键字]:贪心[题目大意]:在一个有n个点的树中选若干个点建设交易中心,要求每个点到交易中心所经过的道路数不能超过k,求最少需要建几个交易中心分别在什么地方。//=========================================================================================[分析]:如果两个服务站之间的距离不大于2*k+1,那么这两个服务站之间的点都是可以被服务到的。这个时候我们先给叶子节点进行编号(编号表示一个点到其中特殊服务站的距离):设其编号为k+1。这样,保证了它下面的节点不会照顾到它,然后从叶子节点往上面操作。每次考 阅读全文
posted @ 2012-03-24 22:41 procedure2012 阅读(398) 评论(0) 推荐(0) 编辑
摘要: [关键字]:动态规划[题目大意]:在一个n*n的棋盘里放k个主教(象),问使它们不能互相攻击的摆放方案有多少种。//==================================================================[分析]:其实不难但我没想到。首先玩过象棋的都知道黑象是吃不到白格里的,反之亦然。所以只要枚举在白格里放i个*黑格里放k-i个累加就行了。但是如何求出来呢?如果把整个棋盘旋转45度主教的行走路线就不再是斜线而是直线!他们变成了车!然后可以动态规划之:f[i][j]=f[i-1][j]+f[i-1][j-1]*(t-(j-1))前i行放j个的方案数,t 阅读全文
posted @ 2012-03-24 22:30 procedure2012 阅读(466) 评论(0) 推荐(0) 编辑
摘要: [关键字]:搜索 位运算[题目大意]:在一个n*n的棋盘里放k个王后,问使它们不能互相攻击的摆放方案有多少种。//==================================================================[分析]:就是n皇后问题的稍微变形,但要加上位运算优化。具体可以看matrix67神牛的博文。[代码]:View Code #include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm&g 阅读全文
posted @ 2012-03-24 22:10 procedure2012 阅读(172) 评论(0) 推荐(0) 编辑
摘要: [关键字]:图论 其他 反向思维[题目大意]:给出一个n个点m条边的有向图,初始时每条边都是非负数。如果一个点所有的入边的权值都是正整数,那就称它为激活的(或没有入边)。对这个图的操作时呈周期的,每个周期任意选一个已激活的点进行“fire”操作:入边权-1出边权+1,然后更新激活节点。如果一个点可以通过一系列“fire”操作激活自己那称它为“potentially alive”,如果一个点在任意次“fire”后仍旧是“potentially alive”那就称它是“alive”,问每个点是否是“alive”。[分析]:要运用反向思维的方式去想,如果初始时有一条入边是0,那就看上一个点如果也有一 阅读全文
posted @ 2012-03-23 23:12 procedure2012 阅读(321) 评论(0) 推荐(0) 编辑
摘要: [关键字]:动态规划[题目大意]:在一个n*n的棋盘里放k个王,问使它们不能互相攻击的摆放方案有多少种。//==============================================================[分析]:状态压缩动态规划,类似于炮兵阵地。方程:f[i][j][k1]=Σf[i-1][j-b[k1]][k2],表示前i行放j个王第i行状态是k1,i-1行状态时k2时的方案数。k1是利用二进制表示的这一行的状态,1表示有王0表示没有王。转移时要判断:(k1&k2)==0 ((k1<<1)&k2)==0 ((k1>>1)& 阅读全文
posted @ 2012-03-23 22:27 procedure2012 阅读(184) 评论(0) 推荐(0) 编辑
摘要: [关键字]:数学 组合计数[题目大意]:在一个n*n的棋盘里放k个车,问使它们不能互相攻击的摆放方案有多少种。//====================================================================[分析]:一开始推了半天递推公式也没解决了判重等一系列问题。然后在仔细一看题,太简单了……首先每一行每一列只能有一个车,所以找出k个车所摆放的k行k列总共有C(n,k)2种方案数,而在这k行k列中车的摆放方案共有k!种,所以最后答案就是C(n,k)2*K!(注意用int64)。[代码]:View Code #include<iostream& 阅读全文
posted @ 2012-03-23 22:12 procedure2012 阅读(243) 评论(0) 推荐(0) 编辑
摘要: [关键字]:数学 高斯消元 异或方程组[题目大意]:给出m个数,保证每个数的质因数都不超过第t大的质数。从中选出若干数使其乘积为完全平方数,问有多少选择方法。//=================================================================================[分析]:首先可以想到如果一个数是完全平方数那它的所有质因数的指数都应该是偶数。根据这个可以列出方程组:a11*x1+a12*x2+……+a1n*xn=d1%2=0a21*x1+a22*x2+……+a2n*xn=d2%2=0……at1*x1+at2*x2+……+atn*xn= 阅读全文
posted @ 2012-03-22 18:41 procedure2012 阅读(232) 评论(0) 推荐(0) 编辑
摘要: [关键字]:数学 数论 公约数 欧拉函数[题目大意]:给出一个整数n,求出<=n的与n互质的数的个数。//================================================================================================[分析]:欧拉函数就是求出小于等于x的互质的数有几个。公式:φ(x)=x*(1-1/p1)*(1-1/p2)*......*(1-1/pn),其中pi是x的质因数。性质:1、φ(x)=x-1,其中x为指数 2、φ(xy)=φ(x)*φ(y),其中gcd(x,y)=1根据性质可以找出在O(n)复杂 阅读全文
posted @ 2012-03-22 18:24 procedure2012 阅读(237) 评论(0) 推荐(0) 编辑
摘要: [关键字]:图论 网络流 最大权闭合图[题目大意]:有n个地方可以建中转站花费不同,有m个顾客群每个顾客群会利用a,b中转站,收益为c,问最大获利。//=============================================================================================[分析]:最大权闭合图的典型例题,据说是NOI第一道网络流的题目,可以先看一看《航空计划》这道题。首先可以看成n+m个点,每个点有一个权值,有些是正(收益)有些是负(花费)。有些点依赖于其他的点,由依赖的点向被依赖的点连边就构成了一个最大权闭合图,然后利用网络流 阅读全文
posted @ 2012-03-21 08:34 procedure2012 阅读(1376) 评论(0) 推荐(0) 编辑
摘要: [关键字]:图论 网络流[题目大意]:有n天每天需要ai个志愿者,有m种志愿者每种可已从第xi天干到第yi天花费为ci(不是志愿者吗),问最小花费。[分析]:弱菜没做出来,Orz BYvoid神牛http://www.byvoid.com/blog/noi-2008-employee/[代码]:View Code #include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#include<queue>usin 阅读全文
posted @ 2012-03-21 08:15 procedure2012 阅读(1703) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 20 下一页