链接真的被这题坑惨了。。哎
题目:

“雪啊。”
“雪是红色的。”
像坏掉的复读机一样,梓川咲太只能把闪烁的思绪断断续续的说出来。
“这,是梦吧。”
从口中滑出的却是这样的话。
回过神的时候,天空即将被冰冷黑暗的天空吞没,而自己已经站在湘南台站附近的图书馆的门口。那是第一次遇见樱岛麻衣的地方,是一切的开端。
无所谓了,已经没有可以称为家而能回去的地方了。就在梓川咲太开始自暴自弃的躺在地上任由黑暗吞噬的时候。
眼前突然出现了穿着白大褂的年轻女子,在昏暗的路灯下,随风飘扬的似乎是红色的秀发。
“不要去轻易的改变过去。”开口便是这么难懂的话。
“打个比方,对于一个长度为n,所有元素都为0的数列。每次操作都选取一个位置,使得从这个位置往后都变成1,4,9,16…i^2 ”
“不可思议啊,为什么我一直在,为什么你们,一直在让我做这种数学题。”梓川咲太快濒临崩溃了。
“为了拯救樱岛麻衣和牧之原翔子。这样的理由够充分吗?”那位女子的一句话,让咲太的精神从深海下看到一束光。
“你能计算出经过这么多次操作以后变得面目全非的数列的和吗?”
“不可随便改变过去,就刚才那个比方来说,如果有很多次这样的操作,那么这个数列的和也很难计算吧。”
“可你现在就是面临这个问题哦。计算出那个数列的和,你一定能够知道答案。”这是只有拥有确信的心的人才能说出来的话。
“算出来以后呢。”梓川咲太还需要最后一块拼图。
“去找牧之原翔子吧,一切因她而始,也必定一切因她而终。”
时间的流动在慢慢的将咲太唤回现实。
“许多失败了的未来,无法挽回的过去,但是肯定在这之后,会有连接到…”
熟悉的话语再次传来。但话语的主人已经消失在夜空里。
Input
第一行输入一个数字T(T<=10)表示数据有多少组;
每一组数据第一行包含两个整数n(1<=n<=1e9),Q(Q<=5e4),分别表示数列的长度以及操作的个数。
接下来的Q个数按照操作的时间顺序给出每次操作选择的位置.
Output
输出一个数字表示这个数列的和,由于答案可能很大,所以你需要将答案mod 123456789。
Sample Input
1
3 2
3
1
Sample Output
14

首先,一个公式很重要:

还有一个很类似但是用不到的

数列an=1 2 3 …… n=n(n 1)/2
n(n 1)(n 2)/6是数列{an}的前n项和
(来源百度)

首先分析一下这题的数据不能暴力,不能打表,只能使用某种数学方法。上述公式就是求值。另外,分析题目,其实真正改变串串大小的值的是靠前的位置和后出现的位置。那么可以从后往前看,先标记index为n 1,从后往前遍历b的数值发现只有数值小于index时候会更新部分值。增加的就是两个新旧点之间的距离长度的平方之和。如果大于index肯定不会更新数值的。
思路虽然明确的,但是对于java这题很坑的。n*(n 1)(n 2)会超出long范围,但是c 的int64可以用。如果Java的话可以考虑大数或者预处理。将除号除掉然后快速幂。
先把(n%mod)
((n 1)%mod)处理了。然后再处理第三个,如果三个一块依然超出long范围。只能两两。
附上ac代码(没用大数)

