poj3270

​银行IT运维人必看!IT运维监控指标大全,一篇讲透 文章摘要:本文从七个维度系统阐述了IT运维指标体系,涵盖机房环境、基础设施、网络设施、数据存储、虚拟化平台、数据库中间件和应用层。作者结合20年金融行业经验,详细分析了各层级关键监控指标、正常范围及异常后果,并给出典型故障场景。重点强调现代运维需从被动响应转向主动预防,通过精细化指标管理实现系统稳定性保障。文章特别指出,在国产化与DevOps背景下,运维工作需兼顾传统架构与新兴技术,构建全方位监控体系,将运维从"故障报警"升级为"业务守护"。 阅读详情

Cow Sorting

Description

Farmer John's N (1 ≤ N ≤ 10,000) cows are lined up to be milked in the evening. Each cow has a unique "grumpiness" level in the range 1...100,000. Since grumpy cows are more likely to damage FJ's milking equipment, FJ would like to reorder the cows in line so they are lined up in increasing order of grumpiness. During this process, the places of any two cows (not necessarily adjacent) can be interchanged. Since grumpy cows are harder to move, it takes FJ a total of X+Y units of time to exchange two cows whose grumpiness levels are X and Y.

Please help FJ calculate the minimal time required to reorder the cows.

Input

Line 1: A single integer:  N. 
Lines 2.. N+1: Each line contains a single integer: line  i+1 describes the grumpiness of cow  i. 

Output

Line 1: A single line with the minimal time required to reorder the cows in increasing order of grumpiness.

Sample Input

3
2
3
1

Sample Output

7

Hint

2 3 1 : Initial order. 
2 1 3 : After interchanging cows with grumpiness 3 and 1 (time=1+3=4). 
1 2 3 : After interchanging cows with grumpiness 1 and 2 (time=2+1=3).

Source



置换群的应用。题目思路如下:

1.找出初始状态和目标状态。目标状态就是排序后的状态;
2.画出置换群,在里面找循环。例如,8 4 5 3 2 7,目标状态是2 3 4 5 7 8,能写为两个循环:(8 2 7)(4 3 5);
3.观察其中一个循环,明显地,要使交换代价最小,应该用循环里面最小的数字2,去与另外的两个数字,7与8交换。这样交换的代价是:
sum - min + (len - 1) * min,化简后为:sum + (len - 2) * min。其中,sum为这个循环所有数字的和,len为循环长度,min为这个循环环里面最小的数字;

4.考虑到另外一种情况,我们可以从所有数值中调取一个最小的进入这个循环之中,可能会使交换代价更小。例如初始状态:1 8 9 7 6,可分解为两个循环:(1)(8 6 9 7),第二个循环为(8 6 9 7),最小的数字为6。我们可以抽调整个数列最小的数字1进入这个循环。使第二个循环变为:(8 1 9 7)。让这个1完成任务后,再和6交换,让6重新回到循环之后。这样做的代价是:smallest+min+(sum-min)+(len-1)*smallest+smallest+min,即sum + min + (len + 1) * smallest,其中,sum为这个循环所有数字的和,len为长度,min为这个环里面最小的数字,smallest是整个数列最小的数字。
5.因此,对一个循环的排序,其代价是sum - min + (len - 1) * min和sum + min + (len + 1) * smallest之中较小的那个值。
6.我们在计算循环的时候,不需要记录这个循环的所有元素,只需要记录这个循环的最小的数及其和。

代码如下:

#include<iostream>
#include<algorithm>
using namespace std;

int main(void) {
    int n;
    int ans;
    ans = 0;
    scanf("%d", &n);
    int cow[10001];
    int cow2[10001];
    for (int i = 0; i < n; i++) {
        scanf("%d", &cow[i]);
        cow2[i] = cow[i];
    }
    sort(cow2, cow2 + n);
    int number[100001];
    for (int i = 0; i < n; i++)
        number[cow[i]] = i;
    int visit[10001];
    memset(visit, 0, sizeof (visit));
    for (int i = 0; i < n; i++) {
        if (!visit[i]) {
            int start;
            start = cow[i];
            int min;
            min = 100000000;
            int len;
            len=0;
            int sum;
            sum = 0;
            int id;
            id = i;
            while (1) {
                visit[id] = 1;
                sum += start;
                if (min > start)
                    min = start;
                id = number[cow2[id]];
                start = cow[id];
                len++;
                if (start == cow[i])
                    break;
            }
            if (sum - min + (len - 1) * min < sum + min + (len + 1) * cow2[0])
                ans += sum - min + (len - 1) * min;
            else
                ans += sum + min + (len + 1) * cow2[0];
        }
    }
    printf("%d\n", ans);
}



