题解: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 ...
随机推荐
- Django——messages消息框架
在网页应用中,我们经常需要在处理完表单或其它类型的用户输入后,显示一个通知信息给用户.对于这个需求,Django提供了基于Cookie或者会话的消息框架messages,无论是匿名用户还是认证的用户. ...
- Android OpenMAX(八)如何学习OMXNodeInstance
前面一篇文章中我们看到media.codec service创建OMX组件后会把组件传递给一个OMXNodeInstance对象,并且把OMXNodeInstance对象返回到Framework层,F ...
- Flutter(九)Json序列化与反序列化(转Model)
在日常开发中JSON的序列化与反序列化是一个常见的操作:而Dart语言不支持反射,运行时反射会影响Dart的tree shaking(摇树优化),tree shaking可以"抖掉" ...
- zoxide更新后 (cd)异常
关于zoxide github地址:https://github.com/ajeetdsouza/zoxide 简单来说 zoxide是一个cd的强化版.它会记录你曾经cd过的目录,在你使用cd的时候 ...
- MQTT服务器连接不上的问题
问题描述 环境:阿里云服务器Ubuntu 22.04.3 LTS,安装mosquitto后,在虚拟机端订阅消息出现报错(以前用阿里云Ubuntu20.04 LTS的服务器装上就能用),以下服务器ip是 ...
- github无法访问的问题
Windows10 通过nslookup命令获取GitHub域名服务器地址,然后ping该地址 nslookup github.com ping 域名服务器地址 发现20.205.243.166能稳定 ...
- 题解 P2497 [SDOI2012]基站建设
解题思路 CDQ优化DP 下文中 \(pos_i\) 表示编号为 \(i\) 的位置或者说坐标. 暴力 DP 转移方程是 \(f_i=\min\limits_{1\le j<i}\{f_j+\d ...
- 一周万星的文本转语音开源项目「GitHub 热点速览」
上周的热门开源项目让我想起了「图灵测试」,测试者在不知道对面是机器还是人类的前提下随意提问,最后根据对方回复的内容,判断与他们交谈的是人还是计算机.如果无法分辨出回答者是机器还是人类,则说明机器已通过 ...
- C# 配置文件增加自定义节点
话不多说直接开撸! 首先创建一个Config的文件夹然后新增一个后缀名为.config的文件 配置文件的代码如下: <?xml version="1.0" encoding= ...
- js数组操作——对象数组根据某个相同的字段分组
先说点废话 最近在实际业务中,需要编写一个方法根据数组中每一个对象的一个相同字段,来将该字段值相等的对象重新编入一个数组,返回一个嵌套的数组对象,特地来做个总结. 当然需要注意的是,在开发过程这种数组 ...