import java.util.Scanner;public class Main {static long mod=123456789;public static void main(String[] args) {// TODO 自动生成的方法存根Scanner sc=new Scanner(System.in);int t=sc.nextInt();for(int q=0;q<t;q  ){long n=sc.nextLong();int m=sc.nextInt();long value=0;long a[]=new long[m 1];for(int i=0;i<m;i  ){a[i 1]=sc.nextLong();}long index=n 1;for(int j=m;j>0;j--){if(a[j]<index){long len=index-a[j];long len1=len 1;long len2=(len*2 1);int q1=2;int q2=3;if(len%q1==0) {len=len/q1;q1=1;}if(len1%q1==0) {len1=len1/q1;q1=1;}if(len2%q1==0) {len2=len2/q1;q1=1;}if(len%q2==0) {len=len/q2;q2=1;}if(len1%q2==0) {len1=len1/q2;q2=1;}if(len2%q2==0) {len2=len2/q2;q2=1;}value =(((len%mod)*(len2%mod)%mod)*(len1%mod))%mod;value%=mod;index=a[j];//System.out.println(q1*q2 " " len2 " " len);}}value=(value%mod) mod;value%=mod;System.out.println(value);}}}

哎,?,都是泪。
如果对后端、爬虫、数据结构算法等感性趣欢迎关注我的个人公众号交流:bigsai

灰暗而空虚的景色β(数学思维题)相关推荐

  1. php编程数学思维题,小学一年级数学思维训练100题打印版.doc

    小学一年级数学思维训练100题53297 PAGE PAGE 1 小学一年级思维训练100题 1.哥哥4个HYPERLINK "/click/click.php?r=/article_htm ...

  2. php编程数学思维题,一年级数学:思维训练题(13套),打印每周一练,益智提升专用...

    一年级数学:思维训练题(13套),打印每周一练,益智提升专用! 众所周知,思维对于数学的学习是最为关键的,尤其是在小学阶段,需要趁早的培养孩子的逻辑思维能力.思维不是凭空想象,而是要依据手里的题目,能 ...

  3. 51Nod 1003 阶乘后面0的数量(数学,思维题)

    1003 阶乘后面0的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 5         难度:1级算法题 n的阶乘后面有多少个0? 6的阶乘 = 1*2*3*4*5*6 = 720 ...

  4. HDU4357(数学思维题)

    题目:String change 把26个字母看成0~25对应的数字,当数慢慢增大时就对26取模,则字符串有一个总和s1,要使其变为末状态的总和s2;那么每交换一次s1要加2,故,s1+s2必须为偶数 ...

  5. codeforces The Artful Expedient(数学思维题)

    题目链接: http://codeforces.com/contest/869/problem/A 题目大意: 给你一个n,分别输入两组n个数字,如果这两组数字两两异或的结果与两组数字中的某一个数字相 ...

  6. 【2018年广东工业大学文远知行杯新生程序设计竞赛】灰暗而空虚的景色β

    http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1009&cid=832 Problem Description In t ...

  7. bigdecimal比较大小的方法_【初中数学思维训练】第7题——比较大小的常用方法...

    1 前言 老朋友可以略去前言,直奔第2部分--正文部分 本专题以新课程标准的初中数学知识为网络,以初中数学题的一题多解为主线,以解题后的反思为枢纽,试图全面系统地培养.训练中学生的发散思维能力.综合解 ...

  8. yoyo思维题(困难) 组合数学

    问题 B: yoyo思维题(困难) 时间限制: 1 Sec  内存限制: 256 MB 提交: 11  解决: 3 [提交][状态][讨论版][命题人:qianyouyou][Edit] [TestD ...

  9. ACM思维题训练 Section A

    题目地址: 选题为入门的Codeforce div2/div1的C题和D题. 题解: A:CF思维联系–CodeForces -214C (拓扑排序+思维+贪心) B:CF–思维练习-- CodeFo ...

最新文章

  1. Vue项目中跨域的几种方式
  2. 连续写博客2个月之后,我感觉自己的心态有了一些变化
  3. 可视化工具第一篇(百度Echarts)
  4. NSString、NSArray、NSDic常用方法汇总
  5. 中国人民大学金琴老师组,AI·M^3实验室招募视觉与语言方向硕博
  6. 阿里完成首个可控量子比特研发;45 名谷歌员工举报不公对待;Swoft 2.0.6 正式版发布 | 极客头条...
  7. Coding之路——重新学习C++(6):一个String类
  8. 2011-9-11 凌晨00:46
  9. 全国区号省份mysql_中国各个省份的区号是多少
  10. error:failed to run html help compiler on index.hhp
  11. android 水波动画效果,Android 实现水波纹动效
  12. linux 关闭浏览器,在Linux和Windows下关闭谷歌Chrome浏览器中的通知提醒的方法
  13. 布法罗博士计算机专业回国人员,2020年纽约州立大学布法罗分校博士专业设置...
  14. 走进互联网0基础秒杀-彭亮-专题视频课程
  15. Linux系统简介分区基础命令(ADMIN01-1)
  16. 折腾Transmission实现固定IP服务器BT做种教程
  17. 静态成员函数访问非静态成员
  18. 如何求卡方分布的P值
  19. FASS-K8S云原生全闪存储解决方案
  20. Android APN设置 获取APN列表

热门文章

  1. 密码流 PassWord.java
  2. 微信公众号开发(python+werobot)-自动回复
  3. [工具]-电脑磁盘爆满了,但又不知道哪些文件占用的空间,怎么办?
  4. [专栏目录]-optee/TEE/TA笔记-目录
  5. 2022-01-07
  6. mac包安装kafka
  7. 2020-12-12(c++多维数组的反编译观察)
  8. 2020-11-1(xml)
  9. 【网络安全】如何利用工具发现内部或外部网络攻击面
  10. 某平台的一次简单渗透测试记录