首页 > 其他分享 >题解:P11507 [ROIR 2017 Day 1] 计算器

题解:P11507 [ROIR 2017 Day 1] 计算器

时间:2025-01-06 22:12:42浏览次数:5  
标签:lfloor min 题解 rfloor div2 ROIR Day dp

P11507 [ROIR 2017 Day 1] 计算器

思路

简单的动态规划。

\(dp_{i,j,k}\) 表示使用了 \(i\) 次按钮 A,\(j\) 次按钮 B 和 \(k\) 次按钮 C。

转移式:

\[\begin{cases} dp_{i+1,j,k}=\min (dp_{i+1,j,k},\lfloor dp_{i,j,k}\div2\rfloor); \\ dp_{i,j+1,k}=\min (dp_{i,j+1,k},\lfloor(dp_{i,j,k}+1)\div2\rfloor); \\ dp_{i,j,k+1}=\min (dp_{i,j,k+1},\max (0,\lfloor(dp_{i,j,k}-1)\div2)\rfloor); \end{cases} \]

初始值:\(dp_{0,0,0}=n\),其余为 \(INF\)。

答案:\(dp_{a,b,c}\)。

AC 代码

#include<bits/stdc++.h>
using namespace std;
#define N 105
long long n,a,b,c,dp[N][N][N];
int main(){
	cin>>n>>a>>b>>c;
	memset(dp,0x3f,sizeof(dp));
	dp[0][0][0]=n;
	for(int i=0;i<=a;i++){
		for(int j=0;j<=b;j++){
			for(int k=0;k<=c;k++){
				dp[i+1][j][k]=min(dp[i+1][j][k],dp[i][j][k]/2);
				dp[i][j+1][k]=min(dp[i][j+1][k],(dp[i][j][k]+1)/2);
				dp[i][j][k+1]=min(dp[i][j][k+1],max(0ll,(dp[i][j][k]-1)/2));
			}
		}
	} 
	cout<<dp[a][b][c]<<endl;
	return 0;
} 

AC 记录

标签:lfloor,min,题解,rfloor,div2,ROIR,Day,dp
From: https://www.cnblogs.com/JimmyQ/p/18656382

相关文章

  • QOJ964. Excluded Min 题解
    QOJ原题链接简要题意设\(S\)为一个可重非负整数集合,假设\(x\)为\(S\)中的一个出现次数\(\ge2\)的元素,你可以将\(x\)改成\(x+1\)或\(x-1\)。定义\(f(S)\)表示对\(S\)进行上述操作任意次所能达到的最大\(\operatorname{mex}\)。给定一个长度为\(n\)的......
  • day1
    Markdown学习标题字体hello,world!//用**进行加粗hello,world!//用****进行斜体hello,world!//用******进行斜体加粗hello,world!//用~~~~进行划线引用别时茫茫江浸月分割线//***或---可以实现分割线图片//!+[]+(nullptr)用于获取图片超链接我的CSDN博客列......
  • day 34网络通信————udp
    1.网络通信概念:不同主机进程间通信1.国际网络体系结构:OSI模型:opensysteminterconnect理论模型。 应用层:要传输的数据信息,如文件传输,电子邮件等 表示层:数据加密,解密操作,压缩,解压缩 会话层:建立数据传输通道 传输层:传输的方式UDPT......
  • Day06
    Helloword1.随便新建一个文件夹,存放代码2.新建一个java文件文件后缀名为.javaHello.java【注意点】系统可能没有显示文件后缀名,我们需要手动打开3.编写代码publicclassHello{publicstaticvoidmain(String[]args){System.out.print("Hello,world!");......
  • [POJ3237] 树的维护 题解
    一眼树链剖分或\(LCT\),由于在学后者所以就写了。取反操作相当于把\(min,max\)取反后交换,所以要维护\(min,max,val\)。时间复杂度\(O(m\logn)\)。#include<bits/stdc++.h>#definefa(x)lct[x].fa#definefl(x)lct[x].fl#definemx(x)lct[x].mx#definemn(x)lct[x]......
  • 复旦大学2024--2025学年第一学期(24级)高等代数I期末考试第七大题解答
    七、(10分) 设$V$是数域$\mathbb{K}$上的$n$维线性空间,$\varphi,\psi$是$V$上的幂等线性变换, 满足$\varphi\psi=\psi$且$\mathrm{Ker}\varphi$是$\psi$-不变子空间.证明:(1)$\mathrm{r}(\psi)\leq\mathrm{r}(\varphi)$;(2)若$\mathrm{r}(\psi)=\mathrm{......
  • JAVA-Day 06:if语句的三种形式
    if语句的三种形式if(表达式){语句体}如果小括号里的表达式结果为真,则执行大括号中的语句体,如下图例子所示:2.if(表达式){语句体}else{语句体}如果小括号里的表达式为真,则执行else前的大括号中的语句体,如果小括号里的表达式为假,则执行else后的大括号中的语句体。如下图例子......
  • 复旦大学2024--2025学年第一学期(24级)高等代数I期末考试第八大题解答
    八、(10分) 设$A,B$为$n$阶实矩阵,满足$A^2+B^2=AB$且$AB-BA$为非异阵, 求证:$n$是3的倍数且$|BA-AB|>0$.证明 设$\omega=-\dfrac{1}{2}+\dfrac{\sqrt{3}}{2}\mathrm{i}$,则$\omega^2=\overline{\omega}=-\dfrac{1}{2}-\dfrac{\sqrt{3}}{2}\mathrm{i}$,于......
  • Docker多阶段构建详解及问题解决
    在Docker的构建过程中,多阶段构建是一种非常强大的功能,它允许我们在一个Dockerfile中使用多个阶段来构建镜像,从而大大优化最终镜像的大小和构建过程。本文将详细介绍Docker多阶段构建的基本用法,并针对在使用该功能时可能遇到的问题提供解决方案。Docker多阶段构建基础多阶......
  • CICD Day3、Jenkins参数化构建
    Jenkins参数化构建是一项功能,允许在出发构建时通过制定参数来动态配置和定制构建任务。这种灵活使得一个构建流程可以使用不同的配置进行,从而使用不同的场景需求参数构建支持多种参数类型,如下所示:BooleanParameter(布尔值参数):true或者false,可用于开启或关闭某些构建步骤Choi......