PCL1.12.1+VTK9.1+Qt5.14.2实战:解决QVTKOpenGLNativeWidget点云渲染窗口初始化报错问题 本文针对PCL1.12.1、VTK9.1与Qt5.14.2集成开发中,QVTKOpenGLNativeWidget点云渲染窗口初始化时出现的报错与黑屏问题,提供了深度分析与两种实战解决方案。核心在于理解VTK版本升级导致的渲染窗口类型不匹配,并指导开发者通过显式创建vtkGenericOpenGLRenderWindow或利用窗口ID嵌入,正确初始化并绑定可视化组件,从而稳定实现点云渲染。 阅读详情

相关推荐

Solidworks在Windows 11上安装失败?这里有解决方案

通过上述步骤,你应该能够解决在Windows 11上安装Solidworks时遇到的问题。这个方法通过调整注册表的设置,提高了安装程序的权限,从而有效避免了安装过程中的权限障碍。当然,每个系统的具体情况可能有所不同,如果在尝试上述方法后仍然无法解决问题,建议联系Solidworks的技术支持团队,获取更专业的帮助。希望本文能够对你有所帮助,祝你工作顺利,设计无忧!

nntxthml的博客 4912

poj3270--Cow Sorting(置换群)

题目链接:点击打开链接 题目大意:给出你n个数,要求把这n个数排列成有序的(由小到大),每次可以交换两个数,花费是这两个数的和,现在求最小的花费 置换群的入门 求出每一个轮换的圈,对于每一个轮换中,只有在自身内交换就能完成有序,而不需要和其它轮换交叉。 一个轮换的最小值temp,轮换中有num个数,轮换的总和是sum,整个序列的最小值min1 让一个轮换花费最少有两种可能 1、轮换自身

随风的专栏 1332

OpenVox 8FXO板卡驱动安装记录

OpenVox A800P和A1200P的板卡驱动安装及问题解决方法

clliu的专栏 2463

POJ3270 置换群

给你一些没有重复的数,你只能交换其中两个数字,但是你要付出的代价是这两个数字之和。问你如何交换使得这些数字递增且代价最小。置换群的概念:这些数字将会形成几个循环体。对于每个循环体1、循环体内和 + 循环体内最小值 + 所有数内最小值 * (该循环体内数字个数 + 1)2、循环体内和 + 循环体内最小值 * (该循环体内数字个数 - 1)以上两种取最小值即可。//#pragma comment(li

ColorWaterer的专栏 591

驻极体咪头信号采集避坑指南:如何用5V单电源搞定0.1mV~1V的音频放大?

本文针对驻极体咪头(ECM)在5V单电源系统中信号采集的常见难题,提供了详细的电路设计指南。文章深入分析了咪头的高输出阻抗与微弱信号特性,重点阐述了采用两级运放(如AD8542)实现低噪声放大、直流偏置叠加以及抗混叠滤波的完整方案,并分享了PCB布局、电源去耦等关键调试技巧,帮助工程师稳定采集0.1mV至1V的音频信号。

weixin_29291069的博客 441

Silvaco TCAD实战 | SiC MOSFET工艺仿真与关键参数DOE分析

本文详细介绍了使用Silvaco TCAD进行SiC MOSFET工艺仿真与关键参数DOE分析的实战方法。通过外延生长建模、离子注入工艺调试等步骤,结合DOE分析优化器件性能,帮助工程师在设计阶段预判电学特性,提升产品可靠性。文章还分享了网格划分、界面态建模等实用技巧,助力实现从仿真到产品的闭环验证。

weixin_30235225的博客 507

poj 3270(置换 循环)

