2024“钉耙编程”中国大学生算法设计超级联赛(1)

news2024/12/25 23:15:19

Rank

待补1003树,1005博弈,1012并。

星星 - HDU 7434 - Virtual Judge

这题第一眼云的时候感觉是贪心,后来要上手写代码感觉无从下手,遂反映过来是动态规划。

然后就是一个很简单的dp,外层枚举物品,里面枚举价值。

#include<bits/stdc++.h>
using ll=long long;
using PII=std::pair<double,double>;

#define fir first
#define sec second

const int N=2e3+10;

int a[N][10];
double b[N][10],c[N]; 
int f[N][N];
void solve()
{
    int n,k;
    std::cin>>n>>k;//获得k个星星的最小代价 
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=4;j++) 
        {
            std::cin>>a[i][j];
        }
    }
    memset(f,0x3f,sizeof f);
    f[0][0]=0;
    
    for(int p=1;p<=n;p++)
    {
            for(int i=0;i<=k;i++)//星星数目 
            {    
                f[p][i]=f[p-1][i];
                for(int j=0;j<5;j++)
                {
                    if(i>=j) 
                    {
                        f[p][i]=std::min(f[p-1][i-j]+a[p][j],f[p][i]);
                    }
                }
            }
    }
    std::cout<<f[n][k];
}
signed main()
{
    std::ios::sync_with_stdio(0);
    std::cin.tie(0);
    
    int t=1;
    std::cin>>t;
    while(t--)
    {
        solve();
    } 
    return 0;
}

 位运算 - HDU 7440 - Virtual Judge (vjudge.net)

因为位运算是按照每一位来计算,所以第一反应是根据表达式推结果为1的时候有多少种情况,那么情况总数就是每一位的情况数相乘。

,然后根据这个式子,随便推一推。

然后就想题目给k是什么意思,呃原来是abcd的范围是[0,2^k),那也就是说这四个数最大k位呗。直接枚举每一位,如果n当前是1就乘上12,否则乘4,然后右移即可。

#include<bits/stdc++.h>
using ll=long long;
using PII=std::pair<double,double>;

#define fir first
#define sec second

const int N=2e3+10;

int a[N][10];
void solve()
{
    int n,k;
    std::cin>>n>>k;
    ll cnt=1;
    for(int i=1;i<=k;i++)
    {
        if(n&1) cnt*=12;
        else cnt*=4;
        
        n>>=1;
    }
    std::cout<<cnt<<'\n';
}
signed main()
{
    std::ios::sync_with_stdio(0);
    std::cin.tie(0);
    
    int t=1;
    std::cin>>t;
    while(t--)
    {
        solve();
    } 
    return 0;
}

循环位移 - HDU 7433 - Virtual Judge

看懂题之后就知道,a是小串,要找出b中有多少个子串在a+a中出现过。

然后要做的就是字符串哈希,亲测这题STL会TLE,所以以后比赛都尽量手写哈希吧。

