• 4.12 | 学习笔记


    1.最小向量点积

    #include<bits/stdc++.h>
    using namespace std;
    int n,t,tmp;
    int a[1001],b[1001];
    
    int main()
    {
      cin>>t;
      for(int i=0;i<t;i++)
      {
        cin>>n;tmp=0;
        for(int j=0;j<n;j++)cin>>a[j];
        for(int j=0;j<n;j++)cin>>b[j];
        sort(a,a+n),sort(b,b+n);
        for(int j=0;j<n;j++)
          tmp+=a[j]*b[n-j-1];
        cout<<"case #"<<i<<":
    "<<tmp<<endl;
      }
      return 0;
    }
    

    2.连续正整数问题

    个人想法是判读“中间数”,连续正整数之和有两种情况,奇数个数的和(有一个“中间数”),或者偶数个数的和(两个连续“中间数”,和必为奇数);

    若是奇数个数的和,比如21=6+7+8,也就是中间数为7,这时候需要判断左边界是否大于零;

    若是偶数个数的和,比如30=6+7+8+9,中间数为7和8,同样判断左边界是否大于零;

    个人代码:

    #include<bits/stdc++.h>
    using namespace std;
    int n,t,tmp;
    
    int cnt(int n)
    {
      int cnt=0;
      for(int i=2;i<n;i++)
        if(n%i==0)
        {
          tmp=n/i;
          if(tmp%2)
            if((i-((tmp-1)/2))>=1)cnt++;
          if(i%2)
            if(((i+1)/2-tmp)>=1)cnt++;
        }
      if(n%2)cnt++;
      return cnt;
    }
    
    int main()
    {
      cin>>t;
      for(int i=0;i<t;i++)
      {
        cin>>n;
        cout<<"case #"<<i<<":
    "<<cnt(n)<<endl;
      }
      return 0;
    }
    

      

    但是由于思路比较混乱,自己做了一个小时,最终结果也不是很理想,参考学长代码如下(转载自https://www.cnblogs.com/flower-233/p/9114258.html):

    #include<bits/stdc++.h>
    using namespace std;
    int n,cnt;
    int a[500];
    int i,j,k;
    int main()
    {
        cin>>n;
        for(i=0;i<n;++i)cin>>a[i];
        for(i=0;i<n;++i)for(j=i+1;j<n;++j)for(k=j+1;k<n;++k){
            if(i==j||i==k||j==k)continue;
            if(__gcd(a[i],a[j])==1&&__gcd(a[i],a[k])==1
                &&__gcd(a[j],a[k])==1)++cnt;
            if(__gcd(a[i],a[j])!=1&&__gcd(a[i],a[k])!=1
                &&__gcd(a[j],a[k])!=1)++cnt;
        }
        cout<<cnt<<endl;
        return 0;
    }
    

      

  • 相关阅读:
    java工程文件路径的问题
    to_char
    tnsname.ora
    Linux(Centos)快速搭建SVN
    /etc/profile不生效问题
    不同servlet版本的web.xml的头部信息
    The serializable class XXX does not declare a static final serialVersionUID field of type long的警告
    面试:第六章:面试题收集
    面试:第一章:java基础各种区别
    面试:第二章:各种框架和中间件以及缓存数据库
  • 原文地址:https://www.cnblogs.com/MissCold/p/10697477.html
Copyright © 2020-2023  润新知