纷菲幻剑录 之 十年一剑

MATLAB项目,模拟曲柄滑块机构的运动学和动力学.zip 1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 立即下载

题目又臭又长.直接给链接了
HDU2248

题目大意:

第一个问题Swords:输入一个整数num,数字全部由1组成,保证数字长度小于一百,判断num的位数是不是素数;
第二个问题Stones:有n个数组成的序列(3<=n<=20000),取其中连续的h个数,使得这h个数的和对n取余为0,要求h尽量小,坐标尽量小;
第三个问题Search:输入两个数x,k,求x的第k小素数,没有输出no。例如x=48,k=6. 48分解的{2,2,2,2,3} 所以1-4大素因子都是2,第5大是3,比5大则没有。质因数x即可;(1<=x<6400000 && 0<k<=2^31-1);
第四个问题See:输入一个数n(1<=n<=16000),求2^n。快速幂+大数乘法。

思路:

题目一:好解决,素数打表100以内的素数就行
题目二:也好解决,最容易想到的就是两层for循环,依次扫描知道找到最小的h,当然还有一种方法可以在0(n)时间复杂度内解决
题目三:对x进行素因子分解就行
题目四: 自己写的大数模板+快速幂一直TLE.于是从网上找了套大数重载运算的模板套上去,AC,yeah!

Code

#include <iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#define M 20005
#define Max 6400005
const int inf=0x7FFFFFFF;
#define MAXN 9999
#define MAXSIZE 10
#define DLEN 4
using namespace std;
 bool isPrime[Max];
 int  prime[Max];
 int dis[2]={4,2},total=0,pos=0;
