埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛(A E F )

原创 2018年04月15日 17:20:32

题目链接 :https://www.nowcoder.com/acm/contest/91#question

A 移动的可以看成从自己旁边移过来的 A B C A—>C 和 A—->B —->C一样

#include<bits/stdc++.h>
using namespace std;
int a[100003];
int b[100003];
int main()
{

    int t;
    cin>>t;
    while(t--)
    {
        int n;
        cin>>n;
        for(int i=1;i<=n;i++)
        cin>>a[i];
        for(int i=1;i<=n;i++)
        {

            cin>>b[i];
            a[i]-=b[i];
        }
        long long ans=a[1];
        long long sum=abs(a[1]);
        for(int i=2;i<=n;i++)
        {

            ans+=a[i];
            sum+=abs(ans);

        }
        cout<<sum<<endl;

    }
    return 0;
}

E 规律题


#include<bits/stdc++.h>
using namespace std;
int main()
{


    int n;
    cin>>n;
    long long a= (1LL<<n);
    cout<<a;
    return 0;
}

F 也是规律题

写成二进制
1
10
100
101
1000
1001
1010
然后会发现 位数为n的二进制会有 F(N)个( F()为斐波那契数) 然后拼n
例如 样例10 (0 1 1 2 3 5 7 12 斐波那契数)
10> 0+1+1+2+3所以 10最高位是第5位 10000 ,而 10000的时候有 0+1+1+2+3+1(10000这一个) 还剩下 2个 再找 发现 2==0+1+1 所以把2位最大的拼上去(10) 那么答案就是 10010 也就是 18

#include<bits/stdc++.h>
using namespace std;
#define ll long long
long long a[70];
int main()
{  // freopen("in","r",stdin);
    a[1]=1;
    a[2]=1;
    for(int i=3;i<59;i++)
    a[i]=a[i-1]+a[i-2];


    for(int i=1;i<59;i++)
    a[i]+=a[i-1];

    int t;
    cin>>t;
    long long k=0;
    while(t--)
    {
        long long n;
        k=0;
        cin>>n;

        while(n>0)
        {
            int i;

            for( i=0;i<=59;i++)
            {
                if(a[i]>n) break;


            }
            if(a[i-1]==n)
            {
                int kk=1;
                while(kk<i)
                {
                    if(kk%2==1)
                    k=k|(1LL<<(i-kk-1));kk++;


                }

                n=0;
            }
            else
            {
                k=k|(1LL<<(i-1));
                n-=a[i-1];
                n--;

            }


        }
        cout<<k<<endl;

    }

    return 0;
}

L找和为K的倍数的最长子序列
子序列不是应该可以不连续吗? 这一点想不通 ,不知道咋过了 估计数据水
lower_bound 用的时候都没有排序…真….一脸懵逼


#include<bits/stdc++.h>
using namespace std;
long long a[100003];
int main()
{  // freopen("in","r",stdin);
    ios::sync_with_stdio(false);
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        a[i]+=a[i-1];
        a[i]%=m;
        if(a[i]==0) a[i]=m;
    }
    int maxx=0;
    for(int i=n;i>=1;i--)
    {


        long long k=m-a[i];
        int o=lower_bound(a,a+n,k)-a;
        if(a[o]==k&&maxx<i-o)
        {

            maxx=i-o;

        }



    }

    cout<<maxx<<endl;


    return 0;
}

正解




#include<bits/stdc++.h>
using namespace std;
long long a[1000003];
long long b[1000003];
int main()
{  // freopen("in","r",stdin);
     int n,m;
     cin>>n>>m;
     long long sum=0;
     long long maxx=0;
     for(int i=1;i<=n;i++){

        int k;
        cin>>k;
        sum=(sum+k)%m;
        maxx=max(maxx,sum);
        a[sum]=i;
        if(!b[sum] ) b[sum]=i;

     }  b[0]=0;
        long long ans=0;
        for(int i=0;i<=maxx;i++)
        {
            if(a[i]!=b[i]) {ans=max(ans,a[i]-b[i]) ;}


        }
        cout<<ans<<endl;


    return 0;
}






版权声明:欢迎复制!!! https://blog.csdn.net/qq_37493070/article/details/79951003

【牛客网】【埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛】B—合约数【莫队做法】

题目链接:B—合约数题意:一棵树,有n个节点,从1编号到n。根节点的编号为p。给出每个节点的val[i]值,定义f(i)为以编号i为根节点的子树中(包括根节点),所有val[j]是合数并且是val[i...
  • gymgym1212
  • gymgym1212
  • 2018-04-15 20:33:28
  • 136

埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛F题 1+2=3?

题目链接:https://www.nowcoder.com/acm/contest/91/F题意:求第N个符合条件X^2X=3X的X。N&amp;lt;=10的12次方。解题思路:我刚开始想到最粗暴的...
  • weixin_36416680
  • weixin_36416680
  • 2018-04-16 11:01:00
  • 58

【牛客网】【埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛】L—K序列【动态规划】

题目链接:L—K序列题解:for一遍数组,temp[i]表示:不包括当前for到的点,序列和为i的最长长度。然后for一遍0-k,对dp[ (j+num[i])%k ]进行更新,dp[j]是包括当前点...
  • gymgym1212
  • gymgym1212
  • 2018-04-15 18:46:39
  • 169

埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 F-1+2=3?

链接:https://www.nowcoder.com/acm/contest/91/F来源:牛客网题目描述 小Y在研究数字的时候,发现了一个神奇的等式方程,他屈指算了一下有很多正整数x满足这个等式...
  • albertluf
  • albertluf
  • 2018-04-15 16:46:44
  • 131

埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 J-小Y写文章(二分+二分图匹配)

链接:https://www.nowcoder.com/acm/contest/91/J来源:牛客网题目描述 小Y写了一篇文章,他对自己的文笔很有自信,尤其是自己总结出了一套计算文章通顺性的公式。 ...
  • albertluf
  • albertluf
  • 2018-04-18 10:27:07
  • 73

K序列--埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛

链接:https://www.nowcoder.com/acm/contest/91/L来源:牛客网K序列时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 131072K,其他语言2621...
  • zitian246
  • zitian246
  • 2018-04-16 16:47:40
  • 45

埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛

B - 合约数 思路: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;n...
  • hnust_Derker
  • hnust_Derker
  • 2018-04-15 19:06:59
  • 123

埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛A题Wasserstein Distance

题目链接:https://www.nowcoder.com/acm/contest/91/A题意:给两组数据,求把A变成B状态需花费的最小体力。思路:s=s+abs(a[i]-b[i]);a[i+1]...
  • weixin_36416680
  • weixin_36416680
  • 2018-04-15 20:11:56
  • 35

第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛(部分题解)

唉,好久没更新博客了,说明我这段时间在学习上都懈怠了Σ( ° △ °|||)︴昨天打了场金马赛,这网络…..我真的是无力吐槽…..前三题都是大水题,就不挂代码了;D-快速幂取模裸题#include u...
  • Murphyc
  • Murphyc
  • 2017-07-10 13:54:47
  • 484

埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 F 1 + 2 = 3?(找规律)

题目: 小Y在研究数字的时候,发现了一个神奇的等式方程,他屈指算了一下有很多正整数x满足这个等式,比如1和2,现在问题来了,他想知道从小到大第N个满足这个等式的正整数,请你用程序帮他计算一下。 (...
  • Tony5t4rk
  • Tony5t4rk
  • 2018-04-16 19:27:38
  • 23
收藏助手
不良信息举报
您举报文章:埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛(A E F )
举报原因:
原因补充:

(最多只允许输入30个字)