NENU 17级算法学习小组 Round 2 0530

AID智能抄表子卡原理图PDF 立即下载

题目链接

密码:12345678

A题:签到题,还是要注意输入的写法,还有就是做题不要用float,最好用double;不要用long,用long long。(有同学用long double,额,这个不怎么用......)

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#define ll long long
#define inf 100000010
#define maxn 100010
#define PI 3.1415927
using namespace std;
int main()
{
    double r;
    while(scanf("%lf",&r)!=EOF)
    {
        double v=r*r*r*4/3*PI;
        printf("%.3f\n",v+1e-9);
    }
    return 0;
}

B题:简单题。有很多种写法都可以AC。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#define ll long long
#define inf 100000010
#define maxn 100010
#define PI 3.1415927
using namespace std;
int main()
{
    int y,m,d;
    char a,b;
    while(scanf("%d%c%d%c%d",&y,&a,&m,&b,&d)!=EOF)
    {
        int ans=0;
        int c[13];
        c[0]=0;
        for(int i=1;i<=12;i++)
        {
            if(i==2)
                continue;
            if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
                c[i]=31;
            else
                c[i]=30;
        }
        if((y%4==0&&y%100!=0)||y%400==0)
            c[2]=29;
        else
            c[2]=28;
        for(int i=0;i<=m-1;i++)
            ans+=c[i];
        ans+=d;
        cout<<ans<<endl;
    }
    return 0;
}

C题:大数阶乘,这题比较难。因为N最大可以是10000,所以N!用long long也存不下,long long最大能存下1e19(差不多),这个时候我们就要用数组来存了,“万进制”了解一下吐舌头。还有就是以后遇到这种连long long都存不下的大数问题,要么是有很巧妙的运算技巧,要么就是用数组来存,这点需要注意一下。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#define ll long long
#define inf 1000010
#define maxn 10010
using namespace std;
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        int a[10010];
        a[0]=1;
        int k=0;        //记录位数
        for(int i=1;i<=n;i++)
        {
            int b=0;    //判断是否需要进位
            for(int j=0;j<=k;j++)
            {
                a[j]=a[j]*i+b;
                b=a[j]/10000;
                a[j]%=10000;
            }
            if(b>0)
            {
                k++;
                a[k]=b;
            }
        }
        cout<<a[k];
        for(int i=k-1;i>=0;i--)
            printf("%04d",a[i]);
        cout<<endl;
    }
    return 0;
}

D题:也是签到题。同样需要注意注意输入的写法。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#define ll long long
#define inf 100000010
#define maxn 100010
using namespace std;
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        if(n==0)
            break;
        double a[110];
        int b=0,c=0,d=0;
        for(int i=0;i<n;i++)
        {
            scanf("%lf",&a[i]);
            if(a[i]<0)
                b++;
            if(a[i]==0)
                c++;
            if(a[i]>0)
                d++;
        }
        cout<<b<<" "<<c<<" "<<d<<endl;
    }
    return 0;
}
E题:简单题。只需要找到最大的字符,记录下来,然后for循环,在最大的字符后边输出(max)即可。
#include<stdio.h>
#include<string.h>
int main()
{
    int i,len,max;
    char str[110];
    while(scanf("%s",str)!=EOF)
    {
        len=strlen(str);
        max=str[0];
        for(i=1;i<len;i++)
            if(str[i]>max)
                max=str[i];
        for(i=0;i<len;i++)
        {   
            printf("%c",str[i]);
            if(str[i]==max)
                printf("(max)");
        }
        printf("\n");
    }
    return 0;
}

F题:简单题。只需要按题意将时间转换一下,然后注意输出格式就行了。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#define inf 100000010
#define maxn 100010
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        char a[100];
        cin>>a;
        int year,month,day,hour,minute,second;
        year=(a[0]-48)*1000+(a[1]-48)*100+(a[2]-48)*10+a[3]-48;
        month=(a[5]-48)*10+a[6]-48;
        day=(a[8]-48)*10+a[9]-48;
        hour=(a[11]-48)*10+a[12]-48;
        minute=(a[14]-48)*10+a[15]-48;
        second=(a[17]-48)*10+a[18]-48;
        int h=hour;
        if(hour==0||hour==12)
            hour=12;
        else
            hour%=12;
        printf("%02d/%02d/%04d-%02d:%02d:%02d",month,day,year,hour,minute,second);
        if(h>=0&&h<12)
            cout<<"am"<<endl;
        else
            cout<<"pm"<<endl;
    }
    return 0;
}

