Codeforces Beta Round #8 C. Looking for Order 状压DP,路径记录

开源实战 | 基于SolidWorks与Matlab的并联索驱机器人轨迹规划全流程 本文详细介绍了基于SolidWorks与Matlab的并联索驱机器人轨迹规划全流程,涵盖从基础概念到实战技巧的各个环节。通过SolidWorks建模、Matlab运动学实现及轨迹优化策略,展示了如何实现高精度轨迹规划,适用于摄影、医疗等领域的机器人应用。 阅读详情

题目链接:http://codeforces.com/contest/8/problem/C
题意:平面上有n个物品,这个小朋友会去拿这些物品,然后拿到返回包的位置。但是这个小朋友一次最多拿两个物品,问你怎么去拿,才能使得把所有物品都拿到包的位置,且走的距离和最小
解法: 比较显然的状压,状压中有一个剪枝,显然拿的顺序是随意的,我先拿和后拿都是一样的。所以可以直接return就好了。这题质量感觉蛮高的。。

//CF 8C 状压DP

#include <bits/stdc++.h>
using namespace std;
const int maxn = 24;
int dp[1<<maxn], pre[1<<maxn];
int n, d[maxn+2][maxn+2], x[maxn+2], y[maxn+2];
int dfs1(int x)
{
    if(dp[x]!=-1) return dp[x];
    dp[x] = 1e9;
    for(int i = 0; i < n; i++){
        if(x&(1<<i)){
            int nxt = dfs1(x^(1<<i));
            if(dp[x] > nxt+d[n][i]+d[i][n]){
                dp[x] = nxt+d[n][i]+d[i][n];
                pre[x]=x^(1<<i);
            }
            for(int j = i+1; j < n; j++){
                if(x&(1<<j)){
                    int nxt = dfs1(x^(1<<i)^(1<<j));
                    if(dp[x]>nxt+d[n][i]+d[i][j]+d[j][n]){
                        dp[x] = nxt+d[n][i]+d[i][j]+d[j][n];
                        pre[x]=x^(1<<i)^(1<<j);
                    }
                }
            }
            break;//这个剪枝超级重要,不加会T
        }
    }
    return dp[x];
}
void dfs2(int x){
    if(x){
        for(int i = 0; i < n; i++){
            if((x^pre[x])&(1<<i)){
                printf("%d ",i+1);
            }
        }
        printf("0 ");
        dfs2(pre[x]);
    }
}
int main()
{
    scanf("%d%d", &x[0], &y[0]);
    scanf("%d", &n);
    x[n] = x[0], y[n] = y[0];
    for(int i = 0; i < n; i++){
        scanf("%d%d", &x[i], &y[i]);
    }
    for(int i = 0; i <= n; i++){
        for(int j = 0; j <= n; j++){
            d[i][j] = (x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]);
        }
    }
    memset(dp, -1, sizeof(dp));
    dp[0] = 0;
    int mask = (1<<n)-1;
    int ans = dfs1(mask);
    printf("%d\n", ans);
    printf("0 ");
    dfs2(mask);
    printf("\n");
    return 0;
}
python实现Markowitz模型 (附完整源码) 阅读详情

相关推荐

网易CodeWave智能生成应用实战:5分钟搞定库存管理系统(附详细配置截图)

本文详细介绍了如何利用网易CodeWave智能生成应用在5分钟内快速构建定制化库存管理系统。通过自然语言描述需求,无需编程即可生成包含产品管理、库存预警等核心功能的应用,并支持字段微调、业务流程注入等深度优化。文章附有详细配置截图,帮助用户高效实现数字化转型。

julia4scientist的博客 888

Codeforces 8C

题目大意:给出包的坐标和n个物品的坐标,你初始从包出发,每次可以最多拿两个物品,问怎么走使路程最短,输出方案。 题解:状压dp,开始我想状态一直没有想出来。容易知道只要你拿包的配对方案是一定的,那么不管按什么顺序拿,都是可以的。 那么我们设dp[i]表示i这个二进制状态,也就是说当前状态选了i这些物品的答案。然后进来一个物品(当前没被选的物品中下标最靠前的一个),我们先更新把这个物品单独拿的后继

Sakai_Masato的博客 773

Replay音频转换时samplerate缺失的解决方案指南

Replay音频转换时提示"No module named 'samplerate' This error is lazily reported, having originally occured in File"的解决方案

weixin_47445543的博客 2133

Codeforces Beta Round 8 C. Looking for Order 【状压DP】

个人练习记录

m0_73500785的博客 986

平衡小车动力学建模

