CF 793D Presents in Bankopolis

【Word提效 No.010】使用AI一键复制格式刷应用格式 本文介绍利用AI工具WorkBuddy实现Word文档格式批量复制的自动化解决方案。通过简单指令即可将指定段落的格式一键应用到多个目标段落,解决传统格式刷操作繁琐、易出错的问题。方案包含三步操作:准备文档、输入指令模板、验收效果,并提供多种场景的现成指令示例。该工具支持字体、段落等格式属性的批量复制,且不会覆盖原文件,适用于论文、手册等文档的格式统一需求。 阅读详情

D. Presents in Bankopolis

一个有向图,节点“有序”,找一条长度为k的最短路径,额外要求是当前边不能“跃过”已经经过的节点。
起点的选择范围是[1,n]然后每经过一个点,下一个能到达的点的范围就会缩小,注意到总可以用一个连续的范围表示之,记为[l,r]。那么用dp解决,状态dp[l][r][k]表示可达范围是[l,r],已经走了k步。
貌似dp写成记忆化搜索更符合我的思维,但是这题写记忆化会T。。改递推还改了半天。。
以后能写递推的题,我再写记忆化我就是SB!!!

#include <bits/stdc++.h>

using namespace std;

#define ll long long

const int INF = 1e9;

int n,k;
int m;
const int Max = 88;

int e[Max][Max];

int dp[Max][Max][Max][2];

inline void ckMin(int &x,int y){
    if(x>y){
        x=y;
    }
}

int main(){
    cin>>n>>k;
    cin>>m;

    for(int i=0;i<Max;i++){
        for(int j=i;j<Max;j++){
            for(int kk=0;kk<Max;kk++){
                if(kk==k){
                    dp[i][j][kk][0] = dp[i][j][kk][1] = 0;
                }else{
                    dp[i][j][kk][0] = dp[i][j][kk][1] = INF;
                }
            }
        }
    }

    for(int i=1;i<=m;i++){
        int u,v,c;
        cin>>u>>v>>c;
        if(e[u][v] == 0){
            e[u][v] = c;
        }else{
            e[u][v] = min(e[u][v],c);
        }
    }

    if(k>n){
        cout<<-1<<endl;
        return 0;
    }

    for(int kk=k;kk>0;kk--){
        for(int l=1;l<=n;l++){
            for(int r=l;r<=n;r++){
                for(int pre=1;pre<l;pre++){
                    if(e[pre][l]){
                        ckMin(dp[pre][r][kk-1][1],dp[l][r][kk][1]+e[pre][l]);
                    }
                    if(e[pre][r]){
                        ckMin(dp[pre][r][kk-1][1],dp[l][r][kk][0]+e[pre][r]);
                    }

                }
                for(int pre=r+1;pre<=n;pre++){
                    if(e[pre][r]){
                        ckMin(dp[l][pre][kk-1][0],dp[l][r][kk][0]+e[pre][r]);
                    }
                    if(e[pre][l]){
                        ckMin(dp[l][pre][kk-1][0],dp[l][r][kk][1]+e[pre][l]);
                    }
                }
            }
        }
    }

    int ans = INF;
    for(int l=1;l<=n;l++){
        for(int r=l;r<=n;r++){
            ckMin(ans,dp[l][r][1][0]);
            ckMin(ans,dp[l][r][1][1]);
        }
    }

    if(ans<INF){
        cout<<ans<<endl;
    }else{
        cout<<-1<<endl;
    }
    return 0;
} 
数据分享】中国12.5m数字高程模型(DEM)数据(分省) 数据名称:ALOS 12.5m DEM 数据。数据名称:ALOS 12.5m DEM 数据。数据大小:61.5GB。空间分辨率:12.5m。数据大小:61.5GB。空间分辨率:12.5m。 阅读详情

相关推荐

在MacBook M1/M2上,手把手教你打包包含嵌入模型的RagFlow Docker镜像(避坑指南)

本文详细指导如何在MacBook M1/M2上构建ARM64架构的RagFlow Docker镜像,涵盖环境准备、依赖处理、镜像构建及性能优化全流程。特别针对Apple Silicon芯片的兼容性问题提供解决方案,帮助开发者高效完成本地开发环境搭建。

weixin_26908317的博客 241

Codeforces 793D Presents in Bankopolis【Dp+记忆化搜索】

D. Presents in Bankopolis time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Bankopolis is an incredible city in which a

mengxiang000000 803

QT实现HTTP文件(夹)下载的完整流程与实战技巧

本文详细介绍了使用QT框架实现HTTP文件和文件夹下载的完整流程与实战技巧。通过QNetworkAccessManager等核心类,讲解了从单文件下载、大文件处理、进度显示、暂停/取消功能,到复杂的文件夹下载策略。文章重点剖析了断点续传、错误处理与网络健壮性等关键问题,为C++桌面应用集成稳定高效的下载功能提供了专业指导。

weixin_29239279的博客 277

记忆化搜索Presents in Bankopolis(CF793D )

记忆化搜索!

R的博客 346

pytorch超详细安装教程,Anaconda、PyTorch和PyCharm整套安装流程

