
codevs
来自codevs的题目
QWsin
这个作者很懒,什么都没留下…
展开
-
codevs2743 黑白棋游戏
题目描述 Description 题目传送门 黑白棋游戏的棋盘由4×4方格阵列构成。棋盘的每一方格中放有1枚棋子,共有8枚白棋子和8枚黑棋子。这16枚棋子的每一种放置方案都构成一个游戏状态。在棋盘上拥有1条公共边的2个方格称为相邻方格。一个方格最多可有4个相邻方格。在玩黑白棋游戏时,每一步可将任何2个相邻方格中棋子互换位置。对于给定的初始游戏状态和目标游戏状态,编程计算从初始游戏状态变原创 2016-03-29 13:32:14 · 848 阅读 · 0 评论 -
codevs1536 海战
题目 codevs1536 海战题解 虽然说是一道白银,但是我刚看到的时候还是毛有思路啊!! 遍历矩阵,找一个没到过的格子(xx,yy)作为当前矩形的左上角,开始BFS,如果过程中出现x< xx||y< yy的话就是不可能的(手画一下就可以看出),如果没有出现这样的情况,就记录x坐标,y坐标的最大值maxx,maxy,然后记录一下到过的格子数cnt,如果cnt==(ma原创 2016-03-26 20:43:58 · 848 阅读 · 0 评论 -
[HNOI2004]宠物收养所
题目链接[HNOI2004]宠物收养所题解 这基本上就是一个裸的treap,听说set可以秒此题,但是本着练习treap的思想我还是手打了一份平衡树。首先人和宠物是一样的,只需要判断一下现在收养所里面装的是什么,来东西了,一样就直接insert,不一样就找一下前驱后继判一下选哪个然后把那个remove了,每次判一下树是否为空,空了就换成当前来的东西的类型。应该比较简单codevs上都是钻石(我猜原创 2016-05-19 11:17:43 · 487 阅读 · 0 评论 -
codevs 1159 最大全0子矩阵 悬线法
题目codevs 1159题解我开始看到这是道黄金题真没想到有多高深,不过学习了悬线法之后我才知道原来是2005年集训队论文里面的方法。(吃惊)。想了n多复杂的方法。 第一步,计算出cnt[i][j]表示(i,j)位置往上连续0的个数。然后如果对于每一行单独来看,答案为max{(k-j+1)* min{ cnt[i][j] , cnt[i][j+1] , … , cnt[i][k]}},枚举左右端原创 2016-09-14 11:47:58 · 894 阅读 · 0 评论 -
codevs 1128 导弹拦截
题目:codevs 1128 导弹拦截 题解: 这题简略看了一下真没啥思路,而且是2010年的普及题目啊!!瞬间感觉智商回到西元前(雾)。然后就想只有两个,每一个导弹只有两种选择,给一号拦截或者二号拦截,枚举?2^n,好像当年给了20分,数据范围如下: 对于10%的数据,N = 1 对于20%的数据,1 ≤ N ≤ 2 对于40%的数据,1 ≤ N ≤ 100 对于70%原创 2016-08-25 16:20:06 · 405 阅读 · 0 评论 -
codevs3037 线段覆盖5 离散化DP
题目codevs3037 线段覆盖5 题解 不懂某些人为什么要用BIT = = 。这样会带坏小朋友的啊喂(虽然说刷到大师了写个BIT就是一分钟的事)。不过你强行加个log会很慢的阿喂,何况这题的log大概是20。其实我写的也不好= =并没有1A而且错误还比较多 dp[i]表示到离散化之后的端点i之前最大价值。然后把线段按右端点排序,然后转移方程是这样的 dp[i原创 2016-10-13 16:21:12 · 571 阅读 · 0 评论 -
codevs 3325 过山车 DP
题目codevs 3325 过山车题解 和裸的线段覆盖差不多,但是我数组开小了还是没能1A。dp[ i ][ j ]表示覆盖到i的长度,用了j的代价获得的最大快乐值。先把物品按右端点排序之后,依次扫描有没有可以用来转移的物品。也就是说如果存在一个物品m使得m.x+m.len==i(右端点在i),那么: dp[ i ][ j ]=max(dp[ i ][ j ],dp[ m.x原创 2016-10-14 07:30:33 · 513 阅读 · 0 评论 -
codevs3184 SYY奇遇记·····3
大水题原创 2017-01-04 20:11:04 · 402 阅读 · 0 评论