CodeForces - 1437C Chef Monocarp(dp)

重复点击提交、产生多笔数据、保持数据只操作一次---->接口幂等性校验 幂等校验一、工作真实场景 + 常出现场景二、工作解决方案 + 百度解决方案 一、工作真实场景 + 常出现场景 真实场景:在一次工作中进行成品出库创建成品出库单时,手抖了一下,重复点击了两次确定(提交表单)。结果很神奇的发现居然产生了两笔一模一样的数据(流水号都一样),当时就很懵逼,稍作思考,想想应该是在同一时刻创建了两个出库单。感觉很有意思(因为之前没有遇到过,写代码的时候也没有考虑到这个问题的发生),后面换了一种方式复现场景:提交表单时多次点击Enter按钮,还是会产生多笔重复数据。 常见场景: 订单接 阅读详情
题目链接:点击进入
题意:

有 n 道菜,每个菜都有自己的最佳烹饪时间( t1 , t2 … tn),让你选 n 个出菜时间点( T1 , T2 … Tn ),使得 | Ti - ti | 的和最小(每个时间点只能出一道菜)

思路:

dp [ i ] [ j ] 代表前 i 道菜,都选择 j 以及之前的时间点出菜
每个时间点都可以选择出菜或者不出菜
若在 j 这个时间点选择出第 i 道菜
dp [ i ] [ j ] = dp [ i - 1 ] [ j - 1 ] + abs ( j - t [ i ] ) ;
若是不出
dp [ i ] [ j ] = dp [ i ] [ j - 1 ];
因为要求最小的绝对值和,所以我们在两者之间取 min 就好了

代码:
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;
const int maxn=1e7+10;
int t,n,a[1010],dp[1010][1010];
int main()
{
	ios::sync_with_stdio(false);
	cin>>t;
	while(t--)
	{
		cin>>n;
		for(int i=1;i<=n;i++) cin>>a[i];
		sort(a+1,a+n+1);
		memset(dp,INF,sizeof(dp));
		for(int i=0;i<=2*n;i++) dp[0][i]=0;
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=2*n;j++)
			{
				dp[i][j]=min(dp[i-1][j-1]+abs(j-a[i]),dp[i][j-1]);
			}
		}
		cout<<dp[n][2*n]<<endl;
	}
	return 0;
}
QT实现计算器(C/C++) digitClicked()槽函数用于处理数字按钮的点击事件,operatorClicked()槽函数用于处理运算符按钮的点击事件,equalsClicked()槽函数用于处理等号按钮的点击事件。在operatorClicked()槽函数中,我们获取被点击按钮的文本作为当前运算符,并将文本框中的内容转换为双精度浮点数,存储为操作数1。在上述代码中,我们添加了一个私有成员变量m_operand1,用于存储第一个操作数的值,以及一个私有成员变量m_currentOperator,用于存储当前运算符的值。 阅读详情

相关推荐

分离与合体题解(区间DP)

题目: 经过在机房里数日的切磁,LYD从社神牛那里学会了分离与合体,出关前,杜神牛给了他一个测试 杜神牛造了个区域,它们紧邻着排成了一行,编号1-n。在这經个区域里都放着一把OI界 的金钥匙,每一把都有一定的价值,LYD当然想得到它们了。然而杜神牛规定LYD不可以一下子 把它们全部拿走,而是每次只可以拿一把。为了尽快地拿到所有的金钥匙,LYD自然就用上了刚学的分离与合体特技。 开始LYD可以选择从1~n-11~n-11~n-1的任何一个区域(记为K)进入,进入后LYD会在K区域发 生分离,从而分离为两个小L

cqbz_lipengcheng的博客 370

codeforces 1437 C Chef Monocarp (dp)