G题:本来是个简单题,但是因为输入的格式有很多(主要是空格的位置很皮),要分很多种情况写,这就使这道题变得很复杂,我个人也很烦做这种题难过。你现在看我代码很短,但最开始做的时候,交上就WA了,debug的时候加了很多注释,试了很多种情况.......这道题我的代码写的很乱,这种题最好自己写,最好别看别人的代码,因为看着真的很乱。

如果下边的5组数据都过了,这题基本就过了。

复制双引号里的内容输入。

1:"                 "

    0

2:"     asdf as a"

    3

3:"    asdf    asdf   ds"

    2

4:"asdf   asdf    "

    1

5:直接输入回车

    0

其实还有一个思路:输入数组a,然后对数组a进行一个初始化。把它左边“一连串的”空格赋成'a'(可以是任何字母),再把它右边“一连串的”空格赋成'a'(可以是任何字母),这样就相当于把左右两端的空格给抹去了,对于中间的空格,至于要判断一下a[i]和a[i-1]是否都是空格,如果是的话,ans不加加。

这个题......评测数据有问题,有的同学,代码是错的(上边的第三组测试样例过不了,还有“ a a b",这组样例也过不了),但仍然ac了,还是要注意一下,以后可能就没这么幸运了偷笑。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#define inf 100000010
#define maxn 100010
using namespace std;
char a[10000010];
char b[100000][100];
int main()
{
    while(gets(a))
    {
        int len=strlen(a);
        if(strlen(a)==0)
            {cout<<0<<endl;continue;}
        int flaggg=0;
        for(int i=0;i<len;i++)
        {
            if(a[i]!=' ')
                flaggg++;
        }
        if(!flaggg)
            {cout<<0<<endl;continue;}
        if(strcmp(a,"#")==0)
            break;
        memset(b,0,sizeof b);
        len=strlen(a);
        int j=0;
        int k=0;
        int flag=0;
        for(int i=0;i<len;i++)
        {
            if(a[i]!=' ')
                {b[j][k]=a[i];k++;}
            else
            {
                if(i-1>=0&&a[i-1]!=' ')
                    {j++;k=0;}
            }
        }
        flaggg=0;
        for(int i=0;i<strlen(b[j]);i++)
        {
            if(b[j][i]!=' ')
                {flaggg++;break;}
        }
        if(!flaggg)
            j--;
        int ans=0;
        for(int i=0;i<=j;i++)
        {
            int flagg=0;
            for(int k=0;k<i;k++)
            {
                if(strcmp(b[i],b[k])!=0)
                    continue;
                else
                    {flagg++;break;}
            }
            if(!flagg)
                ans++;
        }
        cout<<ans<<endl;
    }
    return 0;
}

H题:这题是个博弈题(八什博弈)。

这里不讲,想看下边的链接,四种博弈的讲解,感觉讲的很不错。

https://blog.youkuaiyun.com/ac_gibson/article/details/41624623

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#define inf 100000010
#define maxn 100010
using namespace std;
int main()
{
    int n;
    cin>>n;
    while(n--)
    {
        int n,m;
        cin>>n>>m;
        if(n%(m+1)==0)
            cout<<"Rabbit"<<endl;
        else
            cout<<"Grass"<<endl;
    }
    return 0;
}

I题:较难,不过对于学过动态规划的同学来说,这道题真的非常简单,可以说是最基础的动态规划。

这题只需要一层一层往上推即可。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#define inf 100000010
#define maxn 100010
using namespace std;
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int k,a[110][110];
        cin>>k;
        for(int i=1;i<=k;i++)
            for(int j=1;j<=i;j++)
               cin>>a[i][j];
        for(int i=k-1;i>=1;i--)
            for(int j=1;j<=i;j++)
                a[i][j]+=max(a[i+1][j],a[i+1][j+1]);
        cout<<a[1][1]<<endl;
    }
    return 0;
}

J题:找规律题。写出来前几项,发现规律a[n]=a[n-1]+a[n-1](n>=4)。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#define inf 100000010
#define maxn 100010
using namespace std;
using namespace std;
int main()
{
    int n;
    cin>>n;
    int a[50];
    a[1]=0;
    a[2]=1;
    a[3]=2;
    for(int i=4;i<50;i++)
        a[i]=a[i-1]+a[i-2];
    while(n--)
    {
        int m;
        cin>>m;
        cout<<a[m]<<endl;
    }
    return 0;
}











