首页 > 其他分享 >训练(清明)

训练(清明)

时间:2024-04-06 16:47:39浏览次数:19  
标签:std 清明 训练 int long using dp define

1.飞机降落(经典dfs,遍历每一种情况,不符返回0,符合返回1,只要有一个返回值1就成立,记得每次都初始化一下标记数组)

查看代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,T,b[15];
struct fei{
    int t;
    int d;
    int l;
};
struct fei f[15];
bool dfs(int dep,int ti)
{
    if(dep>n)return 1;
    for(int i=1;i<=n;i++)
    {
        if(b[i]||f[i].t+f[i].d<ti)
            continue;
        b[i]=1;
        if(dfs(dep+1,max(ti,f[i].t)+f[i].l))
        {
            b[i]=0;
            return 1;
        }
        b[i]=0;
    }
    return 0;
}
signed main()
{
    cin>>T;
    while(T--)
    {
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            cin>>f[i].t>>f[i].d>>f[i].l;
        }
        memset(b,0,sizeof b);
        if(dfs(1,0))cout<<"YES"<<endl;
        else cout<<"NO"<<endl;
    }
    return 0;
}

2.接龙数列(采用dp的思想,求出最长的连续序列,最后用n减去即为所求)

#include<bits/stdc++.h>
#define int long long
using namespace std;
string a;
int dp[100000],ma;
signed main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a;
        int l=a.size();
        dp[a[l-1]-'0']=max(dp[a[l-1]-'0'],dp[a[0]-'0']+1);//两种情况,设ai开头数字为p,结尾数字为q,如果选取ai那么dp[q]=dp[p]+1,否则则不变
    }
    for(int i=0;i<=9;i++)ma=max(dp[i],ma);
    cout<<n-ma;
    return 0;
}

3.全球变暖(bfs,通过判断是否为陆地来扩张,如果没有遇到不会沉没的区块就加一,遇到就不加一,并使其沉没,方便后续岛屿的判断)

查看代码
 #include<bits/stdc++.h>
#define int long long
using namespace std;
char s[1001][1001];
int v;
int dx[4]={1,-1,0,0},dy[4]={0,0,1,-1};
int biao[1001][1001];
bool lu(char c)
{
    if(c=='#')return 1;
    else return 0;
}
int bfs(int a,int b)
{
    biao[a][b]=1;
    if(lu(s[a+1][b])&&lu(s[a][b+1])&&lu(s[a-1][b])&&lu(s[a][b-1]))
    {
        v=0;
    }
    for(int i=0;i<4;i++)
    {
        int x=a+dx[i],y=b+dy[i];
        if(lu(s[x][y])&&!biao[x][y])
        bfs(x,y);
    }
    s[a][b]='.';
    return v;
}
signed main()
{
    memset(biao,0,sizeof biao);
    int n;
    cin>>n;
    int ans=0;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            cin>>s[i][j];
        }
        getchar();
    }
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            if(lu(s[i][j]))v=1,ans+=bfs(i,j);
    cout<<ans;
    return 0;
}

4.异或和之和(主要是个前缀异或和,后面直接暴力会t)

查看代码
 #include<bits/stdc++.h>
#define int long long
using namespace std;
int a[500000],c[1000000];
#define MAX 100010
#define int long long
using namespace std;
int n;
int arr[MAX];
int s[MAX];
signed main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);
    cin >> n;
    for (int i = 1; i <= n; i++)
        cin >> arr[i];
    for (int i = 1; i <= n; i++) {
        s[i] = s[i - 1] ^ arr[i];
    }
    int sum = 0;
    for (int i = 0; i < 21; i++) {
        int c1 = 0;
        int c0 = 1;
        int now = 0;
        for (int j = 1; j <= n; j++) {
            if (s[j] >> i & 1) now += c0, c1++;
            else now += c1, c0++;
        }
        sum += (1 << i) * now;
    }
    cout << sum;
    return 0;
}

5.密文搜索(用到一个substr函数,用来截取串中某段数据,顺序截取并排序,与给出的排序后的字符串比较是否相同,若相同就加一,输出ans)

查看代码
 #include<bits/stdc++.h>
#define int long long
using namespace std;
signed main()
{
    string s,c;
    int n;
    cin>>s>>n;
    map<string,int>mp;
    for(int i=0;i<n;i++)
    {
        cin>>c;
        sort(c.begin(),c.end());
        mp[c]++;
    }
    int ans=0;
    for(int i=0;i<s.size()-7;i++)
    {
        string x=s.substr(i,8);
        sort(x.begin(),x.end());
        ans+=mp[x];
    }
    cout<<ans;
    return 0;
}

6.k倍区间(显然是前缀和,但是数据范围直接写会t,所以要进行一个叠取模的操作)

查看代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,k,s[100005],ans=0,b[100005];
signed main(){
    cin>>n>>k;
    for(int i=1,t;i<=n;i++)
        cin>>t,s[i]=s[i-1]+t;
    for(int i=0;i<=n;i++)
        ans+=b[s[i]%k]++;//有n个模数相同中间就有(n-1)段和为k的倍数
    cout<<ans;
    return 0;
}

 

