P8772 求和 P8716 回文日期

文章目录

  • [蓝桥杯 2022 省 A] 求和
  • [蓝桥杯 2020 省 AB2] 回文日期

[蓝桥杯 2022 省 A] 求和

题目描述

给定 n n n 个整数 a 1 , a 2 , ⋯   , a n a_{1}, a_{2}, \cdots, a_{n} a1,a2,,an, 求它们两两相乘再相加的和,即

S = a 1 ⋅ a 2 + a 1 ⋅ a 3 + ⋯ + a 1 ⋅ a n + a 2 ⋅ a 3 + ⋯ + a n − 2 ⋅ a n − 1 + a n − 2 ⋅ a n + a n − 1 ⋅ a n S=a_{1} \cdot a_{2}+a_{1} \cdot a_{3}+\cdots+a_{1} \cdot a_{n}+a_{2} \cdot a_{3}+\cdots+a_{n-2} \cdot a_{n-1}+a_{n-2} \cdot a_{n}+a_{n-1} \cdot a_{n} S=a1a2+a1a3++a1an+a2a3++an2an1+an2an+an1an

输入格式

输入的第一行包含一个整数 n n n

第二行包含 n n n 个整数 a 1 , a 2 , ⋯ a n a_{1}, a_{2}, \cdots a_{n} a1,a2,an

输出格式

输出一个整数 S S S,表示所求的和。请使用合适的数据类型进行运算。

样例 #1

样例输入 #1

4
1 3 6 9

样例输出 #1

117

提示

对于 30 % 30 \% 30% 的数据, 1 ≤ n ≤ 1000 , 1 ≤ a i ≤ 100 1 \leq n \leq 1000,1 \leq a_{i} \leq 100 1n1000,1ai100

对于所有评测用例, 1 ≤ n ≤ 2 × 1 0 5 , 1 ≤ a i ≤ 1000 1 \leq n \leq 2\times10^5,1 \leq a_{i} \leq 1000 1n2×105,1ai1000

蓝桥杯 2022 省赛 A 组 C 题。


解题思路

我们将公因数提取出来后,就可以转换成 a i a_{i} ai a i + 1 , a i + 2 , ⋯   , a n a_{i+1}, a_{i+2}, \cdots, a_{n} ai+1,ai+2,,an 的和的乘积,利用前缀和 && 差分 就可以解决了。

具体操作就是将 a 1 , a 2 , ⋯   , a n a_{1}, a_{2}, \cdots, a_{n} a1,a2,,an 的和 s u m sum sum 计算出来,每次与 a i a_{i} ai 相乘之前减去 a i a_{i} ai ,将得到的数累加起来就可以得到答案。

#include <bits/stdc++.h>
using namespace std;
long long sum,ans,nums[200005],n;

int main()
{
    cin >> n;
    for(int i = 1; i <= n; ++i)
    {
        cin >> nums[i];
        sum += nums[i];
    }
    
    for(int i = 1; i <= n; ++i)
    {
        sum -= nums[i];
        ans += nums[i] * sum;
    }
    cout << ans << endl;
    
    return 0;
}

在这里插入图片描述

[蓝桥杯 2020 省 AB2] 回文日期

题目描述

2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日。因为如果将这个日期按 yyyymmdd 的格式写成一个 8 8 8 位数是 20200202,恰好是一个回文数。我们称这样的日期是回文日期。

有人表示 20200202 是“千年一遇” 的特殊日子。对此小明很不认同,因为不到 2 年之后就是下一个回文日期:20211202 即 2021 年 12 月 2 日。

也有人表示 20200202 并不仅仅是一个回文日期,还是一个 ABABBABA 型的回文日期。对此小明也不认同,因为大约 100 100 100 年后就能遇到下一个 ABABBABA 型的回文日期:21211212 即 2121 年12 月12 日。算不上“千年一遇”,顶多算“千年两遇”。

给定一个 8 位数的日期,请你计算该日期之后下一个回文日期和下一个 ABABBABA 型的回文日期各是哪一天。

输入格式

输入包含一个八位整数 N N N,表示日期。

输出格式

输出两行,每行 1 1 1 个八位数。第一行表示下一个回文日期,第二行表示下
一个 ABABBABA 型的回文日期。

样例 #1

样例输入 #1

20200202

样例输出 #1

20211202
21211212

提示

对于所有评测用例, 10000101 ≤ N ≤ 92200229 10000101 \le N \le 92200229 10000101N92200229,保证 N N N 是一个合法日期的 8 8 8 位数表示。

蓝桥杯 2020 第二轮省赛 A 组 G 题(B 组 G 题)。


解题思路

我们直接从输入的日期 d a t e date date 开始枚举,检查该日期是否合法,在合法的情况下判断日期是否为回文日期,输出第一个回文日期和第一个 ABABBABA 型日期。

