首页 > 其他分享 >2024.07.27科大讯飞(有困难题)

2024.07.27科大讯飞(有困难题)

时间:2024-09-03 17:52:45浏览次数:9  
标签:2024.07 27 int house cin 房子 vector 科大 舒适度

1. 购房之旅

小强有n个朋友,每个朋友有一定数量的金币,现在他们要购买房子,一共有m个房子,每个房子有两个参数:舒适度和价格,当一个人的金币大于等于一个房子的价格时,才可以购买房子,且要满足以下条件:1.一个人至多购买一个房子。2.一个房子至多被一个人购买。现在小强想知道n个朋友购买的房子的舒适度之和最大可能是多少?

排序再使用红黑树贪心(map或者mutiset)
int main(){
    int n; int m;
    cin>>n;
    cin>>m;
    vector<int> coin(n);
    map<int,int> mp;
    //记录每个人的钱
    for(int i=0;i<n;i++){
        cin>>coin[i];
        mp[coin[i]]++;
    }
    //记录房子舒适度和对应价格
    vector<vector<int>> house(m,vector<int>(2,0));
    for(int i=0;i<m;i++){
        cin>>house[i][0];
        cin>>house[i][1];
    }
    //尽量使得舒适度最大,对舒适度进行排序,然后顺序遍历房子,同时选择大于房子价格且最接近的金钱去购买
    sort(house.begin(),house.end(),[&](auto a,auto b){
        if(a[0]==b[0]) return a[1]<b[1];//相同舒适度,价格便宜放前面
        return a[0]>b[0];//舒适度高的放前面
    });
    int res = 0;
    for(int i=0;i<m;i++){
        auto it = mp.lower_bound(house[i][1]);
        if(it!=mp.end()){
            res += house[i][0];
            mp[it->first]--;
            if(mp[it->first]==0)
                mp.erase(it->first);
        }
    }
    cout<<res;
    
    return 0;
}

2. base

我们想知道给定一个 10 进制数 n ,其在 2 ~36 进制下的所有进制表示中,含有 1的数量最多是多少。

进行转换计数
int compute(int n,int base){//计算在指定进制下1的个数
    int res = 0;
    while(n){
        if(n%base==1) res++;
        n/=base;
    }
    return res;
}

int main(){
    int n;
    cin>>n;
    int mx = 0;
    for(int i=2;i<=36;i++)
        mx = max(mx,compute(n,i));
    cout<<mx;
    return 0;
}

3. 异或和

给定两个整数 n和 m ,询问满足如下条件的序列 a 的数量:
序列a的长度为n;
序列a的值均大于等于0且小于等于m;
序列a是一个非递减序列;
序列a所有元素的异或值为m。

  • 首先考虑动态规划,因为结果数量很大
  • dp[i][j][k]表示考虑前i个数字,最后一个数字j,异或和为k的方案数。
  • 结果为dp[n][m][i]的累加和
  • f[i][j][k] += f[i-1][l][k^l] 为转移方程,为了保证递增,j需要大于等于l
  • 前缀和优化
int main() {
    int n, m;
    cin >> n >> m;

    // f[i][k][l]表示前i个数字,异或和为k,以l为结尾的方案数
    vector<vector<vector<ll>>> f(n + 1, vector<vector<ll>>(2 * m + 1, vector<ll>(m + 1, 0)));
    f[0][0][0] = 1;//初始状态

    for (int i = 1; i <= n; ++i) {//遍历n个数作为上限
        // 前缀和数组
        vector<vector<ll>> pre(2 * m + 1, vector<ll>(m + 1, 0));
        for (int t = 0; t <= 2 * m; ++t) {
            for (int p = 0; p <= m; ++p) {
                pre[t][p] = f[i - 1][t][p];
                if (p != 0) pre[t][p] = (pre[t][p] + pre[t][p - 1]) % MOD;
            }
        }

        for (int k = 0; k <= 2 * m; ++k) {
            for (int l = 0;l <= m && (k ^ l) <= 2 * m; ++l) {
                f[i][k][l] = (f[i][k][l] + pre[k ^ l][l]) % MOD;
            }
        }
    }

    ll ans = 0;
    for (int i = 0; i <= m; ++i) {
        ans = (ans + f[n][m][i]) % MOD;
    }

    cout << ans << endl;
    return 0;
}

