2022年携程秋招第五批

cpp 复制代码
#include <iostream>
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<n;i++)
        {
            s.append("y");
        }
        cout<<s<<endl;
     }
     return 0;
}
// 64 位输出请用 printf("%lld")
cpp 复制代码
#include <iostream>
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")

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

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

cpp 复制代码
#include <iostream>
#include<stdio.h>
#include<cmath>
// #include <algorithm>
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<n;i++)
    {
        scanf("%d",&arr[i]);
    }
    long long sum1=0;//记录实际的加和减
    long long sum2=0;//记录实际的加,并且当执行减时要和0比较
    while(k--){
        int op,x;
        scanf("%d%d",&op,&x);
        if(op==1)
        {
              sum1+=x;
              sum2+=x;
        }
        else{
            sum1-=x;
            sum2=max(sum2-x,(long long)0);
        }
    }
    long long res=0;
    for(int i=0;i<n;i++)
    {
          res+=max(arr[i]+sum1,sum2);
          res=res%mod;
    }
    printf("%lld\n",res);
    return 0;
}
// 64 位输出请用 printf("%lld")

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

cpp 复制代码
#include <iostream>
#include<map>
#include<vector>
#include<algorithm>
using namespace std;
map<long long,long long>mp1;
map<long long,long long>mp;
long long a1[20000];
vector<long long>res;
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<long long,long long>::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<res.size();i++){
        if(i==0)
        printf("%lld",res[i]);
        else{
            printf(" %lld",res[i]);
        }
    }
    printf("\n");
    return 0;
}
// 64 位输出请用 printf("%lld")
sql 复制代码
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
相关推荐
垠二1 小时前
L2-4 寻宝图
数据结构·算法
a_j583 小时前
算法与数据结构(环形链表)
数据结构·链表
东方芷兰4 小时前
算法笔记 04 —— 算法初步(下)
c++·笔记·算法
JNU freshman4 小时前
图论 之 迪斯科特拉算法求解最短路径
算法·图论
青松@FasterAI4 小时前
【NLP算法面经】本科双非,头条+腾讯 NLP 详细面经(★附面题整理★)
人工智能·算法·自然语言处理
旅僧4 小时前
代码随想录-- 第一天图论 --- 岛屿的数量
算法·深度优先·图论
Emplace4 小时前
ABC381E题解
c++·算法
tekin4 小时前
Python 高级数据结构操作全解析:从理论到实践
数据结构·python·集合set·高级数据结构·集合操作·队列操作·堆操作
若兰幽竹5 小时前
【机器学习】衡量线性回归算法最好的指标:R Squared
算法·机器学习·线性回归
居然有人6546 小时前
23贪心算法
数据结构·算法·贪心算法