9th ZJPCPC
文章平均质量分 58
ZuXu
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ZOJ 3601 Unrequited Love
注意到若存在两个人同时满足条件的话会推出矛盾,因此满足条件的只能有一个人。开始想到先利用被爱关系,把肯定不满足条件的人踢掉。若果剩下一个人,则判断他是否爱所有人,只见时间一直从0飙到16秒。其实是有线性的方法的,先假定第一个人a满足条件,从第二个人开始遍历。若b爱a或a不爱b,则把a置成b。被覆盖的那些肯定是不满足的条件的,而对于跳过的人,必定存在一个他不爱的人,这就是当时的a,不然,a就要等于他原创 2013-04-04 17:52:14 · 930 阅读 · 0 评论 -
ZOJ 3602 Count the Trees
开始以为子树不仅需要同构,还要每个节点的编号相等,然后发现测试样例怎么对不上的呢。于是看了解题报告,于是思路就暴露了。一个节点对应一颗子树,所以可以为每个节点映射一个整数,这个整数唯一体现了这颗子树的形态。显然这个整数可以递归地由两个孩子对应的整数确定,方便起见,我们把第一次碰到的子树(一个节点)编号为0,然后第二次遇到的编号为1,依次类推。由于写了两个类似的的DFS,调用的时候掉混了,这是第二次原创 2013-04-04 20:09:22 · 847 阅读 · 0 评论 -
ZOJ 3600 & 3603
两个简单题,但都是几遍才过的- -3600 Taxi Fare杭州公交涨价了,不过没关系,反正坐的少。当时新老价格不是分开算的,所以出现了舍入问题。#include int main(){ int T; int d, t; double o, n; scanf("%d", &T); while(T --) { scanf("%d%d", &d, &t)原创 2013-04-04 20:45:29 · 939 阅读 · 0 评论 -
ZOJ 3604 Tunnel Network
开始想找递推公式,果然失败了。不过对于给定的n和s,可以对n-s个点先排列然后划分成s份,然后计算有x个点树有多少种。这样显然不好递推,也没法写公式。事实上对任意n个点构成的树对应一个长为n-2的Prufer序列,且这种关系是一一对应。所谓Prufer序列是每次拿掉编号最小的叶节点然后将它的父亲push,直到只剩下两个节点。因此可以假定有点0与s个城市分别相连,问题转化为这n+1个点构成的树的Pr原创 2013-04-04 22:03:44 · 1586 阅读 · 0 评论 -
ZOJ 3605 Find the Marble
传说中的江湖赌骗术,能自己想到的dp都不是什么复杂的dp。用dp[i][j]k]表示前i次交换看漏j次最后猜k的可能排列数,递推时,若第i步看漏,则dp[i][j][k] += dp[i-1][j-1][k]。若第i步没看漏,则分两种情况:第i步的交换与k有关,另外一个是l,则dp[i][j][k] += dp[i-1][j][l];若无关,则dp[i][j][k] += dp[i-1][j]原创 2013-04-05 10:55:28 · 1147 阅读 · 0 评论 -
ZOJ 3607 Lazier Salesgirl
简单题,线性遍历一遍就好。但要注意如果ave(p)计算到第i个顾客为止,那么第i+1个顾客来到时必须睡着。#include #include int c[1001];int sum[1001];int T, n, p, t;int i, tmin, w;int main(){ double max, temp; scanf("%d", &T); while(原创 2013-04-04 13:59:03 · 731 阅读 · 0 评论
分享