【AI方案集】AI与人机协作相结合的智能法律咨询系统.docx AI技术方案以算力、算法、数据三角协同为核心,通过搭建标准化的数据预处理、模型训练与边缘云端协同部署流程,将计算机视觉、自然语言处理、机器学习等核心能力深度融入业务场景,既实现自动化流程降本提效,又通过精准的模式识别与预测分析为管理层提供数据驱动的决策支撑,最终完成从通用AI技术到行业定制化场景的适配落地,为企业数字化转型提供可落地的技术路径。 立即下载

相关推荐

58-基于51单片机的多自由度机械手控制系统设计(设计+说明+原理++全套资料).rar

项目58-基于51单片机的多自由度机械手控制系统设计 资料包括Proteus仿真+Keil程序+Altium Designer原理图+软件安装包+参考设计说明书+答辩PPT+设计流程图,保证资料完整性! 功能: (1)本系统以STC89C52单片机为核心控制器,统筹各关节运动数据运算,保障多自由度机械手动作精准稳定运行。 (2)采用电位器角度传感模块采集关节位置信号,实时反馈各机械臂关节当前转角,为动作闭环控制提供数据支撑。 (3)使用LCD1602液晶屏实时显示各关节角度与运行模式,界面清晰直观,同步展示机械手当前工作状态。 (4)配备SG90舵机阵列作为核心执行装置,精准驱动多自由度关节转动,完成抓取、搬运等预设操作动作。 (5)内置独立按键支持自定义动作路径与点位存储,参数掉电不丢失,适配不同场景下的机械手调试需求。

三电平维也纳VIENNA双闭环控制整流器仿真(Simulink仿真实现)

内容概要:本文档系统介绍了“三电平维也纳VIENNA双闭环控制整流器”的Simulink仿真资源,重点涵盖电压电流双闭环控制、中点电位平衡控制及SVPWM调制等核心技术,服务于高精度电力电子系统的建模与优化。资源包不仅包含三相维也纳整流器、双有源桥DAB变换器、LLC谐振变换器等多种典型拓扑的仿真模型,还整合了Mathcad计算书、参考文献、MATLAB代码及设计报告等配套材料,突出科研复现与工程设计双重价值。特别针对控制策略优化、软开关技术实现、最小应力控制等前沿方向提供顶级EI期刊级别的复现案例,强化理论深度与实践指导意义。; 适合人群:面向具备电力电子、自动控制或电气工程等相关专业背景的研究生、科研人员及从事新能源、电力变换系统开发的工程技术人员,尤其适合正在进行高性能整流器与DC-DC变换器研究的专业人士。; 使用场景及目标:①支持高校与科研机构在三电平整流器、功率因数校正(PFC)、DC-DC变换器等领域开展控制系统建模与算法验证;②助力高质量学术论文复现(如EI/SCI期刊)、硕士/博士课题研究、毕业设计及企业级项目开发;③深入掌握SVPWM调制、双闭环动态调节、中点电位平衡控制等关键电力电子控制技术的实现机制与参数整定方法。; 阅读建议:建议结合提供的完整资源目录循序渐进地学习,优先研读控制框图与数学建模部分,理解控制逻辑与参数设计原理后,再通过Simulink平台进行仿真实验与参数调试,注重理论推导与仿真结果的对比分析,全面提升科研创新能力与工程实践能力。

picture again

picture again

jp-host-release.apk

jp-host-release.apk

计算机二级通关宝典1计算机二级通关宝典

计算机二级通关宝典1计算机二级通关宝典

AI聚合api网关系统源码+部署教程

AI聚合api网关系统源码+部署教程

储能双向Buck-Boost+模型预测电流控制+电压下垂控制仿真【附参考文献】(Simulink仿真实现)