翻译成函数表示, f=∑i=1n∣t(x)−a(i)∣f=\sum_{i=1}^{n}|t(x)-a(i)|f=∑i=1n​∣t(x)−a(i)∣,其中x为不确定的值,t(x)>=0,求所有可能fff的最小值。 那么,可以看出这个函数有两个变量,一个是t(x),另一个是a(i),其中a(i)已知,t(x)不好说,但是可以看出t(x)的范围在1到2*n之间,进一步缩小范围是amaxa_{max}amax​+n-1。 然后,就需要造一个函数序列出来,构成上述函数的递推表示,fff可以说成是这个序列的母函.

weixin_45608039的博客 222

Arduino安装图文教程:小白也能轻松上手

手把手带你完成Arduino安装全过程,无论你是编程新手还是硬件小白,都能快速搭建开发环境。结合arduino安装教程与实操步骤,避开常见错误,让创作即刻启程。

weixin_35509395的博客 1106

C. Chef Monocarp(思维,dp)

C. Chef Monocarp 问题:给出nnn道菜,每道菜有一个预期出锅时间tit_iti​,但每分钟只能出一道菜,设第iii道菜的出锅时间为TiT_iTi​,则会得到∣ti−Ti∣|t_i-T_i|∣ti​−Ti​∣的不愉悦值,问怎么安排出菜时间,才能使不愉悦值最小,输出最小值。 给出一个引理: ti<tj且Ti>Tj⇒∣ti−Ti∣+∣tj−Tj∣>∣ti−Tj∣+∣tj−Ti∣ t_i<t_j且T_i>T_j\\ \Rightarrow\mid t_i-T_i\mid

weixin_45363113的博客 415

ArduSub深度调参指南:如何让水下机器人像鱼一样稳定游动

本文深入探讨了ArduSub水下机器人的深度调参策略,旨在解决ROV在水下晃动、响应迟钝等问题。文章系统解析了级联PID控制逻辑,并针对静水与水流环境,提供了具体的深度保持与姿态控制调参方法、实战日志分析技巧以及异常振荡处理方案,帮助用户实现水下机器人稳定、流畅的游动性能。

CAT789的专栏 372

ss524v100 调试cvbs输出

启用视频层3 dev2 对应 layer3在vdec与vo绑定的时候(不需要经过vpss),不能绑定错误,以下是绑定的程序。

2116

CF 1437C. Chef Monocarp(简单费用流或dp)

传送门 一眼看过去,裸的费用流 把每个时刻拆成一个点,每个菜品作为一个点 每个时刻连向每个菜品,费用为对应的费用 源点连向每个时刻,每个菜品连向汇点. 当然所有流量都是111,为了保证所有东西只能使用一次 跑一个最小费用最大流即可. #include <bits/stdc++.h> using namespace std; const int maxn = 4e5+10; const int inf = 1e9; struct edge{ int to,nxt,w,flow; }d[maxn]

jziwjxjd的博客 619

电机控制中ADC采样时序的优化策略与实践

本文深入探讨了电机控制中ADC采样时序的优化策略与实践,重点分析了BLDC和FOC控制方案中的核心挑战与解决方案。通过硬件布局优化、软件滤波技术及动态时序补偿等方法,有效提升电流采样精度和系统稳定性,为电机控制系统的性能优化提供实用指导。

weixin_42519985的博客 386

C. Chef Monocarp

题目: https://codeforces.com/contest/1437/problem/C 题意: 给出每个菜拿出的时间,当你在t秒的时候拿出了第i道菜,那这道菜的令人不愉快值为t-ai的绝对值。问你每道菜应该在什么时间拿出来能使得不愉快值最小。 思路: dp dp还是很容易看出来的,至于转移方程就需要多看一会了。 dp[i][j]=min(dp[i-1][j],dp[i-1][j-1]+abs(a[j]-i)); dp[i][j]表示前i秒拿出了j道菜的不愉快的值。 代码: #include &l

小飞猪的博客 314

Ubuntu使用cmake出现Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed

解决 Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed

qq_44225529的博客 1万+

ESP32编译卡在‘Cannot establish a connection to the component registry’?别急着重装,先试试这两个国内镜像配置

