文章

5

粉丝

174

获赞

2

访问

39.7k

头像
c++ 题解
P1020 贵州大学机试题
发布于2021年3月9日 16:56
阅读数 8.0k

整体思路:

              先把所有因子求出来,放入一个数组a中

              然后遍历数组a ,begin和len分别表示此时这个正在遍历的连续子串的起始位置和长度   将结果打包 放入map中

              每一对 begin和len  都放入map中

             最后遍历map找最大的len    从而得到begin

             再遍历a数组输出即可

#include<bits/stdc++.h>
#include<map>
int yinzi(int n,int arr[]);
using namespace std;
int main()
{
    int n;
    scanf("%d",&n);
    int a[5000];
    int count=yinzi(n,a);

    map<int,int> m;
    int i,j=0;
    while(j<count)
    {
        i=j;
        int begin=j;
        int len=1;
        while(a[i]==a[i+1]-1)
        {
            len++;
            i++;
        }
        m[begin]=len;

        j=i+1;
    }

    int max_begin=0;
    int max_len=1;
    for(map<int,int>::iterator it=m.begin()...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发