char str[5];
int k;
void makeprime()
{
    int i,j;
    prime[total++]=2;
    prime[total++]=3;
    for(i=5;i<=Max;i+=dis[pos^=1])
    {
        if(!isPrime[i]) prime[total++]=i;
        for(j=0;j<total&&i*prime[j]<=Max;++j)
        {
             isPrime[i*prime[j]]=true;
             if(i%prime[j]==0)
                break;
        }
    }
}
class BigNum
{
private:
    int a[100000];    //可以控制大数的位数
    int len;       //大数长度
    public:
    BigNum(){ len = 1;memset(a,0,sizeof(a)); }   //构造函数
    BigNum(const int);       //将一个int类型的变量转化为大数
    BigNum operator*(const BigNum &) const;   //重载乘法运算符,两个大数之间的相乘运算
    BigNum operator^(const int  &) const;    //大数的n次方运算
    void print();       //输出大数
};
BigNum::BigNum(const int b)     //将一个int类型的变量转化为大数
{
    int c,d = b;
    len = 0;
    memset(a,0,sizeof(a));
    while(d > MAXN)
    {
        c = d - (d / (MAXN + 1)) * (MAXN + 1);
        d = d / (MAXN + 1);
        a[len++] = c;
    }
    a[len++] = d;
}
BigNum BigNum::operator*(const BigNum & T) const   //两个大数之间的相乘运算
{
    BigNum ret;
    int i,j,up;
    int temp,temp1;
    for(i = 0 ; i < len ; i++)
    {
        up = 0;
        for(j = 0 ; j < T.len ; j++)
        {
            temp = a[i] * T.a[j] + ret.a[i + j] + up;
            if(temp > MAXN)
            {
                temp1 = temp - temp / (MAXN + 1) * (MAXN + 1);
                up = temp / (MAXN + 1);
                ret.a[i + j] = temp1;
            }
            else
            {
                up = 0;
                ret.a[i + j] = temp;
            }
        }
        if(up != 0)
            ret.a[i + j] = up;
    }
    ret.len = i + j;
    while(ret.a[ret.len - 1] == 0 && ret.len > 1)
        ret.len--;
    return ret;
}
BigNum BigNum::operator^(const int & n) const    //大数的n次方运算
{
    BigNum t,ret(1);
    int i;
    if(n==0)
        return 1;
    if(n==1)
        return *this;
    int m=n;
    while(m>1)
    {
        t=*this;
        for( i=1;i<<1<=m;i<<=1)
        {
            t=t*t;
        }
        m-=i;
        ret=ret*t;
        if(m==1)
            ret=ret*(*this);
    }
    return ret;
}
void BigNum::print()    //输出大数
{
    int i;
    cout << a[len - 1];
    for(i = len - 2 ; i >= 0 ; i--)
    {
        cout.width(DLEN);
        cout.fill('0');
        cout << a[i];
    }
    cout << endl;
}
int main()
{
    makeprime();
    while(scanf("%s",str)!=EOF)
    {
        getchar();
        if(strcmp(str,"Swords")==0)
        {
            char s[105];
            memset(s,0,sizeof(s));
            gets(s);
            for(int i=0;;++i)
            {
                if(prime[i]==strlen(s))
                {
                    cout<<"Yes."<<endl;
                    break;
                }
                else if((prime[i]>strlen(s)))
                {
                    cout<<"No."<<endl;
                    break;
                }

            }
        }
       else if(strcmp(str,"Stones")==0)     //(3 <= n <= 20000)
        {
            int n,i,j;
            int num[M],f[M],len=inf,p=0,begin=0;
            memset(f,-1,sizeof(f));
            f[0]=0;
            scanf("%d",&n);
            for(i=1;i<=n;++i)
            {
                 scanf("%d",&num[i]);
                 p=(p+num[i])%n;
                 if(f[p]!=-1)
                 {
                     if(i-f[p]<len)
                     {
                         len=i-f[p];
                         begin=f[p]+1;
                     }
                 }
                 f[p]=i;
            }
            if(len==inf){ printf("可怜的亦纷菲!\n");continue;}
             for(i=begin;i<begin+len;++i)
             {
                 if(i!=begin)
                    printf(" ");
                 printf("%d",i);
             }
             printf("\n");
          continue;
        }
        else if(strcmp(str,"Search")==0) //(1<=x<6400000 && 0<k<=2^31-1);
        {
            int num[100];
            memset(num,0,sizeof(num));
            int x,i=0,ant=0;
            scanf("%d%d",&x,&k);
            bool flag=false;
           while(x>1)
           {
            while(x%prime[i]==0)
            {
                x/=prime[i];
                k--;
                if(k==0)
                {
                    flag=true;
                    printf("%d\n",prime[i]);
                    break;
                }
            }
            if(flag)
                break;
            i++;
            }
            if(!flag)
                cout<<"no"<<endl;
           }
        else
        {
            int n;
            scanf("%d",&n);
            BigNum ans(2);
            ans=ans^n;
            ans.print();
        }
    }
    //cout << "Hello world!" << endl;
    return 0;
}
基于MATLAB的Abel反演和Fowler–Milne诊断研究对HyperFill TWGMAW-P进行了电波形分析。.zip 1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 立即下载

相关推荐

增强型PID-自适应-前馈-神经网络控制研究(Matlab代码实现)

内容概要:本文系统研究了“增强型PID-自适应-前馈-神经网络控制”复合控制策略,结合Matlab代码与Simulink仿真模型,深入探讨了传统PID控制与智能控制算法的深度融合方法。该策略通过引入自适应机制和前馈补偿,结合BP神经网络进行非线性系统建模与参数优化,并融合扩展卡尔曼滤波(EKF)等状态估计技术,提升控制系统在复杂动态环境下的响应速度、鲁棒性和控制精度。研究涵盖双闭环控制架构设计、神经网络训练流程、EKF状态融合等关键技术环节,适用于电机控制、电力电子变换器、无人机、微电网等高阶非线性系统的建模与仿真。配套资源丰富,包含多个可复现的Simulink模型、Matlab代码及参考文献,尤其支持高水平EI期刊成果的复现与验证。; 适合人群:具备自动控制理论基础和Matlab/Simulink仿真能力,从事控制工程、电气自动化、电力电子或智能系统研发的研究生、科研人员及工作1-3年以上的工程技术人员; 使用场景及目标:①深入研究先进PID控制策略在非线性系统中的优化应用;②实现神经网络与经典控制算法的协同设计与联合仿真;③开展状态估计、参数辨识与智能控制策略的实验验证;④复现并拓展高水平学术论文中的控制方法,支撑科研创新与项目开发; 阅读建议:建议结合提供的Matlab代码与Simulink仿真模型进行实践操作,重点剖析控制结构设计逻辑、神经网络训练过程及EKF状态估计的实现细节,按照文档说明逐步调试与优化,以全面掌握复合控制系统的建模、仿真与性能评估方法。