两轮自平衡小车由车体和双轮两部分组成,可以看成一个移动的倒立摆,分别对车轮和车体进行力学分析,建立动力学模型,最后,通过对两者的分析给出系统的状态空间表达式。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kjiPEUVJ-1679470559950)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20230322110521545.png)]

qq_23096319的博客 9056

LightTools宏 vs Python API:光学仿真自动化方案选型指南

本文深入对比了LightTools光学仿真自动化中VBA宏与Python API两种方案。VBA宏内嵌易用,适合固定流程批处理;Python API生态强大,尤其在参数优化算法集成方面优势显著,便于构建复杂工作流。文章结合案例,为不同场景下的技术选型提供清晰指南。

garlic的博客 940

Codeforces 8C 状压DP

题意:有个人想收拾行李,而n个物品散落在房间的各个角落里(n < 24)。现在给你旅行箱的坐标(人初始在旅行箱处),以及n个物品的坐标,你一次只能拿最多两个物品,并且拿了物品就必须放回旅行箱,不能暂时放在地上。问最小的花费是多少?花费是笛卡尔距离的平方。 思路一看n 只有24,应该很容易想到要用状压DP. 那么dp[i]表示i状态并且回到原点的最小花费。那么就暴力枚举拿1个或两个物品放回原...

weixin_30555753的博客 96

初级文章【西门子】字符拼接成字符串

针对S7-400极其以下PLC,1200往上据说有专门的块了呢,首先,我是不用库的,需要什么函数会自己写,OK进入正题。 首先,我们有一个DB块,里面有14个char,一个14位的char数组和一个14位的string。如下图。 我们的目的是将char1-char10拼接成一个string。 第一种方式:第一步,将char放进数组。 ​​​​​​​ 相信大家都能看明白,但是我还是要解释解释 L取值2 T赋值到临时变量DBNO(INT) OPN DB [#DBNO]获取DB块,这一句.

NS_Speak(IVAV) 1万+

codeforces 8C 状压DP

codeforces 8C 题意: 给定n个物品,第i个物品的坐标为(xi,yi),你的起点坐标为(xs,ys)。给定n个物品,第i个物品的坐标为(x_i,y_i),你的起点坐标为(x_s,y_s)。给定n个物品,第i个物品的坐标为(xi​,yi​),你的起点坐标为(xs​,ys​)。 现在要将所有物品全部放回起点,每次手中拿的物品数量不能超过2个。现在要将所有物品全部放回起点,每次手中拿的物品...

Welcome to csdn_PatrickStar's blog 464

virtuoso如何导出def?

在DEF Out界面,填写def name,library name以及cell name ,cell view既layout,把Output "Floating Shapes" into SPECIAL NETS Section勾上,OK即可。2)在要导出的layout界面选中PAD和prBoundary(shift+左键),快捷键C copy到空cell里,这时需要调整copy过来的object坐标,让两边prBoundary的坐标相同。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 2307

基于LLM的电商数据分析系统

随着电商行业的蓬勃发展,每天都会产生海量的数据,这些数据包含了用户的行为信息、商品信息、销售数据等。如何从这些繁杂的数据中提取有价值的信息,为电商企业的决策提供支持,成为了一个关键问题。基于LLM的电商数据分析系统的目的就是利用大语言模型强大的自然语言处理和数据分析能力,对电商数据进行深入挖掘和分析,帮助企业了解市场趋势、用户需求、商品销售情况等,从而制定更加合理的营销策略、优化商品库存管理、提升用户体验等。本系统的范围涵盖了电商领域的多个方面,包括用户行为分析、商品分析、销售数据分析等。

AI Python 编程之道的博客 808

Codeforces8C(状压dp)

题意: 一个人在起点,有许多物品散落在各个地方,现在给出人起点的坐标和物品的坐标,然后给出一个要求,每次最多只能拿两个物品拿完物品必须回到原点装到包里面,求最短路程的方案,答案和路径都要输出。 这题如果是超级暴力即状态和两个点都全部枚举会超时,稍微优化下,因为先去哪个都是一样的,因为都 要回到原点,这样相当于每次是从原地出发找出然后回去,所以首先枚举状态,然后枚举第一个点,这时候先转移这个点的

ACM之梦 756

【科研绘图系列】R语言绘制代谢物与临床表型相关性的森林图

本研究通过森林图展示了特定代谢物与三种临床比较之间的相关性分析结果。这种方法不仅直观地展示了每个代谢物的效应大小和不确定性,还允许我们比较不同代谢物在不同临床比较中的影响。森林图的结果表明,某些代谢物在特定临床比较中显示出显著的相关性,这可能为理解疾病的代谢机制提供了重要线索。

