题解:P10329 [UESTCPC 2024] Add
Add
题意
将序列进行一系列的操作,输出对 \(a_{1}\) 的期望值。
题目中操作说的比较明了,再次就不特殊声明了。
思路
据题意所知,每一个 \(n\) 应该对应了一个固定的答案。
于是我就想到可以打表,就打出了下面的式子。
n=1时 ans=1
n=2时 ans=5
n=3时 ans=14
n=4时 ans=30
n=5时 ans=55
我发现这些数不一般,仔细观察后,发现这些数是平方数的和。
即 \(1^{2}+2^{2}+3^{2}+\dots +n^{2}\)。
那么只要计算并化简即可。
答案证明
将 \(a_{x}\) 代入到 \(a_{y}\) 中得贡献为 \(2x^{2}+2xy\)。
则总贡献为 \(1(2x^{2}+2xy)+2(2x^{2}+2xy)+3(2x^{2}+2xy)+\dots+(x-1)(2x^{2}+2xy)=x^{3}-x\)。
于是答案为 \(1( \frac{x^{3}-x }{x-1})+2( \frac{x^{3}-x }{x-1})+\dots +x( \frac{x^{3}-x }{x-1})\)。
则答案化简后为为 $\frac{n(n+1)(2n+1)}{6} $。
代码
#include<bits/stdc++.h>
using namespace std;
const long long mod=998244353;
long long t,a,b,n;
int main(){
cin>>t;
while(t--){
cin>>n;
a=(n*n+n)/2,b=2*n+1;
if(a%3)b/=3;
else a/=3;
cout<<(a%mod)*b%mod<<endl;
}
return 0;
}
题解:P10329 [UESTCPC 2024] Add的更多相关文章
- [LeetCode 题解]: Add Two Numbers
You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...
- 【题解】【链表】【Leetcode】Add Two Numbers
You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...
- leetcode 题解 Add Two Numbers(两个单链表求和)
题目: You are given two linked lists representing two non-negative numbers. The digits are stored in r ...
- leetcode题解2. Add Two Numbers
题目: You are given two non-empty linked lists representing two non-negative integers. The digits are ...
- 《LeetBook》LeetCode题解(2):Add Two Numbers [M]
我现在在做一个叫<leetbook>的免费开源书项目,力求提供最易懂的中文思路,目前把解题思路都同步更新到gitbook上了,需要的同学可以去看看 书的地址:https://hk029.g ...
- [LeetCode] Add Two Numbers题解
Add Two Numbers: You are given two non-empty linked lists representing two non-negative integers. Th ...
- LeetCode题解——Add Two Numbers
题目: 两个数字求和,数字用链表表示,每一个结点代表一位.链表顺序与数字顺序相反,即表头存放数字的最低位. 解法: 分别遍历两个链表的每个结点,对两个结点求和即可.要维护一个变量保存每次相加之后的进位 ...
- Lintcode221 Add Two Numbers II solution 题解
[题目描述] You have two numbers represented by a linked list, where each node contains a single digit. T ...
- LeetCode 题解之Add Digits
1.问题描述 2.问题分析 循环拆分数字,然求和判断. 3.代码 int addDigits(int num) { ) return num; int result = num; do{ vector ...
- LeetCode题解之Add Strings
1.题目描述 2.问题分析 直接按照加法运算规则运算即可,注意进位问题. 3.代码 string addStrings(string num1, string num2) { if( num1.emp ...
随机推荐
- Fastapi获取其他第三方回调
flask.django获取第三方回调数据,可以用request.data直接获取全部参数.而很多同学不知道fastapi如何获取回调的全部参数,其实可以通过request.body(). 如: @p ...
- 必应每日一图url(可直接使用)
必应每日一图url 首先放出地址,后面是一堆心路历程(一堆废话),只为链接的可以不用看 https://baotangguo.cn:8081/ 最初 博客园装饰的时候(虽然是抄的),想着上面背景图 ...
- js字符串类型
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- tab切换之循环遍历
<style> *{ margin: 0; padding:0; } ul,ol,li{ ...
- 剑指Offer-67.剪绳子(C++/Java)
题目: 给你一根长度为n的绳子,请把绳子剪成整数长的m段(m.n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],...,k[m].请问k[0]xk[1]x...xk[m ...
- edge ctrl+c 复制不起作用
现象: 在edge中选中文字时,按一次ctrl+c,到其它程序ctrl+v,并不是你选中的内容. 需要在edge中按2次ctrl+c才行. --- 当你选中文字时,会出现一个三个点的菜单,点击后会出现 ...
- Scrapy框架(八)--CrawlSpider
CrawlSpider类,Spider的一个子类 - 全站数据爬取的方式 - 基于Spider:手动请求 - 基于CrawlSpider - CrawlSpider的使用: - 创建一个工程 - cd ...
- RSS 解析:全球内容分发的利器及使用技巧
使用 RSS 可以将最新的网络内容从一个网站分发到全球数千个其他网站. RSS 允许快速浏览新闻和更新. RSS 文档示例 <?xml version="1.0" encod ...
- 哈啰面试:说说Dubbo运行原理?
Dubbo 是一款高性能.轻量级的开源 RPC(远程过程调用)框架,主要用于构建分布式服务和微服务架构.那 Dubbo 又是如何运行的呢?让我们一起来看. 1.核心组件 要说 Dubbo 运行流程就不 ...
- 阿里云ecs自定义镜像并导出到OSS、并下载
OSS是什么? 有个文章说得比较浅显清楚:什么是OSS?5分钟带你了解! - 知乎 (zhihu.com) 这里摘选核心内容: 白话文解释就是将系统所要用的文件上传到云硬盘上,该云硬盘提供了文件下载. ...