首页 > 其他分享 >DP花园题乱做

DP花园题乱做

时间:2023-04-18 22:33:40浏览次数:58  
标签:last dp a1 a2 b1 b2 题乱 花园 DP

CF837D

考虑 $f[i][j][cnt2][cnt5]$ 统计前 $i$ 个数选 $j$ 个,满足有 $cnt2$ 个 $2$ 和 $cnt5$ 个 5 是否成立。

但 $f$ 只存 $0$ 或 $1$,考虑 $f[i][j][cnt5]=cnt2$,即统计前 $i$ 个数选 $j$ 个,满足 $cnt5$ 个 5 有都少个 $2$。

滚动!

$f[i][j][k] = max(f[i][j][k],f[i-1][j-1][k-cnt5[i]]+cnt2[i]);$

P2476

计算每个颜色剩余的个数太la了,所以就统计每个剩余个数有多少颜色!

考虑 $dp[a][b][c][d][e][last]$ 统计剩 $1,2,3,4,5$ 个格子的颜色的种类数时,上一步选择的是剩余 $last$ 个格子的颜色中的一种的方案数。

考虑枚举现在选取的是那个种类,如果上次染色也选取了相同种类就减去。

。记忆化搜索

	if(_1 > 0)res += dp(_1-1,_2,_3,_4,_5,1)*(_1-(last == 2));
	if(_2 > 0)res += dp(_1+1,_2-1,_3,_4,_5,2)*(_2-(last == 3));
	if(_3 > 0)res += dp(_1,_2+1,_3-1,_4,_5,3)*(_3-(last == 4));
	if(_4 > 0)res += dp(_1,_2,_3+1,_4-1,_5,4)*(_4-(last == 5));
	if(_5 > 0)res += dp(_1,_2,_3,_4+1,_5-1,5)*_5;

P4401

$f[i]$ 太难了,所以提升维度

。$f[i][a1][a2][b1][b2]$ 统计第 $i$ 辆配餐车来时,昨天 $1$ 矿井吃 $a1$,$2$ 矿井吃 $b1$,前天 $1$ 矿井吃 $a2$,$2$ 矿井吃 $b2$。

讨论这个矿车去哪个矿井,计算一下就行。

$f[i][a2][a[i]][b1][b2] = max(f[i][a2][a[i]][b1][b2],f[i-1][a1][a2][b1][b2] + calc(a[i],a2,a1));$
$f[i][a1][a2][b2][a[i]] = max(f[i][a1][a2][b2][a[i]],f[i-1][a1][a2][b1][b2] + calc(a[i],b2,b1));$

P2051

三进制状压!对于海洋题显然la了。

设计 $f[i][j][k]$ 统计前 $i$ 行有 $j$ 列填了 $1$ 个,$k$ 列填了 $2$ 个。

分类讨论就行。

f[i][j][k] += f[i-1][j][k]%mod;//0
if(j >= 1) f[i][j][k] = (f[i][j][k] + f[i-1][j-1][k]*(m-(j-1)-k))%mod;//1
if(k >= 1)f[i][j][k] = (f[i][j][k] + f[i-1][j+1][k-1]*(j+1))%mod;//2
if(j >= 2)f[i][j][k] = (f[i][j][k] + f[i-1][j-2][k]*C(m-(j-2)-k))%mod;//3
if(k >= 1)f[i][j][k] =(f[i][j][k] + f[i-1][j][k-1]*j*(m-j-(k-1)))%mod;//4
if(k >= 2)f[i][j][k] = (f[i][j][k] + f[i-1][j+2][k-2]*C(j+2))%mod;//5

标签:last,dp,a1,a2,b1,b2,题乱,花园,DP
From: https://www.cnblogs.com/yanxinyi-cpp/p/17331449.html

相关文章

  • Codeforces Dp
    ZeroRemainderSum  采用辅助数组$ndp[m+1][\frac{m}{2}][k]$来求出每一行中在当前第$i$列,取了$j$个物品,总和模$k$的余数是$t$的最大和是多少。用$dp[n+1][k]$来转移每一行的状态。#include<bits/stdc++.h>usingnamespacestd;const......
  • Codeforces 1810G - The Maximum Prefix(DP)
    挺小清新的一道计数题。首先先分析下这个“最大前缀和”,按照最朴素的思路就是扫一遍每个前缀,然后记录一下当前的\(sum\)与前面的\(mx\),但是如果你一直陷在这个思路上你就似了,因为按照这个思路做,你DP状态里需要记录\(sum\)和\(mx\)两个维度,算上下标一维总共是\(n^3\),并......
  • udp报文
    1、介绍udp,userdatagramprotocol用户数据报协议,属于传输层协议。上层是dns等应用层协议,下层是ip协议。2、结构(1)源端口号,2字节(2)目标端口号,2字节(3)总长度,2字节,单位是字节(4)校验值,2字节,保证数据安全3、wireshark ......
  • SQL Server Endpoint 与 镜像、AlwaysOn身份验证
    若要加入 AlwaysOn可用性组 或数据库镜像,服务器实例上必须创建自己专用的“数据库镜像端点”(databasemirroringendpoint)。 此端点用途特殊,专门用于接收来自其他实例的连接。数据库镜像端点使用TCP协议在参与数据库镜像会话或承载可用性副本的实例之间发送和接收消息。 数......
  • NDP常用报文格式
    邻居发现协议(NeighborDiscoveryProtocol,NDP)是IPv6协议体系中最重要的基础协议之一,很多IPv6功能都依赖NDP来实现。一般说来,NDP可以实现的功能包括:替代IPv4的ARP来形成邻居表;默认网关的自动获取;无状态地址自动配置;路由重定向等。NDP定义了5类ICMPv6报文,即路由器请求(RouterSolicito......
  • Codeforces Round 625 (Div. 1, based on Technocup 2020 Final Round) A. Journey Pl
    https://codeforces.com/contest/1320/problem/AA.JourneyPlanning题目大意:给定一组数,问我们ai-aj==i-j的时候就可以把ai的值加起来,问我们可以凑到的最大总值是多少?input6107191015output26input1400000output400000input7892611122914out......
  • 停用flash的rtmfp 【禁止flash的udp上传】
    以XP为例,找到C:\WINDOWS\system32\Macromed\Flash\mms.cfg。当然你也可以直接搜索mms.cfg 在里面添加这段红色字体。  RTMFPP2PDisable=1  意味关闭flash的rtmfp。如果没有,可以手动添加。也可以新建bat文件,复制以下代码。1.echoon2.pause3.echoRTMFPP2PDisable=......
  • m规则LDPC和非规则LDPC误码率matlab对比仿真,并对比不同译码迭代次数的误码率
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要LDPC码是麻省理工学院RobertGallager于1963年在博士论文中提出的一种具有稀疏校验矩阵的分组纠错码。几乎适用于所有的信道,因此成为编码界近年来的研究热点。它的性能逼近香农极限,且描述和实现简单,易于进行理论......
  • 套接字编程 socket udp 课本练习
    #-*-coding:utf-8-*-"""CreatedonMonApr1719:11:302023@author:LittleYellowFlower"""fromsocketimport*serverPort=12000serverSocket=socket(AF_INET,SOCK_DGRAM)serverSocket.bind(('',serverPort))......
  • MidpointLine
    #include<graphics.h>#include<math.h>voidMidpointLine(intx0,inty0,intx1,inty1);intmain(void){intgdriver=DETECT,gmode,errorcode;intbkcolor,midx,midy;initgraph(&gdriver,&gmode......