本文介绍基于Anaconda环境以及与PyCharm结合,安装PyTorch深度学习框架。

Bluebro的博客 19万+

Silvaco TCAD | GaN HEMT器件仿真与高频功率应用实战

本文详细介绍了使用Silvaco TCAD进行GaN HEMT器件仿真的全流程,涵盖器件结构设计、极化效应建模、高频特性分析及功率损耗优化。通过实战案例展示了GaN HEMT在电动汽车电驱和快充模块等高频功率应用中的性能优势与效率提升策略,为工程师提供可靠的仿真方法与设计验证手段。

desk3的博客 183

codeforces 793 D. Presents in Bankopolis(记忆化搜索)

题目链接:http://codeforces.com/contest/793/problem/D 题意:给出n个点m条边选择k个点,要求k个点是联通的而且不成环,而且选的边不能包含选过的边不能包含以前 选过的点,问最小的权值是多少。 题解:像这种取最小的一般可以考虑一下dp,然后再看一下题目,由于每次选的边都不能包括以前选的点,所以每 选择一条边能选择的区间范围就缩小了。 ...

awow80285的博客 263

MobaXterm详细使用教程

当然MobaXterm的功能远不止这些,但这些是最基本,最常用的,因此先拿出来讲。点击确定后,输入密码(输入密码时并不会显示,只管输入后按确定即可,第一次登陆成功后会提示保存密码,一般选择同意),就可以连接上虚拟机了。(2) 我们可以直接apt-get安装vim等常用功能(或者官网下载插件),实现在windows下模拟linux环境,这样就可以使用vi命令准备INCAR文件,也可以使用Gnuplot进行绘图。支持 Unix 命令(bash,ls,cat,sed,grep,awk,rsync,…

博客 4万+

793D Presents in Bankopolis

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using namespace placeholders; int area[82][

zju2016的博客 432

【007】C++编程必知:原码、补码、反码的全面解读

计算机存储的是数据的补码。原码:计算机中对数字的二进制定点表示方法。比如123的原码是0111 1011。无符号数:原码=反码=补码。有符号数:要分正数和负数,正数的最高位为0,负数的最高位为1。其中,正数的原码、反码、补码都是相同的;负数的反码等于原码的符号数(最高位)不变,其他位取反;补码等于反码+1。比如:-123的原码是1111 1011,反码为1000 0100,补码为1000 0101。原码、补码和反码都是用于计算机表示有符号整数的方法。

Lion_Long的博客 2918

【Pix4d精品教程】Pix4d中央子午线细化设置(测区跨两个分带)

本文介绍了在Pix4d软件中通过修改中央子午线设置来解决跨分带测区刺点问题的方法。针对测区跨3度分带(如105°和108°之间)时像控点与靶标点偏移较大的情况,建议将中央子午线设为测区中心(如106.5°)。具体操作步骤包括:修改投影文件中的中央子午线参数,选择新的输出坐标系配置文件。该方法能有效提高像控点刺点效率,为航测内业数据处理提供便利。操作简单实用,适合大比例尺测图项目中跨分带测区的数据处理需求。

智慧空间实验室 5527

树形DP 【codeforces 793D】Presents in Bankopolis

传送门 判断是否是一道树规题: 即判断数据结构是否是一棵树,然后是否符合动态规划的要求。如果是,那么执行以下步骤,如果不是,那么换台。 建树:通过数据量和题目要求,选择合适的树的存储方式。 如果节点数小于5000,那么我们可以用邻接矩阵存储,如果更大可以用邻接表来存储(注意边要开到2*n,因为是双向的。这是血与泪的教训)。如果是二叉树或者是需要多叉转二叉,那么我

twh233的算法blog 458

S32K1XX Autosar开发实战|全网独家复现EB MCAL Port/Dio配置、详解引脚分层原理、实现经典跑马灯助力车载IO电控落地

在NXP S32K1XX系列车规MCU的AUTOSAR标准开发体系中,MCAL(微控制器抽象层)是软硬件解耦的核心载体,而Port端口模块与Dio数字IO模块是MCAL最基础、最核心的入门模块,也是车载指示灯、按键检测、继电器驱动、外设硬件启停控制的底层支撑。区别于传统裸机直接操作寄存器的开发方式,AUTOSAR架构采用分层隔离设计,Port负责硬件静态初始化、Dio负责动态电平操控,严格遵循车规级开发规范,杜绝硬件资源冲突、引脚配置混乱等问题。

getusushu的博客 43

CF793D Presents in Bankopolis/Namomo Spring Camp 每日一题 Week 1Day2 No Crossing

每日一题 Week1 Day2 No Crossing Problem Statement 一个有nnn个点mmm条边的有向图, 你需要找到恰好经过kkk个点的最短路径, 要求每次选的边不能越过之前已经经过的节点. 即对于路径中x→yx\to yx→y. 不存在以前经过的点ttt使得三者编号满足min⁡(x,y)≤t≤max⁡(x,y)\min(x,y)\leq t\leq \max(x,y)min(x,y)≤t≤max(x,y). Solution 首先我们考虑选择一条边x→yx\to yx→y. 如果x

LH_Frank的博客 653

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【codeforces 793D】Presents in Bankopolis

【题目链接】:http://codeforces.com/contest/793/problem/D 【题意】 给你n个点, 这n个点 从左到右1..n依序排; 然后给你m条有向边; 然后让你从中选出k个点. 这k个点形成的一条路径; 且在路径中,一个被访问过的点不会经过两次或以上; 比如从1->3(1和3被访问过) 然后再从3->4...

AWCXV 165

NTscan扫描工具

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

codeforces 793D Presents in Bankopolis

题解: 大致题意为给定n最大为80的直线点阵,并给出m条单向路,且这m条路能走的条件是,路经过的点没有被访问过,问走完K个点的最小代价。起点任意,终点任意 由于n很小,第一反应是往费用流想,后来发现无法建图(可能是我太菜了) 之后考虑到是条直线,于是往区间dp的思路去想发现这个转移很好想到 dp[now][l][r][k]表示当前在now这个点,只能在(l,r)中找点,需要访问K-k个点的最小代价...

TelmaZzzz的博客 404

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Codeforces 793D Presents in Bankopolis DP

点击打开链接 题意:n个点n 问能否找到长度为k的路径使得不存在已经访问过的x出现在路径的第i条边内min(u,v) 从a->b ab a之后的点无法被访问,每增加一条边,能走的范围(区间)都会减小 dp[l][r][cur][k] 起点为cur,下一步的合法点在(l,r)内,长度为k的路径的最小权值 按cur的边合法的转移状态 O(N^4)记忆化即可 #include usi

Masamiiiiii 1255

Codeforces Problem - 13E Holes

Holes         n个洞1~n,每个洞有一个power,a1~an。把球扔到第i个洞,它会蹦到第i+ai个洞去(一直往后蹦,直到n以外)。有m次操作,分为两种,0是询问把求扔到某个洞,最后能到达哪个洞以及会蹦多少次,1是修改某个洞的power。         这是在CF上一篇讲数据结构的博客上看到的题,学到了一个新的姿势。。方法是分块维护,每块的大小是sqrt(n)。对

A Cube Master 776

CF-Tinkoff Challenge-Elimination Round-D-Presents in Bankopolis

ACM模版描述题解没怎么做过树归问题,所以当做到这道题时不免有些懵逼。典型的树归问题,从一个始发点不断查找下一个可行解,最后输出最小的可行解总和即可。这么说是不是太随意了一些啊,毕竟我没有做出这道题。这个题并不算难,能想到动归就好办了。首先我们设置一个 dp[st][ed][k] 表示从 st 点出发能到达的某个方向最远处 ed 点且剩余 k 个点未走,既然说到某一个方向,那么这里肯定是正向和反向,

逐梦者 557

CF793D(记忆化搜索)

CF793D 每次的走一步,可以选择的区域就缩小,搜索很显然会T,此时加一个记忆化即可。搜索时以当前点,链长和可选区间为搜索状态。 AC代码 #include <bits/stdc++.h> #define yes puts("yes"); #define inf 0x3f3f3f3f #define linf 0x3f3f3f3f3f3f3f3f #define ll long long #define ull unsigned long long #define debug(x) cout&

weixin_58110654的博客 474

codeforces 339C 记忆化搜索

C. Xenia and Weights time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Xenia has a set of weights and pan sca

liyunlonghere 883

codeforces840C On the Bench -- DP

%%%Vectorxj代码#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #define N 310 #define M 1000000007 int i,j,k,n,m,p,v[N],l,a[N],x,y,t,f[2][N],s; int c[N][N];

gjghfd 656

CodeForces 136 A.Presents(水~)

Descriptionnn个人互相送礼,第ii个人送第pip_i个人礼物,每个人只会送出一份礼收到一份礼,问第ii个人收到的礼物是谁送的Input第一行一整数nn表示人数,之后nn个整数pip_i表示第ii个人送礼物对象(1≤n≤100)(1\le n\le 100)Output输出nn个整数,第ii个数表示送第ii个人礼物的人Sample Input42 3 4 1Sample Output4 1

ZSQ 626

codeforces 793A Oleg and shares

题意:可以在数组a中,对任意一个元素进行减k操作,问最少操作多少次使得所有a的元素相等,若不能做到输出-1 思路:选取a数组中的最小元素m,无解的条件为存在(ai-m)%k!=0,(0= 还有一种思路:http://blog.youkuaiyun.com/harlow_cheng/article/details/70568269 但是不懂证明 #include const int maxn = 1e5

chen_minghui的博客 338

poj1179 Polygon

题意:一个多边形,顶点上有数字,边上有加号或乘号。先xuan

A Cube Master 588

UVa816 Abbott's Revenge

题意:走迷宫,在某个点,对于mou'g

A Cube Master 1929
上一篇: Codeforces VK Cup 2017 - Round 2
下一篇: CF 797F Mice and Holes(单调队列优化dp)
squee_spoon
博客等级 码龄14年 61粉丝 455原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值