思路:对a+a中所有长为lena的字符串求哈希值,然后存进map里面。然后对b中所有长为lena的字符串求哈希值,如果在map中出现过就cnt++。然后就是ull自然溢出。(今天才知道map<string,int>是O(N)的,ull才是O1。

#include<bits/stdc++.h>
using ll=long long;
using ull=unsigned long long;
using PII=std::pair<double,double>;

#define fir first
#define sec second

const int N=1068576,P=131;

#define int ull
ull h[N],p[N],h1[N];
void init()
{
    p[0]=1;
    for(int i=1;i<=N;i++)
    {
        p[i]=p[i-1]*P;
    }
}
ull get(int l,int r)
{
    return h[r]-h[l-1]*p[r-l+1];
}
ull get1(int l,int r)
{
    return h1[r]-h1[l-1]*p[r-l+1];
}
void solve()
{
    std::string a,b;
    std::cin>>a>>b;
    
    int lena=a.length();
    int lenb=b.length();
    
    a=' '+a+a;
    b=' '+b;
    
    std::map<ull,int> mp;
    for(int i=1;i<a.length();i++)
    {
        h[i]=h[i-1]*P+a[i];
    }
    for(int i=1;i+lena-1<a.length();i++)
    {
        mp[get(i,i+lena-1)]=1;
    }
    
    for(int i=1;i<b.length();i++)
    {
        h1[i]=h1[i-1]*P+b[i];
    }
    
    ll cnt=0;
    for(int i=1;i+lena-1<b.length();i++)
    {
        if(mp[get1(i,i+lena-1)]) cnt++;
    }
    std::cout<<cnt<<'\n';
}
signed main()
{
    std::ios::sync_with_stdio(0);
    std::cin.tie(0);
    
    init();
    
    int t=1;
    std::cin>>t;
    while(t--)
    {
        solve();
    } 
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1936314.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多类别支持向量机(Multi-class SVM)

多类别支持向量机&#xff08;Multi-class SVM&#xff09;是一种扩展二分类支持向量机以处理多类别分类问题的方法。常见的方法有“一对一”&#xff08;one-vs-one&#xff09;和“一对多”&#xff08;one-vs-rest&#xff09;。 一、数学模型理论推导 1.1 一对多&#xf…

时间卷积网络(TCN):序列建模的强大工具(附Pytorch网络模型代码)

1. 引言 引用自&#xff1a;Bai S, Kolter J Z, Koltun V. An empirical evaluation of generic convolutional and recurrent networks for sequence modeling. arXiv[J]. arXiv preprint arXiv:1803.01271, 2018, 10. 时间卷积网络&#xff08;Temporal Convolutional Networ…

Six common classification algorithms in machine learning

分类算法是一种机器学习算法&#xff0c;其主要目的是从数据中发现规律并将数据分成不同的类别。分类算法通过对已知类别训练集的计算和分析&#xff0c;从中发现类别规则并预测新数据的类别。常见的分类算法包括决策树、朴素贝叶斯、逻辑回归、K-最近邻、支持向量机等。分类算…

减分兔搜题-12123学法减分20题目及答案 #媒体#职场发展

对于即将参加驾驶考试的朋友来说&#xff0c;掌握一些经典题目和答案至关重要。今天&#xff0c;我就为大家带来了这样一份干货——20道驾驶考试题目和答案&#xff0c;助你轻松应对考试&#xff01;这些题目不仅包括了考试中常考的内容&#xff0c;还有针对难点和重点的详细解…

​数据结构之初始二叉树(3)

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;数据结构&#xff08;Java版&#xff09; 二叉树的基本操作 通过上篇文章的学习&#xff0c;我们简单的了解了二叉树的相关操作。接下来就是有…

前端组件化技术实践:Vue自定义顶部导航栏组件的探索

摘要 随着前端技术的飞速发展&#xff0c;组件化开发已成为提高开发效率、降低维护成本的关键手段。本文将以Vue自定义顶部导航栏组件为例&#xff0c;深入探讨前端组件化开发的实践过程、优势以及面临的挑战&#xff0c;旨在为广大前端开发者提供有价值的参考和启示。 一、引…

从微软发iPhone,聊聊企业设备管理

今天讲个上周的旧闻&#xff0c;微软给员工免费发iPhone。其实上周就有很多朋友私信问我&#xff0c;在知乎上邀请我回答相关话题&#xff0c;今天就抽点时间和大家一起聊聊这事。我不想讨论太多新闻本身&#xff0c;而是更想聊聊事件的主要原因——微软企业设备管理&#xff0…

深入浅出WebRTC—DelayBasedBwe

WebRTC 中的带宽估计是其拥塞控制机制的核心组成部分&#xff0c;基于延迟的带宽估计是其中的一种策略&#xff0c;它主要基于延迟变化推断出可用的网络带宽。 1. 总体架构 1.1. 静态结构 1&#xff09;DelayBasedBwe 受 GoogCcNetworkController 控制&#xff0c;接收其输入…

C++STL初阶(7):list的运用与初步了解

在了解了vector之后&#xff0c;我们只需要简单学习List与vector不一样的接口即可 1.list的基本接口 1.1 iterator list中&#xff0c;与vector最大的区别就是迭代器由随机迭代器变成双向迭代器 string和vector中的迭代器都是随机迭代器&#xff0c;支持-等&#xff0c;而LIS…

MOGONET:患者分类与biomarker识别

为了充分利用组学技术的进步并更全面地了解人类疾病&#xff0c;需要新的计算方法来综合分析多种类型的组学数据。多组学图卷积网络 (MOGONET&#xff0c;Multi-Omics Graph cOnvolutional NETworks)是一种用于生物医学分类的新型多组学整合方法。MOGONET 包含特定组学的学习和…

Keil开发IDE

Keil开发IDE 简述Keil C51Keil ARMMDK DFP安装 简述 Keil公司是一家业界领先的微控制器&#xff08;MCU&#xff09;软件开发工具的独立供应商。Keil公司由两家私人公司联合运营&#xff0c;分别是德国慕尼黑的Keil Elektronik GmbH和美国德克萨斯的Keil Software Inc。Keil公…

三、初识C语言(3)

1.操作符 &#xff08;1&#xff09;算术操作符 - * / % 商 余&#xff08;取模&#xff09; 小算法&#xff1a; 若a<b&#xff0c;则a%b a 若a%b c&#xff0c;则0 < c < b-1 若两个int 类型数相除&#xff0c;结果有小数会被舍弃。 保留小数…

苹果电脑pdf合并软件 苹果电脑合并pdf 苹果电脑pdf怎么合并

在数字化办公日益普及的今天&#xff0c;pdf文件因其跨平台兼容性强、格式稳定等特点&#xff0c;已经成为工作、学习和生活中不可或缺的文件格式。然而&#xff0c;我们常常面临一个问题&#xff1a;如何将多个pdf文件合并为一个&#xff1f;这不仅有助于文件的整理和管理&…

苏州金龙海格汽车入选2024中国汽车行业可持续发展实践案例

2024年7月11日-13日&#xff0c;由中国汽车工业协会主办的第14届中国汽车论坛在上海嘉定举办。本届论坛隆重发布了“2024中国汽车行业可持续发展实践案例”&#xff0c;苏州金龙因在坚持绿色可持续发展方面做出的努力和贡献获评2024中国汽车行业可持续发展实践案例“绿色发展”…

Ideal窗口中左右侧栏消失了

不知道大家在工作过程中有没有遇到过此类问题&#xff0c;不论是Maven项目还是Gradle项目&#xff0c;突然发现Ideal窗口右侧图标丢失了&#xff0c;同事今天突然说大象图标不见了&#xff0c;不知道怎样刷新gradle。 不要慌张&#xff0c;下面提供一些解决思路&#xff1a; 1…

HarmonyOS ArkUi 唤起系统APP:指定设置界面、浏览器、相机、拨号界面、选择通讯录联系人

效果&#xff1a; 完整工具类&#xff1a; import { common, Want } from kit.AbilityKit; import { BusinessError } from kit.BasicServicesKit; import { call } from kit.TelephonyKit; import { promptAction } from kit.ArkUI; import { contact } from kit.Contacts…

PHP宠物店萌宠小程序系统源码

&#x1f43e;萌宠生活新方式&#x1f43e; &#x1f3e1;【一键直达萌宠世界】 你是否也梦想着拥有一家随时能“云撸猫”、“云吸狗”的神奇小店&#xff1f;现在&#xff0c;“宠物店萌宠小程序”就是你的秘密花园&#xff01;&#x1f31f;只需轻轻一点&#xff0c;就能瞬…

使用Velero备份与恢复K8s集群及应用

作者&#xff1a;红米 环境 3台虚拟机组成一主两从的测试集群&#xff0c;使用NFS作为动态存储。 主机IP系统k8s-master192.168.1.10centos7.9k8s-node1192.168.1.11centos7.9k8s-node2192.168.1.12centos7.9 1、介绍 1.1 简介 备份容灾 一键恢复 集群迁移 支持备份pv&…

CH04_依赖项属性

第4章&#xff1a;依赖项属性 本章目标 理解依赖项属性理解属性验证 依赖项属性 ​ 属性与事件是.NET抽象模型的核心部分。WPF使用了更高级的依赖项属性&#xff08;Dependency Property&#xff09;功能来替换原来.NET的属性&#xff0c;实现了更高效率的保存机制&#xf…

卷积神经网络【CNN】--池化层的原理详细解读

池化层&#xff08;Pooling Layer&#xff09;是卷积神经网络&#xff08;CNN&#xff09;中的一个关键组件&#xff0c;主要用于减少特征图&#xff08;feature maps&#xff09;的维度&#xff0c;同时保留重要的特征信息。 一、池化层的含义 池化层在卷积神经网络中扮演着降…