CSP vp 记录

news/2024/9/16 23:13:51/文章来源:https://www.cnblogs.com/XOF-0-0/p/18402049

CSP-S2019 JX

注:使用了 IOI 赛制。

赛时:\(100+70+64+0+0=234\)目测上了 JX 1=

补题:\(100+100+100+0+100=400\)

T1

分数变动:\(73 \to 64 \to 73 \to 73 \to 100\)

首先判定月份是否合法,若不合法则可以 保留个位 或者 把十位变成 \(1\)\(73\) 分寄因:未考虑后者情况)。

如果合法,则保留原来的月份\(64\) 分寄因:合法时没有保留原来月份)。

然后判断日期是否在上述两种情况其中一种的月份区间之内,若是则不用改日期,否则保留个位就行。

code
#include<bits/stdc++.h>
using namespace std;int m,d;
int m1,m2;
const int q[12][2]={{1,31},{1,28},{1,31},{1,30},{1,31},{1,30},{1,31},{1,31},{1,30},{1,31},{1,30},{1,31}};
char op;int main(){cin>>m>>op>>d;int ans=0;if(m<1||m>12){ans++;m1=m%10;m2=10+m%10;}elsem1=m2=m;if((d<q[m1-1][0]||d>q[m1-1][1])&&(d<q[m2-1][0]||d>q[m2-1][1]))ans++;cout<<ans;return 0;
}

总结:想题时,一定要将所有情况列出在草稿纸上,并多问自己是否全想到了。

涉及的知识点:分类讨论,模拟。

T2

分数变动:\(70\)

\(70\) 分做法:令 \(sa_i=\sum_{j=1}^i a_j,sb_i=\sum_{j=1}^i b_j\),枚举每对 \((l,r)\),令 \(ans \leftarrow ans+(sa_r-sa_{l-1}) \times (sb_r-sb_{l-1})\) 即可。

考虑枚举其中右端点 \(r\),令 \(ans_r\) 表示以 \(r\) 为右端点的区间的贡献之和,则答案为 \(\sum_{i=1}^n ans_i\)

接着推式子:

\[ans_r=\sum_{l=1}^r (sa_r-sa_{l-1}) \times (sb_r-sb_{l-1}) \\ =\sum_{l=1}^r sa_r \times sb_r-sa_r \times sb_{l-1}-sa_{l-1} \times sb_r+sa_{l-1} \times sb_{l-1} \\ =r \times sa_r \times sb_r-r \times sa_r \times \sum_{l=0}^{r-1} sb_l-r \times sb_r \times \sum_{l=0}^{r-1} sa_l+\sum_{l=0}^{r-1} sa_l \times sb_l \]

于是,我们在计算每个 \(ans_r\) 之后顺便维护 \(\sum_{l=0}^{r-1} sa_l,\sum_{l=0}^{r-1} sb_l,\sum_{l=0}^{r-1} sa_l \times sb_l\) 即可 \(O(1)\) 计算,总时间复杂度 \(O(n)\)

code
#include<bits/stdc++.h>
#define int long long
using namespace std;const int N=5e5+5;
int n;
int ans[N];
int a[N],b[N];
int sa[N],sb[N];
const int MOD=1e9+7;signed main(){ios::sync_with_stdio(0);cin.tie(0);cin>>n;int ans1=0,ans2=0;for(int i=1;i<=n;i++){cin>>a[i];sa[i]=(sa[i-1]+a[i])%MOD;}for(int i=1;i<=n;i++){cin>>b[i];sb[i]=(sb[i-1]+b[i])%MOD;}int ssa=0,ssb=0,ssasb=0;for(int r=1;r<=n;r++){ans[r]=(((r%MOD*sa[r]%MOD*sb[r]%MOD-sa[r]%MOD*ssb%MOD+MOD)%MOD-sb[r]%MOD*ssa%MOD+MOD)%MOD+ssasb)%MOD;ssa=(ssa+sa[r])%MOD;ssb=(ssb+sb[r])%MOD;ssasb=(ssasb+sa[r]%MOD*sb[r]%MOD)%MOD;} int Ans=0;for(int i=1;i<=n;i++)Ans=(Ans+ans[i])%MOD;cout<<Ans;return 0;
}

总结:看到这种式子比较多的题,考虑推式子,推到将每个部分都可以直接计算或维护了为止。

涉及的知识点:数学。

T3

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4-网络安全体系与网络安全模型