标签:2024.07,27,int,house,cin,房子,vector,科大,舒适度
From: https://www.cnblogs.com/929code/p/18395124

相关文章

  • 国产RFSoC 47DR/28DR/27DR核心板
    采用FDW复旦微电子FMZQ28DR-RFSoC处理器,兼容Gen1ZU28/27、Gen3ZU48/47DRRFSoC,拥有8个RF-ADC、8个RF-DAC通道。提供完整的应用示例源代码和性能分析工具,主要用于小尺寸、低功耗、实时处理RF系统的快速集成与应用部署,缩短产品开发周期。主要技术指标: 核心处理器:Gen3 ZU48(47)DR......
  • ISO27001、风险评估与纵深防御
    ISO27001是国际标准化组织(ISO)和国际电工委员会(IEC)联合发布的信息安全管理体系(ISMS)标准,其最新版本为ISO/IEC27001:2013。该标准为组织提供了一套全面的方法,用于建立、实施、维护和持续改进信息安全管理体系,以保护组织的信息资产免受各种威胁,确保信息的机密性、完整性和可用性......
  • 代码随想录算法训练营|Day01 LeetCode 704.二分查找,27.移除元素,977.有序数组的平方
    数组理论基础数组是存放在连续空间上的相同类型数据的集合数组的元素是不能删的,只能覆盖704.二分查找LeetCode:704.有序数组的平方classSolution{public:intsearch(vector<int>&nums,inttarget){intlength=nums.size();inti=0......
  • springboot中小型酒店管理系统-计算机毕业设计源码02793
    摘要随着互联网和移动技术的快速发展,酒店行业也面临着巨大的变革和机遇。传统的酒店管理方式存在着信息不透明、预订流程繁琐等问题,无法满足现代消费者对便捷、高效、个性化服务的需求。因此,开发中小型酒店管理系统具有重要的意义。本文旨在设计和实现一种功能完善、易用且可......
  • python入门每日一练2023/2/27
    python入门每日一练,可以提高您的python水平,今天是2月27日,上一课的答案是print(1)print(111)print(222)如何让代码在一行内实现?(难度★★☆☆☆)......
  • [20240827]分析为什么出现library cache lock等待事件2.txt
    [20240827]分析为什么出现librarycachelock等待事件2.txt--//前几天一直在分析如果表不存在的情况下,密集执行为什么出现librarycachelock等待事件,而且出现的mode=2(共享模式),按照道--//理不应该阻塞,做一个分析.1.环境:SCOTT@book01p>@ver2==============================......
  • 240727 深度神经网络
    红色是实际数据,绿色是预测的点误差图#-*-coding:utf-8-*-importneurolabasnlimportnumpyasnpimportmatplotlib.pyplotasplt#生成数据min_value=-12max_value=12num_datapoints=90x=np.linspace(min_value,max_value,num_datapoints)y=2......
  • Day27-containerd
    containerd的历史(1)早在2016年3月,Docker1.11的DockerEngine里就包含了containerd,而现在则是把containerd从DockerEngine里彻底剥离出来,作为一个独立的开源项目独立发展,目标是提供一个更加开放、稳定的容器运行基础设施。和原先包含在DockerEngine里containerd相比,独立的conta......
  • 20240831_174427 scratch 自制积木的基本使用
    20240903_215445scratch认识自制积木自制积木是自定义的一个积木它的功能由自己决定20240903_225445scratch定义普通自制积木使用位置自制积木模块制作新的积木定义积木使用积木20240903_235445scratch定义带一参数的自制积木需求定义一个祝某某生日快......
  • flask 电子设备租赁大数据可视化分析平台 毕业设计-附源码22746
    摘 要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对电子设备租赁大数据可视化分析平台等问题,对电子设备租赁大数据可视化分析平台进行研究分析,然......