pku3270 Cow Sorting

本文探讨了置换群的概念及其快速幂运算的应用,通过具体的代码示例解释了如何实现置换运算,并介绍了错误处理方法。

// 2.置换,置换的运算  //   置换的概念还是比较好理解的,《组合数学》里面有讲。对于置换的幂运算大家可以参考一下潘震皓的那篇《置换群快速幂运算研究与探讨》,写的很好。

//然后我就试了,结果老是错,数组超届啊

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
#define inta __int64

int a[2000005],b[2000005],vis[2000005],n;

int find(int k){
    for(int i=1;i<=n;i++){
        if(a[i]==k) return i;
    }
    return 1;
}

int main(){
    inta sum=0;
    int i,small,min;
    scanf("%d",&n);
    memset(vis,0,sizeof(vis));

    for(i=1;i<=n;i++){
        scanf("%d",&a[i]);
        b[i]=a[i];
        if(i==1) small=a[i];
        if(a[i]<small) {small=a[i];a[0]=b[0]=small;}
    }
    sort(b+1,b+n+1);

    int beg=0,len=0;
    int a1,a2,j,cont=0;
    inta ss=0;
    i=1;
    while(len<n){
        if(vis[a[i]]==0&&beg==0){
            cont=1;
            beg=a[i];
            len++;
            sum+=a[i];
            min=a[i];
            vis[a[i]]=1;
         //   printf("%d ",a[i]);
            }

        if(b[i]!=a[i]){
        i=find(b[i]);
        cont++;
        len++;
        if(min>a[i]) min=a[i];
        sum+=a[i];
        vis[a[i]]=1;
       // printf("%d ",a[i]);
        }

        if(b[i]==beg){
          //  printf("\n");
            a1=sum-min+(cont-1)*min;
            a2=sum+min+(cont+1)*small;
            if(a1>a2) ss+=a2;
            else ss+=a1;
            if(len<n){
                beg=0;sum=0;min=0;cont=0;
                for(j=1;j<=n;j++)
                    if(vis[a[j]]==0){
                        i=j;
                        break;
                    }
            }
        }


    }
    printf("%I64d\n",ss);


    return 0;
}

内容概要:本文提出一种基于融合鱼鹰搜索行为与柯西变异策略的改进麻雀优化算法(OCSSA),用于优化变分模态分解(VMD)的关键参数(如模态分量数K和惩罚因子α),以实现对滚动轴承振动信号的高效自适应分解,有效抑制模态混叠问题。经过OCSSA优化的VMD对原始信号进行预处理后,将分解得到的本征模态函数(IMF)重构为时频特征矩阵,作为卷积神经网络(CNN)的输入,以自动提取深层次的空间特征;随后,双向长短期记忆网络(BiLSTM)进一步挖掘特征序列中的前后向时序依赖关系,最终实现高精度的故障分类识别。该OCSSA-VMD-CNN-BiLSTM模型在西储大学公开轴承数据集上进行了充分验证,结果表明其在复杂噪声环境下对轴承不同故障类型与程度的诊断准确率显著优于传统方法,充分体现了智能优化算法与深度学习相结合在故障诊断领域的优越性能。; 适合人群:具备信号处理、机器学习及智能优化算法基础知识,从事机械装备状态监测、故障诊断、工业大数据分析等相关领域的科研人员、工程技术人员及高校研究生。; 使用场景及目标:①解决传统VMD参数依赖经验设定导致信号分解效果不稳定的问题;②提升强背景噪声和工况变化下滚动轴承早期微弱故障的检测灵敏度与分类准确率;③为智能制造和工业互联网背景下的关键设备智能运维与预测性维护提供一套可复现、高性能的技术解决方案。; 阅读建议:此资源以Matlab代码实现为核心,建议读者深入研读算法代码,重点理解OCSSA的寻优机制、VMD参数自适应选择过程以及CNN-BiLSTM的网络构建细节,通过复现完整实验流程,掌握从信号预处理、特征提取到智能分类的全流程关键技术,并尝试在自有数据集上进行迁移应用与性能对比。
源码链接: https://pan.quark.cn/s/a4b39357ea24 接口测试框架(基于json格式、http请求,python3,不兼容python2.x版本) 注:现在基于Excel文件管理测试用例基本实现,) 备注:大家在运行的时候,如果参数不需要key,只需要字典,可以在ddt_case.py和case.py改造parame,注释掉现在的parem,启用新的即可 依赖用例支持用例执行,在testCase的ddt_case.py有实现,逻辑在代码中有写,参数的格式{"name":"$case1=data"}即代表name的值是case1的data字段,简单的实现。 依赖用例是简单的实现,具体在业务上面还有很多复杂的要处理,知识实现了,部分的思路。 (目前在部分window上会出现FileNotFoundError [Errno 2] No such file or directory,这个bug是路径过长,解决方案为吧log日志放在当前目录,或者修改动态生成的文件的名字,给了第一种方式,测试日志放在当前目录) qq交流群:194704520 Alt text 使用的库 requests,绝大部分是基于Python原有的库进行的,这样简单方便, 使用脚本参数分离等思想,尽可能降低代码的耦合度。 如果你不配置钉钉机器人,注释到机器人相关的代码 首先我们来看下我们的目录 Alt text ### 1.Case文件夹用来存放我们的测试用例相关的, test_case用来存储我们的测试数据,Excel管理测试用例,yaml文件管理测试用例,后续要把yaml管理测试用例的也封装出来。 Interface对测试接口相关的封装,包括requests库,发送...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值