内容概要:本文详细介绍了基于Simulink平台构建的储能双向Buck-Boost变换器仿真模型,重点实现了模型预测电流控制(MPC)与电压下垂控制相结合的先进控制策略。该系统通过精确预测电感电流与动态调节母线电压,有效提升了储能系统在充放电切换过程中的动态响应速度、运行稳定性与抗扰动能力。模型充分考虑了实际应用场景中的非理想因素,结合参考文献进行了算法优化与参数设计,增强了方案的技术可行性与工程实用价值,适用于微电网、分布式能源系统及多储能单元并联运行的能量协调管理。; 适合人群:电气工程、自动化、新能源技术及相关领域的科研人员、研究生以及从事电力电子变换器与智能电网控制系统研发的工程师。; 使用场景及目标:①深入研究双向DC-DC变换器在储能系统中的高性能控制方法;②掌握模型预测控制与下垂控制的协同设计原理及其在复杂工况下的动态调节机制;③为微电网能量管理、多源协同控制、电压频率支撑等关键技术提供可靠的仿真验证平台。; 阅读建议:建议结合提供的Simulink模型与参考文献进行系统学习,重点关注控制器结构设计、预测模型建立及控制参数整定过程,可通过调整负载突变、设定不同工作模式等方式开展仿真实验,深入理解控制策略的鲁棒性与适应性表现。

MobaXterm终端工具个人学习版安装包及常用配置备份

资源包含 MobaXterm 个人版的安装包以及日常运维常用的基础配置备份文件。适用于网络工程师及运维人员用于日常的服务器管理、SSH 连接及串口调试。 压缩包内附带了个人整理的软件使用技巧与配置说明(仅供个人学习参考)。请各位同行下载后注意,技术工具请尽量支持官方正版,本资源仅供个人测试与交流使用,切勿用于商业环境。

【用于无人机控制的深度强化学习】使用深度确定性策略梯度通过连续状态空间中的过渡来控制倾转旋翼无人机(Matlab代码实现)

内容概要:本文围绕Plecs全桥LLC谐振变换器的仿真模型展开,重点介绍了基于Plecs或Simulink平台构建的全桥LLC谐振变换器的建模方法与仿真分析过程。内容涵盖LLC谐振变换器的工作原理、关键参数设计、PFM(脉冲频率调制)控制策略的实现,以及谐振腔的精确建模与仿真验证。通过该仿真模型,可深入分析变换器在不同负载条件下的效率表现、软开关实现情况、电压增益特性及动态响应性能,适用于高频高效电源系统的设计与优化。文档还配套提供了完整的仿真模型、设计报告与计算书等参考资料,有助于读者系统掌握LLC变换器的设计流程与工程应用要点。; 适合人群:具备电力电子与电源变换基础知识,从事高频开关电源、DC-DC变换器设计等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于高校科研中LLC谐振变换器的建模与先进控制策略研究;②指导企业研发人员完成高效率电源产品的仿真验证与优化设计;③作为电力电子技术课程的教学案例,帮助学生理解谐振变换器的动态特性、软开关机理与系统级仿真方法。; 阅读建议:建议读者结合所提供的仿真模型与设计文档,逐步搭建并调试全桥LLC变换器系统,重点关注谐振参数的匹配原则、PFM控制逻辑的实现细节以及软开关的实现条件,并通过对比不同工况下的仿真结果,深入分析控制策略对系统效率与动态性能的影响,以实现理论学习与工程实践的深度融合。

机械臂的「抽风」自救指南:从万向节死锁到毫米级丝滑抓取

机械臂的「抽风」自救指南:从万向节死锁到毫米级丝滑抓取

科技中介服务机构如何借助平台提升技术撮合服务的专业性与响应速度?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

ICD10达梦sql语句

ICD10达梦sql语句

产业园区如何利用AI技术提升科技成果转化服务的响应速度与转化成功率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

三相充电桩维也纳PFC+三电平LLC谐振变换器三电平PSIM仿真设计(Simulink仿真实现)