hdu2248

好长的题目啊。。。。

Stephen 1000

【带状电容器计算用于电容式触摸传感器应用】半数值模型的电容式触摸传感器集成于金属基材涂层中研究(Matlab代码实现)

内容概要:本文针对集成于金属基材涂层中的电容式触摸传感器,提出了一种用于带状电容器电容计算的半数值模型,并基于Matlab平台实现了仿真分析。该模型结合解析方法与数值计算,采用有限差分法求解二维泊松方程,精确模拟传感器在金属背景下的电场分布,有效克服了金属基底对电容信号的屏蔽与干扰问题,显著提升了触摸检测的灵敏度与稳定性。研究系统探讨了传感器的几何结构、介电层材料特性、电极尺寸及间距等关键参数对电容响应的影响机制,建立了完整的建模流程与仿真框架,为高性能、高抗干扰能力的电容式触控器件在智能家居、工业控制面板及复杂电磁环境下的实际应用提供了理论支撑与技术路径。; 适合人群:具备电磁场与电磁波、数值计算方法基础,熟悉Matlab编程,从事传感器设计、人机交互技术开发、电子器件仿真及相关领域研究的科研人员、工程师及研究生。; 使用场景及目标:①面向金属表面集成的电容式触摸传感器进行高精度建模与性能优化;②为智能家电、工业设备等人机接口的触控模块提供抗干扰设计与仿真验证方案;③支撑相关科研课题的理论分析、算法开发与原型系统验证。; 阅读建议:学习者应结合提供的Matlab代码深入理解半数值建模的具体实现过程,重点掌握有限差分法在电场求解中的应用技巧,并可通过调整传感器结构参数与材料属性开展对比仿真,进而探究各因素对灵敏度的影响规律,全面提升对电容式传感机制的理解与工程化设计能力。

如何对身份证号码进行校验?

每个人的身份证号码都都是一串有特别意义的数字,如代表出生地,出生日,性别等,那么对于行政上的一些工作,核对身份证是不是输入有误,身份证是否造假,也是可以通过身份证上的号码数字进行核对检查。 先看一下原理,二代身份证共18位,那么最后一位是由前面的18位通算术来计算出来的,如果某一位出错,那么校验结果就会不一致,引此来判断这个身份证号是不是正确合法。 再看一下算法,先将身份证前面的17位数分别乘以不...

MagicScaring的博客 4501

【SAP报错】BK128&K5112

在ECC中使用CO1F进行Progressive confirmation时,依次遇到了如下的报错。

weixin_45228526的博客 781

GPT Researcher 的win docker安装攻略

github网址是:https://github.com/assafelovic/gpt-researcher/blob/master/README-zh_CN.md。使用 Docker 运行 AI-Researcher 项目的。因为docker安装方法不够清晰,因此写一个使用方法。打开设置——docker engine ,增加代码。如有其他问题,可提供错误截图或日志进一步排查!

weixin_43818488的博客 1122

手机的九宫格图形解锁算法(判断是否合法)

从HDU 5641有感。 链接如下HDU 5641 代码如下: #include #include #include #define MS(x,y) memset(x,y,sizeof(x)) using namespace std; int num[10],k; bool chose[10][10]; bool chos[10]; void init() { MS(chose,

MagicScaring的博客 2567

飞牛NAS挂载115网盘避坑指南:为什么你的大文件总是传输失败?

本文深入解析了在飞牛NAS上通过AList挂载115网盘时,大文件传输失败的深层原因,包括风控机制、网络协议及兼容性问题。文章提供了从基础排查到高阶优化的系统性解决方案,并建议采用Kopia分片备份等终极策略,以实现稳定可靠的云端数据流转。

weixin_29306011的博客 1681