经典的题目,主要还是考思维,之前在想的时候只想到了在一个循环中,每次都用最小的来交换,结果忽略了一种情况,还可以选所有数中最小的来交换一个循环。 Cow Sorting Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 6511   Accepted: 2532 Desc...

weixin_34072159的博客 216

OpenClaw实战系列07:定时任务与自动化工作流实战——让AI从“被动响应”到“主动执行”

通过本文的学习,你已经将 OpenClaw 从“被动应答”升级为“主动执行”的自动化引擎。定时简报:每天8点自动生成行业简报推送飞书/钉钉GitHub事件触发:PR合并自动触发Code ReviewAgent间协作:数据采集→分析→报告全自动流水线系统监控:定时检查服务器状态,异常自动告警核心收获掌握 OpenClaw 内置 Cron 系统的三种调度模式学会 Webhook 配置和事件触发机制理解 Agent 间通信的两种方式(sessions_spawn / sessions_send)

PeterPan的博客 691

POJ - 3270 Cow Sorting 置换

题目:有一串数字,要将它排列成升序,每次可以交换两个数,交换一次的代价为两数之和,求代价最小是多少。 思路:置换。对于每个循环,要么是用当前循环内最小的数mi去和其他数交换,要么是用全局最小值MIN和mi交换,然后用MIN去和循环内其他的数进行交换,然后MIN再和mi去交换。 假设循环长度为cnt,循环内所有数的和为sum,那么答案就是sum+min((cnt-2)*mi,mi+(cnt+1)

ACVevtor的博客 297

YOLOv11 改进策略之 Conv 篇:基于 C2fC 与 RepC_SPELAN4 的性能跃迁教程

某工业质检场景中,采用本文改进模块的 YOLOv11 模型,对微小零件缺陷的检测准确率提升 22%;YOLOv10 提出的 C2fC 模块与 RepC_SPELAN4 结构,是针对特征融合与卷积效率的突破性设计,掌握它们,你就能让自己的 YOLOv11 模型在精度与速度的平衡上实现“质的飞跃”。别再让“模型精度不足”成为你的瓶颈——现在就动手修改代码,让你的 YOLOv11 模型在特征提取与检测效率上实现质的飞跃,用技术实力证明你的 AI 研发能力!中的卷积层为 RepC_SPELAN4。

m0_71589036的博客 97

【论文解读--Xdog】新型电驱式四足机器人研制与测试

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、四足机器人体型大小和驱动方式的比较二、四足机器人设计一些重要的结论三、系统控制框架四、系统硬件框架五、力位混合控制(阻抗控制)六、侧向平衡控制(和VMC如出一辙)七、电机驱动系统研制(FOC磁场定向控制)总结 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对新型电驱式四足机器人研制与测试做个简单的介绍,具体内容后续再更,其他模块可以参

qq_35635374的博客 3727

POJ3270 Cow Sorting

解法:置换。 题目链接:http://poj.org/problem?id=3270 1.找出初始状态和目标状态。明显,目标状态就是排序后的状态。 2.画出置换群,在里面找循环。例如,数字是8 4 5 3 2 7 明显,目标状态是2 3 4 5 7 8,能写为两个循环: (8 2 7)(4 3 5)。 3.观察其中一个循环,明显地,要使交换代价最小,应该用循环里面最小的数字2,去与另外的两

moon_NO2015的博客 549

开源项目-智能算法中台管理系统

智能算法中台管理系统,系统主要有样本中心,算法中心,模型中心等模块

u010479989的博客 3002

POJ 3270 Cow Sorting

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2838 题意:给我们一串值,可以交换任意两个的位置,代价则是两个价值的和,问我们最小花费多少可以使得这串值升序排列。 这个题第一步我们应该找到的是每一位的置换循环节,在循环节中的调整才能够使得这个序列变成升序的,举个例子:6,3,4,2,1,5,最终要把它变成1,2,3,4,5,6,我们移动6,就可

RaAlGhul的博客 454

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

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

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

【解题报告】POJ 3270 Cow 置换群基础 -- 轮换

/* POJ 3270 Cow 置换群基础 -- 轮换 题意: 给一个序列 A[1 8 9 7 6] 仅允许一次交换两个元素,交换代价为两个数字之和 求最小的代价和使得序列有序(递增) 元素不会重复 方法: 我们很容易算出 排序后的结果为A'[1 6 7 8 9] 也就是让A序列通过交换变为A'序列, 不过我们在这里尝试反过来考虑,将A'变为A A' [1 6 7 8 9] A

生命有一种绝对 1386

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【poj3270】 Cow Sorting

http://poj.org/problem?id=3270(题目链接) 题意   n个数要要按从小到大的顺序排列,每次只能交换任意两个数,交换的代价为这两个数之和,问最小代价。 Solution   题目简单,想清楚再写。。而我想清楚已经过去15分钟了→_→ 细节   如果Wa了请点开Discuss,里面有组hack数据。 代码 // poj3270 #include&l...

weixin_30362801的博客 138

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

置换的基础应用(附POJ 3270 Cow Sorting 解题报告)

对于n个给定的不同的数,我们可以将任意一个排列看成是一个置换。于是对于POJ 3270这道题,我们这样看:首先给你的一个n个任意不同的数形成一个排列,然后我们对这个排列中的数从小到达排序。题目中要求的就是要形成升序的排列。那么我们把输入的那个排列看成是一个置换。

Bright 1135

poj 3270 Cow Sorting(置换群)

链接:http://poj.org/problem?id=3270 做这道题,是昨天的比赛被1003给虐爆了. /* Problem ID: poj 3270 meaning: 给出一列数,要将其排列成升序序列所需的最少花费,ps:cost 是交换的两数之和. Analyzing:置换群.黑书p248.找到每个循环节的长度ki和它的最小元素ti cost=sum+sum(m

uiiの技术随笔 1385

POJ3270(Cow Sorting)

置换群+离散化(但是置换群的感觉不明显)program POJ3270; const maxn=100000; var b:array [0..maxn] of boolean;//b数组标记某位置上的数是否位于群内。 a,link,c:array [0.

242

POJ3270 Cow Sorting 置换群循环节

题目链接:POJ3270题目大意:给你一组序列,目标为有序序列,每次只能交换两个数,每次的花费为交换的两个值的和,求如何交换使得花费最少。 知识点:置换群循环节 我们知道,当一个循环节中最小的值与这个循环节中所以其他值交换,花费最少,并且交换完后有序。 假设循环节长度为k,循环节中最小值为m,那么只需要用最小值m与其他值交换k-1次,即可有序。代价这样算,除最小值m之外的数,只需要一次就可以到自己

xyry 582

Cow Sorting && Permutations(poj 3270 && 2369)

poj3270:点击打开链接 关于置换群的题目,以前见过类似的qi

23333333 742

POJ 3270 Cow Sorting 置换群

/*Template*/ /*Poj 3270 Cow Sorting */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #

388

POJ-3270 Cow Sorting 置换群

  题目链接:http://poj.org/problem?id=3270   把数列循环分解,注意到长度为k的循环最少用k-1次置换,那么次循环的最优值就是用循环中的最小值去与每个置换,还要考虑此循环中的最优值可以由其它循环影响,影响的那个循环肯定还有数列中的最小值。 1 //STATUS:C++_AC_16MS_396KB 2 #include<stdio.h> ...

weixin_30361753的博客 122

poj3270 Cow Sorting 置换环+贪心

poj3270 Cow Sorting 置换环+贪心 Farmer John's N (1 ≤ N ≤ 10,000) cows are lined up to be milked in the evening. Each cow has a unique "grumpiness" level in the range 1...100,000. Since grumpy cows are more likely to damage FJ's milking equipment, FJ would like

ACZone 781

poj 3270 置换

1 poj 3270 置换的应用 黑书原题P248 2 /** 3 题意: 给定序列, 将其按升序排列, 每次交换的代价是两个数之和, 问代价最小是多少 4 思路:1、对于同一个循环节之内的,肯定是最小的与别的交换代价最小 5 2、 对于整个序列中最小的与其交换 ,也可能最小 6 比较这两个大小,即可...

a18865477815的博客 170

POJ 3270

算是真正的数论第一题吧。。。。。 看了p

The Summer, The Winter 774
上一篇: poj2409
下一篇: poj1026
lulining
博客等级 码龄15年 8粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值