Codeforces Round #317 [AimFund Thanks-Round] (Div. 1) B
发布日期:2021-11-16 12:56:56
浏览次数:2
分类:技术文章
本文共 699 字,大约阅读时间需要 2 分钟。
B
给一个数列,任意安排顺序,让所有下标距离为k的两个元素作差,取绝对值,全部加起来,问和最小是多少。
分析一下就能知道,根据下标取模得数的不同,可以把这些数分为k组。在最优解情况下,每一组可以让里面的数单调,并且不同组之间也单调,然后就是dp了。比赛的时候想了好久没想清楚怎么dp,功力尚浅啊。。因为我总想着用元素的下标表示状态。。。其实,k组数里面,有n%k个大组,k-(n%k)个小组,大组比小组多一个数,组数最多为5000。只需要用大组和小组各有多少个来表示状态即可。解题难点在于巧妙表示状态!
#includeusing namespace std;#define ll long longconst ll INF = 1000000000000000LL;int a[300010];ll dp[5010][5010];int main(){ int n,k; cin>>n>>k; for(int i=0;i 0)dp[j][i-j]=min(dp[j][i-j],dp[j-1][i-j]+a[pos]-a[pos-gsize+1]); if(i-j>0)dp[j][i-j]=min(dp[j][i-j],dp[j][i-j-1]+a[pos]-a[pos-gsize]); if(i==k&&s==j){ ans=min(ans,dp[j][k-j]); } } } cout< <
转载地址:https://blog.csdn.net/squee_spoon/article/details/47961529 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月20日 22时35分45秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
eclipse识别不到真机设备问题的解决
2021-06-30
MSDK手Q邀请透传参数问题:url编解码与base64编解码
2021-06-30
svn提交的一个坑
2021-06-30
eclipse识别不了模拟器解决办法
2021-06-30
unity mesh合并
2021-06-30
谈谈类之间的关联关系与依赖关系
2021-06-30
unity5.x assetbundle打包和加载
2021-06-30
C#用正则表达式去匹配被双引号包起来的中文
2021-06-30
lua table排序
2021-06-30
Unity发布的ios包在iphone上声音是从听筒里出来的问题
2021-06-30
UIScrollView复用节点示例
2021-06-30
Unity 5 AudioMixer
2021-06-30
Unity 代码混淆: CodeGuard的使用
2021-06-30
UGUI 列表循环使用
2021-06-30
使用命令行运行unity并执行某个静态函数(运用于命令行打包和批量打包)
2021-06-30
web.py框架
2021-06-30
web.py学习笔记
2021-06-30
python的代码缩进
2021-06-30
A* Pathfinding Project (Unity A*寻路插件) 使用教程
2021-06-30