骑士周游问题(马踏棋盘问题)DFS

马踏棋盘算法(骑士周游问题) 定义:将马随机放在国际象棋的8×8棋盘Board[0~7]的某个方格中,马按走棋规则进行移动。要求每个方格只进入一次,走遍棋盘上全部64个方格。 如图: 用一个二维数组来存放棋盘,假设马儿的坐标为(x,y),那么可供选择的下一个位置共有8种可能。我们所要做的,就是从0号位置开始,依次判断新的马儿位置是否可用,不可用的话(即马儿已经走过该位置),则遍历下一个可能

MagicScaring的博客 2526

51单片机也能玩转GC9A01彩屏?超详细移植指南与性能优化技巧

本文详细介绍了如何在51单片机上高效驱动GC9A01彩屏,包括硬件连接优化、SPI模拟驱动、内存管理策略及高级刷新技术。通过分段缓冲、颜色压缩和差异化刷新等技巧,显著提升显示性能,使51单片机也能流畅运行240x240分辨率的彩色TFT屏幕。

hp777的博客 189

手把手教你用Github提交CVE漏洞(附完整截图流程)

本文提供了在GitHub平台提交CVE漏洞的完整实战指南。从前期准备、目标搜寻与漏洞验证,到撰写规范的GitHub Issue进行披露,最后通过官方渠道完成CVE提交,手把手教你如何将安全研究成果转化为获得国际认可的CVE编号。

weixin_28309571的博客 319

gdb 调试问题Error creating process XXXXXXXX(error 5).

描述: 在调试一道题的时候,可能是不小心退出了,然后之后调试就一直报这个错误,重启codeblocks和电脑都没用. 然后就是问度娘,都没解决我的问题.没办法只好FQ找谷哥了。 找到几篇国外的网站关于我这个问题的解决办法.心累,英语学得不好,看的懵懵懂懂. 链接在这里:传送门 ta的情况跟我的一样.也是debug不了.后来ta把出现问题的那道题全删了 然后莫名其妙就好了…. 我怀着将信

MagicScaring的博客 2448

Spring Boot 实现多图片上传并回显,涨姿势了~