标签:std,清明,训练,int,long,using,dp,define
From: https://www.cnblogs.com/violet-hty/p/18117543

相关文章

  • 代码随想录算法训练营第二天 | 59.螺旋矩阵
    leetcode59.螺旋矩阵题目59.螺旋矩阵给你一个正整数n,生成一个包含1到n2所有元素,且元素按顺时针顺序螺旋排列的nxn正方形矩阵matrix。解题思路构建一个n行n列的二维数组计算转几圈(注意n为奇数时,转圈结束后会剩余一个中心点)填充每圈的数值--最外层循环每圈按......
  • 16天【代码随想录算法训练营34期】第六章 二叉树part03(● 104.二叉树的最大深度 559
    104.二叉树的最大深度#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolution:defmaxDepth(self,root:O......
  • 【清明3天】云服务器价格即将回调 2G 50/年,4G 618/3年,附阿里云 京东云 腾讯云2-64G对
    更新日期:4月6日(阿里云价格回调,京东云采购季持续进行)本文纯原创,侵权必究《最新对比表》已更新在文章头部—腾讯云文档,文章具有时效性,请以腾讯文档为准!【腾讯文档实时更新】2024年-服务器专区最新云服务器对比表https://docs.qq.com/document/DV0RCS0lGeHdMTFFV?tab=000003......
  • 基于深度学习的智能监考系统(网页版+YOLOv8/v7/v6/v5代码+训练数据集)
    摘要:本文深入研究了基于YOLOv8/v7/v6/v5的智能监考系统,核心采用YOLOv8并整合了YOLOv7、YOLOv6、YOLOv5算法,进行性能指标对比;详述了国内外研究现状、数据集处理、算法原理、模型构建与训练代码,及基于Streamlit的交互式Web应用界面设计。在Web网页中可以支持图像、视频和实时......
  • 2024-4-4 清明节第一天出去玩
    早上七点半起床直奔华子,九点半到的,和km,yy和一吻集合,先排队排了会枣糕,然后去华子里溜达照相,全是人,还去华子教学楼里上了个厕所,中午在食堂吃的挺好吃。下午又去了一趟颐和园,溜了一圈,然后晚上在大鸭梨吃的烤鸭,吃的非常爽,主要和兄弟们聊天特别爽,聊了同学,一吻的工作生活等等,晚上去了什......
  • 代码随想录算法训练营DAY18|C++二叉树Part.5|513.找树左下角的值、112. 路径总和、113
    文章目录513.找树左下角的值层序-迭代遍历前中后序-递归遍历思路伪代码CPP代码112.路径总和、113.路径总和II112.路径总和思路伪代码实现CPP代码113.路径总和II思路伪代码实现CPP代码实现106\105.从中(前)序与后(中)序遍历序列构造二叉树106.从中序与后序遍历序列......
  • 0193期通过CNN-pytorch训练识别苹果树叶病害识别-含数据集-含数据集
    代码下载和视频演示地址:0193期通过CNN-pytorch训练识别苹果树叶病害识别-含数据集_哔哩哔哩_bilibili本代码是基于pythonpytorch环境安装的。下载本代码后,有个环境安装的requirement.txt文本数据集介绍,下载本资源后,界面如下:数据集文件夹存放了本次识别的各个类别图片......
  • 【CANN训练营笔记】OrangePI AIPro 体验手写体识别模型训练与推理
    CANN简介当我们谈到香橙派AIPro的时候,总会把她和昇腾生态关联起来,因为在昇腾芯片的加持下,这款开发板有着出色的算力,被众多开发者追捧。而谈到昇腾芯片,我们不得不提上层的AI异构计算架构CANN。异构计算架构CANN(ComputeArchitectureforNeuralNetworks)是华为针对AI场......
  • 基于深度学习的自动驾驶目标检测系统(网页版+YOLOv8_v7_v6_v5代码+训练数据集)
    摘要:本文深入研究了基于YOLOv8/v7/v6/v5的自动驾驶目标检测系统,核心采用YOLOv8并整合了YOLOv7、YOLOv6、YOLOv5算法,进行性能指标对比;详述了国内外研究现状、数据集处理、算法原理、模型构建与训练代码,及基于Streamlit的交互式Web应用界面设计。在Web网页中可以支持图像、视频和实......
  • 基于深度学习的钢材表面缺陷检测系统(网页版+YOLOv8_v7_v6_v5代码+训练数据集)
    摘要:本文深入研究了基于YOLOv8/v7/v6/v5的钢材表面缺陷检测系统,核心采用YOLOv8并整合了YOLOv7、YOLOv6、YOLOv5算法,进行性能指标对比;详述了国内外研究现状、数据集处理、算法原理、模型构建与训练代码,及基于Streamlit的交互式Web应用界面设计。在Web网页中可以支持图像、视频和实......