dp
枫茗、
HELLO,WORLD!
展开
-
蒙德里安的梦想
题意:将n*m的棋盘分割成若干个1*2的长方形,求方案数。思路:考虑按列摆放,某列的各行用0或1表示摆放状态。若某行是1,表示横放,并且向前一列伸出。若某行是0,表示竖放,或者由前一列伸出。状态表示:f[i][j]表示摆放第i列,状态为j时的方案数。状态转移: ,k是和j状态兼容的状态。初始状态:f[0][0]=1,第0列不摆放是一种合法的状态目标状态:f[m][0],第m列没有向下一列伸出的。预处理:判断合并列的状态i是否合法(合并列就是前一列与当前列按位或原创 2022-05-02 20:26:54 · 426 阅读 · 0 评论 -
不要62--数位dp
数位dp 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。不吉利的数字为所有含有4或62的号码。例如: 62315 73418 88914都属于不吉利号码。但是,61152虽然含有6和2,但不是62连号,所以不属于不吉利数字之列。你的任务是,对于每次给出的一个牌照区间号,推断出交管局今次又要实际上给多少辆新的...原创 2022-06-28 16:12:04 · 86 阅读 · 0 评论 -
Windy数--数位dp
数位dp原创 2022-06-28 16:05:50 · 189 阅读 · 1 评论 -
能量项链(蓝桥杯)--区间dp
蓝桥杯算法提高-能量项链 - C语言网例如:设N=4,4颗珠子的头标记与尾标记依次为(2,3) (3,5) (5,10) (10,2)。我们用记号⊕表示两颗珠子的聚合操作,(j⊕k)表示第j,k两颗珠子聚合后所释放的能量。则第4、1两颗珠子聚合后释放的能量为:(4⊕1)=10*2*3=60。我们要求得是这一串珠子聚合后能释放能量的最大值。这一串项链可以得到最优值的一个聚合顺序所释放的总能量为((4⊕1)⊕2)⊕3)=10*2*3+10*3*5+10*5*10=710。首先要将环形变成线性,将数组复制一遍,第原创 2022-06-17 19:52:25 · 278 阅读 · 0 评论 -
李白打酒--蓝桥杯(dp)
题意:李白有一天拿着酒壶出来玩,酒壶里装着2斗酒,在路上他会碰到花和酒店,碰到花的话他会喝1斗酒,碰到酒店的话他会将他的酒的斗数变为两倍。在一路上李白共遇到店n次,花m次,且已知李白最后一次碰到的是花,酒正好喝完了。问你李白这一路遇到店和花的顺序,有多少种不同的可能。思路:状态表示:dp[i][j][k]表示还要遇到i次花,j次店,此时酒壶里有k斗酒能让最后一次碰到的是花,且酒正好喝完的合法方案数。状态转移:dp[i][j][k]状态可通过两个状态转移而来,一个是dp[i-1][j]原创 2022-05-03 19:48:09 · 1714 阅读 · 0 评论