上传 Controller的代码非常简单,由于用了SpringMVC框架,所以直接用MultipartFile来接即可。由于是多图片上传所以用数组来接。此处应该注意参数名应该和<input>中的name值相对应: @RequestMapping("/pic") @ResponseBody publicResponseEntity<String>pic(MultipartFile[]pictures)throwsException{ ResponseEnti...

weixin_54556126的博客 893

如何通过两个地点的经纬度算出它们之间的直线距离?

Code如下: 参数含义: lat1:A点的纬度值 lng1:A点的经度值 lat2:B点的纬度值 lng2:B点的经度值 #define _USE_MATH_DEFINES #define EARTH_RADIUS 6378137.0 /* 地球半径 单位:米 */ #include <math.h> double get_great_circle_d...

MagicScaring的博客 2256

历年CSP-J(NOIP普及组)考点分析与分类汇总(纯干货)

noip/csp-j历年真题考点分类

weixin_42358969的博客 1万+

c++2048小游戏编写

最近编写了一个小游戏,叫作2048,用到了面向对象的知识。

一个学生的博客 2371

DP问题之最优加法序列

题目:有一个由1..9组成的数字串.问如果将m个加号插入到这个数字串中.使得所形成的算术表达式的值最小?例如这个数字串为12345,加号数为1时,最小值就是123+45=168;加法数为2时,最小值就是12+34+5=51,加法数为3时,最小值为12+3+4+5=24。 解题思路: 先找到定量。这一题中的定量是什么呢?因为是添入加号,那么添完加号后,表达式的最后一定是个数字串,这就是定量.从这

MagicScaring的博客 1856

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

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

Homework 贪心(排序)

题目描述 临近开学了,大家都忙着收拾行李准备返校,但I_Love_C却不为此担心! 因为他的心思全在暑假作业上:目前为止还未开动(-_-!!还以为他有多冷静呢)。 暑假作业是很多张试卷,我们这些从试卷里爬出来的人都知道,卷子上的题目有选择题、填空题、简答题、证明题等。 而做选择题的好处就在于工作量很少,但又因为选择题题目都普遍很长。 如果有5张试卷,其中4张是选择题,最后一张是填空题,

MagicScaring的博客 1145

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

母函数定义以及习题练习

定义对于序列a0,a1,a2,…构造一函数: 称函数G(x)是序列a0,a1,a2,…的母函数实 例 分 析例1:若有1克、2克、3克、4克的砝码各一 枚,能称出哪几种重量?各有几种可能方案? 如何解决这个问题呢?考虑构造母函数。 如果用x的指数表示称出的重量,则: 1个1克的砝码可以用函数1+x表示, 1个2克的砝码可以用函数1+x2表示, 1个3克的砝码

MagicScaring的博客 1142

ACM题目之排列序数

问题 F: S:排列序数 时间限制: 1 Sec  内存限制: 256 MB 题目描述 如果用a b c d这4个字母组成一个串,有4!=24种,如果把它们排个序,每个串都对应一个序号:   abcd  0   abdc  1   acbd  2   acdb  3   adbc  4   adcb  5   bacd  6

MagicScaring的博客 899

ACM题目之颠倒的价牌

问题 B: 颠倒的价牌 时间限制: 1 Sec  内存限制: 128 MB 题目描述 小李的店里专卖其它店中下架的样品电视机,可称为:样品电视专卖店。 其标价都是4位数字(即千元不等)。 小李为了标价清晰、方便,使用了预制的类似数码管的标价签,只要用颜色笔涂数字就可以了(参见下图)。、 这种价牌有个特点,对一些数字,倒过来看也是合理的数字。如:1 2 5 6 8 9 0

MagicScaring的博客 872

Shuttle Puzzle

题目描述 大小为3的棋盘游戏里有3个白色棋子,3个黑色棋子,和一个有7个格子一线排开的木盒子。3个白棋子被放在一头,3个黑棋子被放在另一头,中间的格子空着。 初始状态: WWW_BBB 目标状态: BBB_WWW 在这个游戏里有两种移动方法是允许的: 1.你可以把一个棋子移到与它相邻的空格; 2.你可以把一个棋子跳过一个(仅一个)与它不同色的棋子到达空格。

MagicScaring的博客 784

替换空格

题目描述:给你一段字符串,把字符串中的每个空格替换成"%20",比如 I love China,则输出"I%20love%20China". 在网络编程中,如果URL参数中含有特殊参数,如空格,'#'等,可能导致服务器无法获得正确的参数值。我们需要将这些特殊符号转换成服务器能识别的字符。转换的规则是在'%'后面跟上ASCII码的两位16进制的表示。比如空格的ASCII码是32,16进制是0x20

MagicScaring的博客 760

Sumsets

HDU 2709 Problem Description Farmer John commanded his cows to search for different sets of numbers that sum to a given number. The cows use only numbers that are an integer power of 2. Here a

MagicScaring的博客 739

Leftmost Digit

HDU1060题意:给你一个数字N,求N^N的最左边数字(1<=N<=1,000,000,000)思路:这题先打表找了下规律,发现并没有HDU1061那样的规律.好吧,只能老老实实想了. 求最左边的数字,我们可以通过n^n/(n^n的位数-1)取得 一个数的位数就是int(log10(n))+1; 而n^n的位数就是int(n*log10(n))+1; 设m=n^n,两边取对数,log10(

MagicScaring的博客 655

康托逆展开式

关于康托展开式的问题我已经在第一篇文章提到了,需要的朋友可以点进去看看。 ACM题目之排列序数 康托逆展开式就是给你一个数组,然后让你求出其全排列第n大的序列. 这里借用百度百科给的大家解释下 例1 {1,2,3,4,5}的全排列,并且已经从小到大排序完毕 (1)找出第96个数 首先用96-1得到95 用95去除4! 得到3余23 有3个数比它小的数是4 所以第一位是4 用23去

MagicScaring的博客 636
上一篇: 康托逆展开式
下一篇: Leftmost Digit
MagicScaring
博客等级 码龄11年 18粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值