4.1 网络安全体系概述 1)概念 一般而言,网络安全体系是网络安全保障系统的最高层概念抽象,是由各种网络安全单元按照一定的规则组成的,共同实现网络安全的目标。 网络安全体系包括法律法规政策文件、安全策略、组织管理、技术措施、标准规范、安全建设与运营、人员队伍、教…

2024软件工程课程第一次个人作业

这个作业属于哪个课程 福州大学-软件工程2024这个作业要求在哪里 202409软件工程课程第一次个人作业这个作业的目标 初步使用博客园和GitHub,增强在博客园学习的意识和提升软件开发实践技能的意识,让老师和助教了解各个同学的水平学号 0723052261. 个人logo文生图任务个人风格…

【Hashcat工具】工具使用

数字破解 a、7位数字破解 hashcat64.exe -a 3 -m 0 --force 25c3e88f81b4853f2a8faacad4c871b6 ?d?d?d?d?d?d?db、7位小写字母破解 hashcat64.exe -a 3 -m 0 --force 7a47c6db227df60a6d67245d7d8063f3 ?l?l?l?l?l?l?lc、1-8位数字破解 hashcat64.exe -a 3 -m 0 …

洛谷 P4829 kry loves 2048——题解

洛谷P4829题解传送锚点摸鱼环节 kry loves 2048 题目背景 kls是一个人赢。 题目描述 kls最近在玩一款类似2048的游戏,规则是这样的: 一开始,有\(n\)个方块,每个方块上有一个\(1\)到\(m\)的整数。 kls可以进行两种操作:选择两个数字相同的方块(不一定要相邻),将它们合并…

代码整洁之道--读书笔记(4)

代码整洁之道简介: 本书是编程大师“Bob 大叔”40余年编程生涯的心得体会的总结,讲解要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来者引路,助其职业生涯迈上更…

Javaweb-DQL-分页查询

1. select * from stu limit 0,3; 2. select * from stu limit 0,3; 3. select * from stu limit 3,3; 4. select * from stu limit 6,3;

有哪些让你「 爽到爆炸 」的 Windows 软件?

前言 本文源于知乎的一个提问,如标题所示:有哪些让你「 爽到爆炸 」的 Windows 软件?今天大姚给大家分享6款C#/.NET开源且免费的Windows软件,希望可以帮助大家提高学习、开发、办公效率。 Microsoft PowerToys项目简介: Microsoft PowerToys 是使用 C++ 和 C# 编程语言开发…

LeetCode刷题 堆

不会做简单题目的小菜菜!一:堆 1、一种二叉树的结构(完全二叉树) 2、完全二叉树:从上到下;从左到右;填满 3、最大堆:根节点的权值大于孩子节点 4、最小堆:根节点的权值依次小于孩子节点 5、常用操作 #创建堆(最大堆,最小堆) #添加元素 #获取堆顶元素 #删除堆顶元素…

单双链表

AcWing 826. 单链表 模板题: 实现一个单链表,链表初始为空,支持三种操作:向链表头插入一个数; 删除第 k 个插入的数后面的一个数; 在第 k 个插入的数后插入一个数。现在要对该链表进行 M 次操作,进行完所有操作后,从头到尾输出整个链表。 注意:题目中第 k 个插入的数并…

20221413杜佳妍《密码系统设计》第一周

第一周预习报告 学习内容《Windows C/C++加密解密实战》第 1,2 章第一章概念复习第二章主要在 Linux(Ubuntu,openEuler)上把软件更新到最新版(3.0版本以上)AI 对学习内容的总结(1分) 要求让AI阅读学习内容并进行总结总结第一章概念复习 1. 基本概念密码学:一门研究信息系…

信息学奥赛初赛天天练-85-NOIP2014普及组-基础题4-链表、随机存取、顺序存取、二分查找、二分比较、循环结构、图领奖

信息学奥赛初赛天天练-85-NOIP2014普及组-基础题4-链表、随机存取、顺序存取、二分查找、二分比较、循环结构、图领奖 PDF文档公众号回复关键字:202409071 NOIP 2014 普及组 基础题4 9 下列选项中不属于图像格式的是( ) A JPEG 格式 B TXT 格式 C GIF 格式 D PNG 格式 10…

【笔记】【THM】Phishing(网络钓鱼)(这个模块还没学完)

钓鱼佬永不空军!!! (请不要违反法律进行网络钓鱼)【笔记】【THM】Phishing(网络钓鱼) 了解如何分析和防御网络钓鱼电子邮件。使用各种技术调查现实世界的网络钓鱼尝试。 在本模块中,您将学习如何动手分析各种网络钓鱼攻击。从检查电子邮件的源属性到查看恶意网络钓鱼附…