- 博客(16)
- 收藏
- 关注
原创 博主自传
ZJ蒟蒻一枚。 从六年级参加pj,三年没一等。 其中初一初二差10分一等。 初三侥幸tg一等。 望神犇指教。 本人联系方式 qq:1067933169
2017-02-28 20:34:22 2506 12
原创 bzoj1024: [SCOI2009]生日快乐
传送门 爆搜是一个好东西。 f[i][j][k]表示长为i,宽为j,分成k块的最有值 转移自己脑洞一下。 var x,y:extended; n:longint; function min(x,y:extended):extended; begin if (x<y) then exit(x) else exit(y); end; function max(x,y:ext
2017-02-28 18:15:50 255
原创 bzoj1022: [SHOI2008]小约翰的游戏John
传送门 题目大意:反Nim游戏,即取走最后一个的人输 首先状态1:如果所有的堆都是1,那么堆数为偶先手必胜,否则先手必败 然后状态2:如果有两个堆数量相同且不为1,那么后手拥有控场能力,即: 若先手拿走一堆,那么后手可以选择将另一堆留下1个或者全拿走,使这两堆最终只剩1个或0个; 若先手将一堆拿剩一个,那么后手可以选择将另一堆留下一个让先手拿或全拿走,使这两堆最终
2017-02-28 18:12:51 229
原创 bzoj1019: [SHOI2008]汉诺塔
传送门 考虑dp方程: f[x][i]表示第x个柱子上有i个盘子,把他们都移动到g[x][i]这个柱子上要花得步数。 首先考虑i=1,因为操作有优先顺序,因此g[x][1]可以确定,f[x][1]都是1。 接下来考虑任意的i,那么我们需要把i-1个移动到g[x][i-1]上面去,再把剩下的一个移动到(1+2+3-x-g[x][i-1])上。 现在原来在x上的i个处
2017-02-26 19:25:53 277
原创 bzoj1017: [JSOI2008]魔兽地图
传送门 一个超级奇怪的树形dp。因为儿子管父亲。 思路是显然的:f[i][j][k],表示第I个物品,用于合成(上缴)的有J个,花费K的代价能获得的最大价值。 我们还可以求出物品的获得上限(没钱or没子物品) 接下来就是一个背包了。 最外层枚举当前物品取几个 里面枚举儿子,用M^2时间可以跑出背包。 辅助数组G[i][j]前i个儿子花费j的代价能得到的最优值 然后枚举私吞的个数。
2017-02-23 11:58:58 386
原创 1016: [JSOI2008]最小生成树计数
传送门 并查集好题。 用暴力求出最小生成树,确定每一种长度的边在图中的数量。 又Kruscal算法流程知,每一种长度的边在图中的数量一定(否则存在更优解) 对于每一个长度的边,爆搜求出方案个数。 运用乘法原理求解即可。 P.S:本题并查集无需路径压缩。/**************************************************************
2017-02-22 20:24:46 328
原创 bzoj1015: [JSOI2008]星球大战
传送门 并查集裸题。 按照星球毁灭顺序从后向前插点,并向可行点连边。插入一个点联通块+1;连接一条边联通块-1。 PS刷水题有益于健康 /************************************************************** Problem: 1015 User: zhouyuyang Language: Pascal
2017-02-22 20:22:14 343
原创 bzoj1012: [JSOI2008]最大数maxnumber
传送门 单调队列裸题。 维护一个单调队列,队列头元素大,尾元素小,存储数值和坐标,修改时用O(1)的时间插入,询问时用O(log)的时间二分查找在区间内的最大点。 PS:刷水题有益于健康。 /************************************************************** Problem: 1012 User: zhouyuy
2017-02-20 19:37:46 276
原创 bzoj1011: [HNOI2008]遥远的行星
传送门 O(n^2)暴力应该会作吧。 但是要TLE(松爷一下也许可以) 但是注意到题目中要求误差 以下是精妙(鬼畜)的乱搞: 令i=a*j向下取整。 Ans=sigma(Ak*Aj/(j-k))(1 因为误差 于是乎我们就可以对式子进行奇妙(古怪)的化简: Ans≈sigma(Ak*Aj/(j-0.5i))(1 我们用一个前缀和求出sigma(Ak)(1 然后就OK了。 但
2017-02-20 19:30:59 491
原创 bzoj1010: [HNOI2008]玩具装箱toy
传送门 以下结论是显然的: dp[i]=min(dp[j]+(sum[i]-sum[j]+i-j-1-L)^2)(j 其中dp[i]表示装前i个东西的最小话费。 但是O(n^2)明显药丸(也许松爷一下可以过) 于是令f[i]=sum[i]+i,c=1+l 则dp[i]=min(dp[j]+(f[i]-f[j]-c)^2) 然后就是神(gui)奇(chu)的斜率优化了。 1.
2017-02-18 19:20:19 236
原创 bzoj1008: [HNOI2008]越狱
传送门 此等水题,直接上公式:ans=m^n-m*(m-1)^(n-1)。 /************************************************************** Problem: 1008 User: zhouyuyang Language: Pascal Result: Accepted Time:0 ms
2017-02-18 19:17:38 302
原创 bzoj1007: [HNOI2008]水平可见直线
传送门 维护一个下凸包是显然的 于是乎我们可以先按照斜率排序,斜率相同时按照截距排序。 然后我们可以维护一个单调栈,满足相邻两条直线交点坐标不降(注意,不是递增) 跑完之后输出序号就ok啦。 我才不会说我是学hzwer的呢 /************************************************************** Problem: 1007
2017-02-17 17:31:05 253
原创 bzoj1005: [HNOI2008]明明的烦恼
传送门 膜拜PoPoQQQ大爷,题解 树的Prufer编码,以下内容摘自度娘: Prufer数列是无根树的一种数列。在组合数学中,Prufer数列由有一个对于顶点标过号的树转化来的数列,点数为n的树转化来的Prufer数列长度为n-2。它可以通过简单的迭代方法计算出来,一个树对应一个Prufer数列。 Prufer序列显然满足一个性质:一个点若度数为d,则一定在Prufer序列中出现了
2017-02-17 17:26:20 439
原创 bzoj1003: [ZJOI2006]物流运输
传送门 数据出奇的小,于是想到了暴力。 F[i]表示前i天的最小话费 得到转移方程式f[i]=sigma(f[j]+cost(j+1,i)*(i-j))(j 其中cost(I,j)可以用spfa实现 这样就可以ac了 时间:O(N^2{dp}*kE{spfa}) PS:这是为数不多的窝没看题解做出来的题/**************************************
2017-02-16 20:42:52 260
原创 bzoj1002: [FJOI2007]轮状病毒
传送门 用的是一种叫做基尔霍夫矩阵的高科技做法(然而并不懂233) 推得一个公式f[i]=3*f[i-1]-f[i-2]+2 飞速高精度ac。 膜拜Vfleaking神犇的推导 http://vfleaking.blog.163.com/blog/static/17480763420119685112649/ /***********************************
2017-02-16 20:37:29 297
原创 bzoj1001: [BeiJing2006]狼抓兔子
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec MemoryLimit: 162 MB Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: 左上角点为(1,1),右下角点为(N,M)(上图中N=4
2017-02-15 21:33:35 1432 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人