内容概要:本文档聚焦于电力电子与电力系统领域的仿真设计,重点围绕三相充电桩中维也纳PFC(Vienna Power Factor Correction)整流器与三电平LLC谐振变换器的联合系统展开,提供基于PSIM和Simulink平台的完整仿真设计方案。内容涵盖9kW三相三开关维也纳PFC整流器的Mathcad计算书、双闭环控制策略、中点电压均衡控制、SVPWM调制技术及电流过零畸变消除方法等关键技术环节,并配套详细的仿真模型与设计报告。此外,文档整合了丰富的电力电子拓扑资源,包括图腾柱PFC、交错并联PFC、双有源桥DAB、CLLC谐振变换器、双向Buck-Boost等典型电路结构,覆盖Matlab/Simulink、Plecs、PSIM等多种仿真环境,形成从理论计算、建模、控制算法设计到性能优化的一体化技术体系。; 适合人群:面向具备电力电子、电气工程、自动化等相关专业背景,熟悉Matlab/Simulink/PSIM等仿真工具,从事新能源汽车充电技术、高效率AC-DC/DC-DC变换器设计、电力系统能量管理等方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①支持三相高功率因数校正与高效DC-DC变换系统的科研仿真与教学实践;②用于PI控制、前馈控制、SVPWM、软开关技术、中点电位平衡、双闭环动态响应等核心控制算法的研究与验证;③服务于毕业设计、科研课题、学术论文复现及实际工程项目开发,提升系统级建模与优化能力。; 阅读建议:建议结合Mathcad计算书与仿真模型同步学习,优先掌握维也纳PFC与LLC的基本工作原理与参数设计流程,再深入理解双闭环控制系统架构与关键控制策略,推荐先运行Simulink模型观察动态波形响应,并参考附带文献深化理论认知与工程实现能力。

11232131231231是的

11232131231231是的

基于双向Buck-Boost电路的锂电池储能充电+放电控制Simulink仿真

内容概要:本文档详细介绍了一种基于双向Buck-Boost电路的锂电池储能系统充放电控制的Simulink仿真模型,重点实现了充电与放电过程中双向能量流动的精确控制。通过Simulink平台构建完整的电路拓扑与控制系统,采用电压、电流双闭环控制策略,有效提升了系统的稳定性与能量转换效率。文档不仅提供了详细的仿真建模方法,还结合参考文献增强了理论支撑,具有较高的科研与工程应用价值。此外,文中列举了大量电力电子领域的相关仿真资源,涵盖LLC谐振变换器、PFC电路、PWM整流器、状态估计等多种技术方向,形成了一个综合性强、覆盖面广的技术资料库,便于研究人员拓展学习和复用设计。; 适合人群:电气工程、自动化、新能源等相关专业的研究生、科研人员及从事电力电子系统设计的工程师。; 使用场景及目标:①研究锂电池储能系统的双向能量管理与高效充放电控制策略;②掌握基于Simulink的电力电子系统建模与闭环控制器设计方法;③为科研项目、毕业设计或工程开发提供可复现的仿真案例与技术支持。; 阅读建议:建议结合文档中提供的参考文献与外部资源链接,系统性地学习Buck-Boost电路的工作原理与控制理论,优先理解基础拓扑运行机制后再深入双闭环控制策略的设计与参数整定,同时可参照同系列其他仿真案例进行对比分析与拓展实践。

政府科技管理者如何提升科技成果转化项目的政策匹配效率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

【Trans论文复现】基于Agent的电力市场深度决策梯度(深度强化学习)算法建模研究(Python代码实现)

内容概要:本文详细介绍了“Plecs全桥LLC谐振变换器仿真模型”这一技术资源,聚焦于利用PLECS仿真工具对隔离型全桥LLC谐振变换器进行建模、参数设计与性能分析。该资源系统阐述了LLC谐振变换器的工作原理,涵盖谐振参数设计、软开关实现机制、效率优化等关键技术环节,并配套提供了完整的仿真模型、设计报告与计算书,便于用户深入理解其在高效率、软开关功率转换中的优势与应用。研究内容不仅支持理论学习,还可用于控制策略的验证与优化设计,具有较强的工程实践价值。; 适合人群:具备电力电子技术基础知识,从事开关电源、高频功率变换器研发及相关领域研究的工程技术人员与高校研究生。; 使用场景及目标:①用于全桥LLC谐振变换器的教学演示与原理学习;②支持科研人员开展高效DC-DC变换器的建模、仿真与优化设计;③为掌握PLECS在电力电子系统仿真中的高级应用提供详实案例。; 阅读建议:建议结合PLECS仿真软件进行实际操作,通过运行仿真模型并对照设计文档,深入理解电路各模块功能、参数设置依据及软开关实现条件,重点关注谐振腔参数对系统效率与动态响应的影响,以全面提升对LLC变换器工作特性的认知水平与工程设计能力。

上一篇: 最小生成树Kruskal算法
下一篇: 最快最好用的——spfa算法
flyzer
博客等级 码龄9年 27粉丝 146原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值