专注生信领域 565

Codeforces Beta Round #8 C. Looking for Order CF8C

就是个记录路径的dp 但是每次枚举走1个点和走2个点会超时可以注意到明显每次尽量拿2个是比只拿1个更优的 考虑一个三角形 两边之和大于第三边因此对每个状态枚举拿2个 固定一个和枚举一个 这样就能枚举到所有情况#include <iostream> #include <algorithm> #include <sstream> #include <string> #include <queue

sb的博客 374

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

codeforces 8C(非原创)

C. Looking for Order time limit per test 4 seconds memory limit per test 512 megabytes input standard input output standard output Girl Lena likes it when everything i...

weixin_30488085的博客 254

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

CodeForces - 8C Looking for Order (两种方法的实现:状压DP,DFS)

Girl Lena likes it when everything is in order, and looks for order everywhere. Once she was getting ready for the University and noticed that the room was in a mess — all the objects from her handbag...

bibibi724 494

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

CodeForces - 8C Looking for Order【状态压缩dp】

【题目描述】 Girl Lena likes it when everything is in order, and looks for order everywhere. Once she was getting ready for the University and noticed that the room was in a mess — all the objects from her ...

inv0ker的博客 234

CodeForces 8 C.Looking for Order(状压DP)

Description 给出nnn个物品的二维坐标以及起点坐标,每次要从起点出去拿一件或两件物品回到起点,两点之间距离定义为欧氏距离的平方,问把所有物品拿回起点所走最短距离以及对应最短距离下拿物品的顺序 Input 首先输入两个整数sx,sysx,sysx,sy表示起点坐标,之后输入一整数nnn表示物品数量,最后nnn行每行两个整数xi,yixi,yix_i,y_i表示第iii个物品的坐标(...

ZSQ 473

Codeforces 8C Looking for Order(状压DP)

C. Looking for Order time limit per test 4 seconds memory limit per test 512 megabytes input standard input output standard output Girl Lena likes it when everything is

yasolx的博客 859

CF 8C Looking for Order(状压dp)

C. Looking for Order time limit per test 4 seconds memory limit per test 512 megabytes input standard input output standard output Girl Lena likes it when everything is

记录成长的点点滴滴. . . . . 1163

codeforces 8C - Looking for Order 状态DP

一个女孩整理箱子,箱子的位置不可以改变,她一次可以拿两个或者是一个行李,女孩移动时间花费是她移动距离的平方。 int dist[maxn][maxn] ; int dp[1<<maxn] , father[1<<maxn] ; pair pt[maxn] , p ; int gtd(int i , int j){ return (pt[i].fir

老李2009 704

Codeforces Beta Round #8 A. Train and Peter(kmp)

A. Train and Peter time limit per test1 second memory limit per test64 megabytes inputstandard input outputstandard output Peter likes to travel by train. He likes it so much that on the train he...

a670531899的博客 399

Codeforces Beta Round #8 C. Looking for Order 状压

C. Looking for Order 题目连接: http://www.codeforces.com/contest/8/problem/C Description Girl Lena likes it when everything is in order, and looks for order everywhere. Once she was getting ready for the ...

weixin_30663471的博客 133

2018.07.23 codeforces 438D. The Child and Sequence(线段树)

传送门 线段树维护区间取模,单点修改,区间求和。 这题老套路了,对一个数来说,每次取模至少让它减少一半,这样每次单点修改对时间复杂度的贡献就是一个loglog,所以维护区间最大值剪枝,然后每次单点暴力取模,这样的话时间复杂度为O(nlogn)O(nlogn)。 代码如下: #include<bits/stdc++.h> #de...

weixin_30843605的博客 199

Codeforces 815A-Karen and Game

Karen and Game time limit per test 2 seconds memory limit per test 512 megabytes input standard input output standard output On the way to school, Karen became fixated o

wang_128的博客 617

Codeforces Beta Round #8

点击打开链接 A 思路:正反字符串各自判断一次是否有对应的两个子串 分析: 1 题目给定一个字符串str,然后给定两个不同时间段内看到的子串s1 , s2,判断是哪一种情况。 2 我们知道两个时间段内那么看到的字符串是有间隔的,那么如果我们怎么知道是否是“向前”“向后”“都有”“没有”这四种答案中的哪一种呢?其实我们知道如果给定的两个子串都是给定的字符串str的子串,那么我们就必须正...

我是传奇 172
上一篇: Codeforces Beta Round #9 (Div. 2 Only) D. How many trees? dp
下一篇: CDOJ 1307 ABCDE dp, 前缀和优化
just_sort
博客等级 码龄11年 2357粉丝 1667原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值