2022年携程秋招第五批

2022年携程秋招第五批_第1张图片

 

#include 
using namespace std;

int main() {
     int n,k;
     scanf("%d%d",&n,&k);
     string s;
     if(k*3>n)
     {
        int res=-1;
        printf("%d\n",res);
     }
     else
     {
        for(int i=1;i<=k;i++)
        {
            s.append("you");
        }
        for(int i=3*k;i

2022年携程秋招第五批_第2张图片

 

#include 
using namespace std;
long long n;
int main() {
    
    scanf("%lld",&n);
     long long w;
    if(n%3==0)
    {
       w=n/3-1;
       
         printf("%lld\n",w);
    }
    else
    {
       w=n/3;
       printf("%lld\n",w*2);
    }
    
    // for(int i=1;i<=w;i++)
    // {
    //     printf("%d %d\n",i*3,n-i*3);
    // }
    
    return 0;
    
}
// 64 位输出请用 printf("%lld")

2022年携程秋招第五批_第3张图片

    题解:long long sum1=0;//记录实际的加和减
    long long sum2=0;//记录实际的加,并且当执行减时要和0比较

        最后遍历对max(arr[i]+sum1,sum2)求和;

#include 
#include
#include
// #include 
using namespace std;
int arr[100005]; 
int indexadd[100005];
int mod=1e9+7;
int main() {
    int n,k;
    scanf("%d%d",&n,&k);
    for(int i=0;i

2022年携程秋招第五批_第4张图片

 首选求出a和b所有的质因子,以及每个质因子对应的个数,然后使用dfs进行搜素,找出所有可能的因子

#include 
#include
#include
#include
using namespace std;
mapmp1;
mapmp;
long long a1[20000];
vectorres;
int Knum=0;
void dfs(int n,int step,long long value)
{
      if(step==n)
      {
           if(!mp1[value])
           {
              mp1[value]++;
              res.push_back(value);
              Knum++;
           }
            return;
      }
      int k=mp[a1[step]];
      for(int i=0;i<=k;i++)
      {
           if(i==0)
           {
                dfs(n,step+1,value);
           }
           else{
               value=value*a1[step];
               dfs(n,step+1,value);
           }
      }
      return ;
}
int main() {
    long long a,b;
    scanf("%lld%lld",&a,&b);
    for(long long i=2;i*i<=a;i++)
    {
        while(a%i==0&&a>1)
        {
            mp[i]++;
            a=a/i;
        }

    }
    if(a>1)
    {
        mp[a]++;
    }
    for(long long i=2;i*i<=b;i++)
    {
        while(b%i==0&&b>1)
        {
            mp[i]++;
            b=b/i;
        }
    }
    if(b>1)
    {
        mp[b]++;
    }
    int num=0;
    map::iterator it=mp.begin();
    while(it!=mp.end())
    {
        long long x=it->first;
        a1[num++]=x;
        it++;
    }
    dfs(num,0,1);
    sort(res.begin(),res.end());
    printf("%d\n",Knum);
    for(int i=0;i

2022年携程秋招第五批_第5张图片


select
    date(o.order_time) as order_date,
    o.user_id,
    count(o.user_id) as order_nums,
    u.vip
from order_tb o 
left join uservip_tb u 
on o.user_id = u.user_id
group by o.user_id, date(o.order_time)
having count(o.user_id) > 1

 

你可能感兴趣的:(算法,数据结构)