首页 > 其他分享 >顺丰笔试8月29日

顺丰笔试8月29日

时间:2024-08-29 20:05:03浏览次数:3  
标签:下划线 int 笔试 cin 29 表示法 ++ 顺丰 dp

第一题:字符串转化

字符串的驼峰表示法仅将除第一个单词外的单词首字母大小,例如:myName。而下划线表示法中所有单词小写,但是会用下划线隔开,例如my_name。给出n个字符串,若是驼峰表示法,将其转化为下划线表示法输出,若是下划线表示法则直接输出,否则输出"indistinct";

#include<bits/stdc++.h>  
using namespace std;  
int main() {  
    int n;  
    cin >> n;  
    string s;  
    for (int i = 0; i < n; i++) {  
        cin >> s;  
        if ((s[0] >= 'A' && s[0] <= 'Z') || s[0] == '_'){  
            cout << "indistinct"<<endl;  
            continue;  
        }  
        string res;  
        bool camel = false;  
        bool down = false;  
        bool next = false;  
        for (char c:s) {  
            if (c >= 'A' && c <= 'Z') {  
                char nc = c + 32;  
                res = res + '_' + nc;  
                camel = true;  
                continue;  
            }  
            if (c =='_') {  
                if (next) {  
                    camel = true;  
                }  
                down = true;  
                next = true;  
            }  
            else next = false;  
            res = res + c;  
        }  
        if ((camel && down) || next ) cout << "indistinct"<<endl;  
        else cout << res << endl;  
    }  
    return 0;  
}

需要排除_开头结尾、大写字母开头和连续下划线的特殊情况

第二题:排列房子

小岛上有n(n <= 15)间房子,每间房子都有着对应的价值,要求相邻两个房子的价值一定为整数倍(例如房子1的价值是2的倍数或房子2价值为1的倍数),请问有多少种排列

#include<bits/stdc++.h>  
using namespace std;  
int main() {  
    int n;  
    cin >> n;  
    int h[18];  
    for (int i = 0; i < n; i++) {  
        cin >> h[i];  
    }  
    //使用状态压缩表示排布方法  
    // dp[i][j] i表示当前集合,j表示前一个房子  
    int dp[100005][15];  
    memset(dp, 0, sizeof(dp));  
    for (int i = 0; i < n; i++) {  
        int s = (1 << i);  
        dp[s][i] = 1;  
    }  
    for (int i = 1; i < (1 << n); i++) {  
        for (int j = 0; j < n; j++) {  
            if (i & (1 << j)) {  
                //枚举的dp[i][j]存在则找 dp[i - j][k],k则是与j满足条件的房子  
                for (int k = 0; k < n; k++) {  
                    if (((1 << k) & (i ^ (1 << j))) && (h[j] % h[k] == 0 || h[k] % h[j] == 0)) {  
                        dp[i][j] += dp[i ^ (1 << j)][k];  
                    }  
                }  
            }  
        }  
    }  
    int res = 0;  
    for (int i = 0; i < n; i++) {  
        res += dp[(1 << n) - 1][i];  
    }  
    cout << res;  
    return 0;  
}

标签:下划线,int,笔试,cin,29,表示法,++,顺丰,dp
From: https://www.cnblogs.com/tanch25/p/18387484

相关文章

  • 【闲话】08.29.24
    “你还好吗”你过着一如既往的生活。“是的,也许ta需要。”你想。于是你条件反射般地写下了那样的文字,果然无用。你动用所有逻辑分析对方想要听到的话,你点击了发送按钮。事情并不如你预想般发展。“你是为了什么呢?”对方问道。你是为了什么呢?是的,从很久以前你就有这样的习惯......
  • 0829-T4 太空帝国
    0829-T4太空帝国题意给定一个图有\(n\)个点,每个点的坐标为\((x_i,y_i,z_i)\)。点\(i\)和点\(j\)的距离为\(\min(|x_i-x_j|,|y_i-y_j|,|z_i-z_j|)\)。求该图的最小生成树。思路暴力建图不能通过。对最小生成树有贡献的边只可能连在按\(x\)或\(y\)或\(z\)排序......
  • 0829-T3 公因数
    0829-T3公因数题意给定一个长度为\(n\)的序列,可以做若干次操作。每次操作选择两个数\(A,B\),选择\(A\)的一个质因数\(P\),将\(A\)变为\(\frac{A}{P}\),将\(B\)变为\(BP\)。求经过若干次操作后序列最大公因数的最大值,以及此情况下操作的最小次数。思路每次操作不会......
  • 华为20240821笔试第一题笔记
    https://mp.weixin.qq.com/s?__biz=MzkyNTQ3NDAzNw==&mid=2247489703&idx=1&sn=96d3f883998b4bbb395dfc5f08906399&chksm=c02307cb0d07e5b4e7140350b08b20bd7b5ba950886d62a60f44af3bc6c070c1031827edc979&mpshare=1&scene=1&srcid=0821m7WJaqagZ......
  • 29:函数查询,添加,修改,删除
    #_*_coding:utf-8_*_importosdeffile_handle(filename,backend_data,record_list=None,type='fetch'):#type:fetchappendchangenew_file=filename+'_new'bak_file=filename+'_bak'iftype=='fetch':......
  • 8.29 模拟赛
    S---【云智计划】---7月11日---模拟测#30div2【补题】-比赛-梦熊联盟(mna.wang)S---【云智计划】---7月11日---模拟测#30div1【补题】-比赛-梦熊联盟(mna.wang)预计\(100+70+0+50+45\),实际\(90+50+0+45+25\)。比赛复盘A一眼可做。分析了一下推出了一个三维偏序......
  • 08.29
    QOJ141A没必要传度数\(<8\)的点。因为双染色是容易的,A把两种颜色压缩成一种颜色,B再把每种颜色双染色,就是合法的八染色了。每个点给度数和贡献至少\(8\),占\(2\)bit,考虑到度数和的上限为\(2m\),至多需要\(m/2\)bit。std::vector<int>Alice(intn,intm,std::vecto......
  • T240829 【用Liouville定理证明代数学基本定理】
    [T240829]代数学基本定理:在复平面上次数大于\(1\)的一元多项式至少有一个零点.引理(Liouville)有界整函数\(f(z)\)必为常数.证:设\(|f(z)|\)有上界\(M\).即\(\forallz\in\C,~|f(z)|\leM\).于是由Cauchy不等式,对\(\foralla\in\C\),有\[0\le|f'(a)|\le......
  • 地平线—征程2(Journey 2-J2)芯片详解(29)—BIFSD+BIFSPI+QSPI Interface Timing
    写在前面本系列文章主要讲解地平线征程2(Journey2-J2)芯片的相关知识,希望能帮助更多的同学认识和了解征程2(Journey2-J2)芯片。若有相关问题,欢迎评论沟通,共同进步。(*^▽^*)错过其他章节的同学可以电梯直达目录↓↓↓地平线—征程2(Journey2-J2)芯片详解——目录-CSDN博客1......
  • P2900 [USACO08MAR] Land Acquisition G
    题目思路我们按照土地的长为第一关键字,土地的宽为第二关键字,从大到小排序,对于将被大矩形完全包含的小矩形删去,因其不影响结果,这样就得到了长严格下降,宽严格上升的序列。从左往右考虑合并,假如将\(l\)到\(r\)段合并,那么长取矩形\(l\)的长\(w_l\),宽取矩形\(r\)的宽\(h_......