所以我们需要实现3个函数,检查日期是否合法check_date、判断日期是否是回文日期check1、判断日期是否是 ABABBABA 型回文日期check2

#include<bits/stdc++.h>
using namespace std;
int months[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

//检查日期是否合法
bool check_date(int date)
{
	//分离年月日
    int d = date % 100;
    int m = date / 100 % 100;
    int y = date / 10000;
    //显而易见的不合法天数和月份
    if(d == 0 || m == 0 || m > 12) return false;
    //当月份不是2月时
    if(m != 2 && d > months[m]) return false;
    //月份是2月时要分是否是闰年来判断
    if(m == 2)
    {
        if((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0)) if(d > 29) return false;
        else if(d > 28) return false;
    }
    return true;
}

//检查是否是回文日期
bool check1(string s)
{
    int i = 0, j = s.size() - 1;
    while(i < j)
    {
        if(s[i++] != s[j--]) return false;
    }
    return true;
}

//检查日期是否是 ABABBABA`型回文日期
bool check2(string s)
{
    if(check1(s))
    {
        if(s[0] != s[2] || s[1] != s[3] || s[0] == s[1]) return false;
        return true;
    }
    return false;
}

int main()
{
    int date = 0;
    cin >> date;
    int cnt = 1;
    for(int i = date + 1; ;++i)
    {
        //在日期合法的情况下寻找回文日期
        if(check_date(i))
        {
            //将日期转换成字符串来判断
            string s = to_string(i);
            //输出第一个回文日期
            if(cnt && check1(s))
            {
                cout << i << endl;
                cnt--;
            }
            
            //在输出完第一个回文日期后,再去寻找ABABBABA型日期
            if(!cnt && check2(s))
            {
                cout << i << endl;
                break;
            }
        }
    }
    
    return 0;
}

在这里插入图片描述


努力中…

遗憾总是贯穿人生始终的,只有不断前进,才能抓住人生中的一次两次机会,成就梦想荣获成功,加油!✨
请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【优选算法】二分算法(在排序数组中查找元素的第一个和最后一个位置,寻找峰值,寻找排序数组中的最小值)

二分算法简介&#xff1a; 提到二分我们可能都会想起二分查找&#xff0c;二分查找要求待查找的数组是有序的&#xff0c;与我们今天讲的二分算法不同&#xff0c;并不是数组元素严格按照有序排列才可以使用二分算法&#xff0c;只要数组中有一个点可以将数组分为两个部分&…

升级Ubuntu 24.04 LTS报错“Oh no! Something has gone wrong.”

强烈建议&#xff1a;升级Ubuntu系统之前先配置好SSH远程访问 最近升级Ubuntu系统&#xff08;18->24&#xff09;&#xff0c;经历了一些惊魂时刻&#xff0c;复盘下来没有重装系统的最得益于SSH访问。 在升级到24.04版本时&#xff0c;一切似乎表现得很正常&#xff0c;…

大模型底座 Transformer 的核心技术解析

1. 引言 说明目标 在深度学习领域&#xff0c;Transformer架构已成为近年来最重要的技术突破之一。它最早由Vaswani等人在2017年的论文《Attention is All You Need》中提出&#xff0c;迅速成为自然语言处理&#xff08;NLP&#xff09;和其他序列建模任务的核心工具。传统方法…

2.生成Transformation

目录 前言 Source FlatMap KeyBy sum print 总结 前言 以下面的WordCount为例 package com.wlh.p1;import org.apache.flink.api.common.functions.FlatMapFunction; import org.apache.flink.api.java.functions.KeySelector; import org.apache.flink.api.java.tuple…

1. 机器学习基本知识(3)——机器学习的主要挑战

1.5 机器学习的主要挑战 1.5.1 训练数据不足 对于复杂问题而言&#xff0c;数据比算法更重要但中小型数据集仍然很普遍&#xff0c;获得额外的训练数据并不总是一件轻而易举或物美价廉的事情&#xff0c;所以暂时不要抛弃算法。 1.5.2 训练数据不具有代表性 采样偏差&#…

TypeScript学习路线图

‌ TypeScript 是由微软开发和维护的一种静态类型编程语言&#xff0c;它是 JavaScript 的超集。TypeScript 的创建是为了解决构建大规模 JavaScript 应用程序所面临的挑战&#xff0c;并向该语言添加了可选的类型注解、类、接口和其他特性。 使用 TypeScript 的主要好处包括&a…

负载均衡oj项目:编译模块

编译运行模块是一个网络服务&#xff0c;这样编译模块就可以可以快速部署到&#xff0c;其他主机上。 编译模块思路 util.hpp #pragma once #include <string> #include <vector> #include <sys/types.h> #include <sys/stat.h> #include <unistd…

绿色浪潮,VELO Angel Glide坐垫奏响环保骑行乐章

地球的环境日益恶劣&#xff0c;冰川消融、海平面上升、极端天气频繁出现&#xff0c;这一切都在不断提醒着我们&#xff0c;保护地球家园刻不容缓。而在这场关乎人类未来的环保行动中&#xff0c;各个领域都在积极探索可持续发展的道路&#xff0c;自行车坐垫领域也迎来了绿色…

【从零开始入门unity游戏开发之——C#篇09】if-else条件表达式、三元运算符、switch-case的使用

文章目录 一、if条件表达式1、if 语句基本结构示例输出&#xff1a; 2、else语句示例输出&#xff1a; 3、else if 语句示例输出&#xff1a; 4、组合逻辑运算符示例输出&#xff1a; 5、嵌套 if 语句示例输出&#xff1a;总结 二、三元运算符1、语法&#xff1a;2、示例&#…

Visual Studio 使用 GitHub Copilot 扩展

&#x1f380;&#x1f380;&#x1f380;【AI辅助编程系列】&#x1f380;&#x1f380;&#x1f380; Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码Visual Studio 安装和管理 GitHub CopilotVisual Studio 使用 GitHub Copilot 扩展Visual Studio 使用 GitHu…

conda学习

参考: Anaconda 官网教程 https://freelearning.anaconda.cloud/get-started-with-anaconda/18202conda配置虚拟环境/conda环境迁移/python环境迁移 https://blog.csdn.net/qq_43369406/article/details/127140839 环境&#xff1a; macOS 15.2Anaconda Navigator 2.4.2 x.1…

Nginx配置示例教程

最近对Nginx做了一些初步研究&#xff0c;Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发。主要根据工作中各类应用服务部署访问的需求&#xff0c;围绕HTTP服务、负载均衡、正反向代理、子路由、静态资源发布访问等&#xff0c;以及结合minio管理的图片文件资…

git使用教程(超详细)-透彻理解git

一.核心基础 核心概念有六个 首先请把与svn有关的一切概念暂时从你的脑海中移除掉&#xff0c;我们要重新认识本文所讲述的所有概念。 1.worktree worktree是一个目录&#xff0c;你在这里对文件进行增加、删除、修改。也就是我们常说的工作区。在git中worktree必须要与一个…

Django结合websocket实现分组的多人聊天

其他地方和上一篇大致相同&#xff0c;上一篇地址点击进入, 改动点1&#xff1a;在setting.py中最后再添加如下配置&#xff1a; # 多人聊天 CHANNEL_LAYERS {"default":{"BACKEND": "channels.layers.InMemoryChannelLayer"} }因此完整的se…

Keil-MDK开发环境编译后axf自动转换bin格式文件

编译选项添加如下&#xff0c;调用fromelf工具自动完成转换&#xff1a; fromelf --bin -o "$LL.bin" "#L"

如何快速搭建若依管理系统?

1、下载若依管理系统前后端分离版代码至本地&#xff08;当前版本为RuoYi v3.8.8&#xff09;&#xff1a; RuoYi-Vue: &#x1f389; 基于SpringBoot&#xff0c;Spring Security&#xff0c;JWT&#xff0c;Vue & Element 的前后端分离权限管理系统&#xff0c;同时提供…

【JavaEE】网络(1)

&#x1f435;本篇文章开始讲解计算机网络相关的知识 一、基础概念 1.1 局域网和广域网 局域网→Local Area Network→简称LAN&#xff0c;局域网是局部组建的一种私有网络&#xff0c;局域网内的主机之间可以进行网络通信&#xff0c;局域网和局域网之间在没有连接的情况不能…

网络应用技术 实验八:防火墙实现访问控制(华为ensp)

目录 一、实验简介 二、实验目的 三、实验需求 四、实验拓扑 五、实验步骤 1、设计全网 IP 地址 2、设计防火墙安全策略 3、在 eNSP 中部署园区网 4、配置用户主机地址 5、配置网络设备 配置交换机SW-1~SW-5 配置路由交换机RS-1~RS-5 配置路由器R-1~R-3 6、配置仿…

day11 性能测试(4)——Jmeter使用(黑马的完结,课程不全)直连数据库+逻辑控制器+定时器

【没有所谓的运气&#x1f36c;&#xff0c;只有绝对的努力✊】 目录 1、复习 1.1 断言&#xff08;3种&#xff09; 1.2 关联&#xff08;3种&#xff09; 1.3 录制脚本 2、Jmeter直连数据库 2.1 直连数据库——使用场景 2.2 直连数据库——操作步骤 2.2.1 案例1&…

Modelscope AgentFabric: 开放可定制的AI智能体构建框架

目录 git clone https://github.com/modelscope/modelscope-agent.git cd modelscope-agent && pip install -r requirements.txt && pip install -r apps/agentfabric/requirements.txtexport PYTHONPATH$PYTHONPATH:/home/ubuntu/users/lilingfei/modelscop…