本文详细解析了ESP32编译过程中常见的‘Cannot establish a connection to the component registry’报错问题,并提供了国内镜像源的配置方案。通过对比Gitee、清华大学、阿里云和中科大等镜像源的性能,帮助开发者快速解决网络连接问题,提升编译效率。文章还包含手把手的配置教程和进阶技巧,适用于ESP-IDF开发环境的优化。

weixin_34088048的博客 341

C. Chef Monocarp - 费用流

很显然的套路就是对人建立n个点,然后对数轴 1--2n建立虚点,并拆开虚点,来保证每个时间点只能用一次,且虚点之间的花费应该是1,然后把每个人的a[i] 直接连接在数轴的虚点位置上,且花费为0,这样就把人引进了数轴里面,然后无论向左走还是向右走,都是花费的正值,合起来就是绝对值了。

jisuanji2606414的博客 189

手把手教你双目测距理论及生成视差图,深度图,点云图像

Stereo Vision, 也叫双目立体视觉,它的研究可以帮助我们更好的理解人类的双眼是如何进行深度感知的。双目视觉在许多领域得到了应用,例如城市三维重建、3D模型构建(如kinect fusion)、视角合成、3D跟踪、机器人导航(自动驾驶)、人类运动捕捉(Microsoft Kinect)等等。双目测距也属于双目立体视觉的一个应用领域,双目测距的基本原理主要是三角测量原理,即通过视差来判定物体的远近。

qq_53545309的博客 2280

CodeForces 1437C Chef Monocarp (背包dp)

题目链接:[点击这里](https://vjudge.net/problem/CodeForces-1437C) 题目大意: qqq 组数据,每组数据给出 nnn 个物品,第 iii 个物品在 tit_iti​ 时取出花费为 000 ,在其余时间取出花费是 abs(ti−ti′)abs(t_i-t^{'}_i)abs(ti​−ti′​) ,求 ∑i=1n(abs(ti−ti′))\sum_{i=1}^n(abs(ti-t^{'}_i))∑i=1n​(abs(ti−ti′​)) 的最小值 题目分析: 设状态

羊驼的博客 420

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Chef Monocarp CodeForces - 1437C ( DP )

Chef Monocarp has just put n dishes into an oven. He knows that the i-th dish has its optimal cooking time equal to ti minutes. At any positive integer minute T Monocarp can put no more than one dish out of the oven. If the i-th dish is put out at some min

Piink的博客 394

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Codeforces1437 C. Chef Monocarp(DP)

Chef Monocarp has just put ???? dishes into an oven. He knows that the ????-th dish has its optimal cooking time equal to ???????? minutes. At any positive integer minute ???? Monocarp can put no more than one dish out of the oven. If the ????-th dish is p

tomjobs的博客 459

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

codeforces1437——C. Chef Monocarp(线性DP)

原题链接 题意: 将n个菜放入烤箱,每个菜的最佳取出时间为t[i],每个时刻只能够取出一道菜。在时刻T取出第i个菜的不愉快值为abs(t[i]-T)。求最小的不愉快值。 思路: 首先,将t按照从小到大排序,因为取出时间早的越早拿是最优的。(好像并不准确.jpg); 考虑动态规划,dp[i] [j] 表示到时刻i取出了j个菜的最小不愉快值。划分依据为是否在时刻i取出第j个菜: 如果取出第j个菜的话,那么上一个状态就是到时刻i-1取出了j-1个菜,本次对答案的贡献是abs(i-t[j]); 如果不取出第j个菜的

我们都有光明的未来 246

CF- Educational Codeforces Round 97 (Rated for Div. 2)-1437C. Chef Monocarp【dp】

题目链接 题意:n个数字{a1,a2,...,an}\{a_1,a_2,...,a_n\}{a1​,a2​,...,an​},iii放到位置的花费为abs(i−aj)abs(i−a_j)abs(i−aj​),求放置所有数字的最小花费。 思路:经典背包 #include <bits/stdc++.h> #define pcc pair<char, char> #define pii pair<int, int> #define vi vector<int> #d

Cain-James的博客 430

codeforces1437C. Chef Monocarp

https://codeforces.com/contest/1437/problem/C 这题好像比D题难一点,D题偏水了。。 由于有n个菜,而且他们最好的时间ti<=n,那么可想而知就算从n开始拿出盘子,最多到2*n的时间可以拿完 所以dp[i][j]表示前i个时间已经拿出了j个菜的最小代价,扫过去更新就行了 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxl=3

binarycopycode 1125

[dp] cf 1437C. Chef Monocarp

题目 http://codeforces.com/contest/1437/problem/C 思路 dp[i][j]dp[i][j]dp[i][j]表示第iii分钟前拿了jjj个盘子的最小代价 递推式:dp[i][j]=min(dp[i−1][j],dp[i−1][j−1]+abs(a[j]−i))dp[i][j]=min(dp[i-1][j],dp[i-1][j-1]+abs(a[j]-i))dp[i][j]=min(dp[i−1][j],dp[i−1][j−1]+abs(a[j]−i)) 代码 #in

kosf_的博客 246

cf 1437C. Chef Monocarp(DP,背包)

题目链接:https://codeforces.ml/contest/1437/problem/C 题意:T组样例 每组一个n,然后大小为n的数组a(1<=ai<=n)。然后要求取n个不一样的数bi且>0,然后计算sum(abs(ai-bi))的最小值。 题解: 很像是背包对不对,背包是怎样的,容量为n,然后dp[i]表示容量为i的时候的最大值。这题,可以转化为背包,不过dpi表示最小值。 //emmmm还是不擅长转化问题呀,简单题做多了emmm 代码: #include

I_have_a_world的博客 638

Codeforces 1437C Chef Monocarp

题目链接 题目大意: n 道菜放进烤箱 , 每道菜的最佳烹饪时间是 t [i] ,然后 如果在 T 时间取出 ,那么不愉快值就是 | T- t [i] | 一次只能取一盘 问 取出所有的菜最小不愉快值是多少 解题思路: dp 代码如下: #include<iostream> #include<set> #include<vector> #include<algorithm> using namespace std; const i...

weixin_43819762的博客 237

CF 1437C Chef Monocarp (背包dp)

题目链接:https://codeforces.ml/problemset/problem/1437/C 题意:T组样例 每组一个n,然后大小为n的数组a(1<=ai<=n)。然后要求取n个不一样的数bi且>0,然后计算sum(abs(ai-bi))的最小值。 题解:一道dp背包题 dp[i][j]代表第i时刻取走前j道菜,这时候就分俩种情况取或者不取,取的话dp[i]...

Mrwei_418的博客 363

CF1437C Chef Monocarp

初始化是好理解的,注意时间要延续到2*n,然后定义dp的时候要 int dp[N][2*N];设dp[i][j]表示将第i道菜扔到时间j的最小时间。反正我写的是动态规划。

wenhaorjxj的博客 315

Educational Codeforces Round 97 C. Chef Monocarp(dp)

https://codeforces.com/contest/1437/problem/C 题意:将n个菜同时放进烤箱,第i个菜的最佳烹饪时间是ti,如果第i个菜在T时间被端出,那么对它的不满意值就是 |T−ti|,且在每一个时刻只能端出一个菜,问不满意值和的最小值。 注:1≤n≤2001≤n≤2001≤n≤200 思路: 1、最佳烹饪时间值小的肯定要先取出,所以我们先将这n个物品按照最佳烹饪时间值排序 2、设dp[i][j]表示前i-1个物品都取出时,第i个物品在j时刻取出需要花费的最小总时间 3、那么d

qq_43803508的博客 279

codeforces | java | 1437C | Chef Monocarp

【代码】codeforces | java | 1437C | Chef Monocarp。

iCling的博客 192
上一篇: Clock Master(分组背包)-2020ccpc(威海)
下一篇: Codeforces Round #680 C-Division(数论+分解质因子)
Cosmic_Tree
博客等级 码龄7年 134粉丝 337原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值