题目链接:

https://www.luogu.org/problemnew/show/P1982

很显然,这是一个最大字段和问题,但是要注意的是在算每个小朋友的分数的时候是会爆longlong的,我们注意到小朋友的特征值和分数是递增的,手动进行模拟特征值和分数可以得出:

如果要求的小朋友的分数的上一个小朋友的特征值是大于等于零的,那么往后的时候每一个小朋友的分数都为他上一个小朋友的分数加上特征值。否则的话,这个小朋友的分数为第一个小朋友的分数加上特征值。

所以答案要么是第一个小朋友的分数,要么是最后一个小朋友的分数,我们最后只要对比第一个小朋友的分数和最后一个小朋友的分数就行,但是问题来了,因为分数的大小有可能会爆longlong,所以我们在计算的时候会一边取模一边计算,如此这般的话就无法比较取模之前的分数和第一个分数的大小了, 但是我们注意到第一个分数的大小是不会超过1e9的,所以每当第i个小朋友的分数大于1e9的时候就说明答案是最后一个的分数。

代码:

#include <iostream>
#include <algorithm>
#include <cstring>
#include <stdio.h>
using namespace std;
const int inf=1e6+7;
typedef long long ll;
ll arr[inf];
ll special[inf];
ll score[inf];ll max(ll a,ll b)           //先尝试不用取余函数。
{if(a>b)return a;elsereturn b;
}int main()
{ll n,q;scanf("%lld %lld",&n,&q);for(int i=0;i<n;++i)scanf("%lld",&arr[i]);special[0]=arr[0];            //这里应该是关键所在。score[0]=special[0];         //都是从零开始的。ll sum=arr[0];ll themax=arr[0];int lastflag=0;int flag=0;if(arr[0]>=0)flag=1;for(int i=1;i<n;++i){if(sum>0){sum+=arr[i];}else{sum=arr[i];}themax=max(themax,sum);special[i]=themax;      //特征值。还不至于爆longlong,if(special[i-1]>=0)     //就是这里。重点重点!!!!!!!!!{flag=1;}ll temptemp=score[i-1]+special[i-1];if(flag==0){score[i]=special[0]+score[0];}else{if(temptemp>=score[0])lastflag=1;if(temptemp>1000000000){lastflag=1;temptemp%=q;}score[i]=temptemp;}}if(flag==0||lastflag==0){if(score[0]<0){if(score[0]%q!=0)printf("-");score[0]*=(-1);}printf("%lld\n",score[0]%q);}else{if(score[n-1]<0){if(score[n-1]%q!=0)printf("-");score[n-1]*=-1;}printf("%lld\n",score[n-1]%q);}return 0;
}

2013NOIP普级组-- 小朋友的数字相关推荐

  1. 2020年10月28日普级组总结

    2020 年 10 月 28 日 普 级 组 2020年10月28日普级组 2020年10月28日普级组 今天又是打了场模拟赛,做的不怎么理想. 成绩 : 由于数据水,所以还是乱搞搞了个302分:而陈 ...

  2. 2017年09月23日普级组 数列

    Description 小S今天给你出了一道找规律题,题目如下: 有如下的数列1,11,21,1211,111221,312211,-- 小S问你这个数列的第N项是多少,而你一头雾水根本找不出规律. ...

  3. 2017年9月9日普级组 买礼物的艰辛

    Description 小X同学给小C同学选了N件礼物,决定顺序购买并赠送,但作为一个没有工资没有零花钱的可怜小朋友,有M位好心的同学伸出了援助之手,然而为了减少最高的借款量,小X同学希望OI竞赛的你 ...

  4. 2017年9月2日普级组T2 跳格子

    Description 大家都说要劳逸结合,Ayumi, Mitsuhiko, Genta画完方格就出去运动啦! 他们来到了一片空地,画了N个连续的方格,每个方格上随机填上了一个数字,大家从第一个格子 ...

  5. 2012NOIP普级组第三题--摆花(参考洛谷题解)

    一.题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆.通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号.为了在门口展出更多种花,规定第i种花不能超过ai盆,摆 ...

  6. 2017年09月23日普级组 树塔狂想曲

    Description 相信大家都在长训班学过树塔问题,题目很简单求最大化一个三角形数塔从上往下走的路径和.走的规则是:(i,j)号点只能走向(i+1,j)或者(i+1,j+1).如下图是一个数塔,映 ...

  7. 2017年09月23日普级组 环

    Description 有一个圆,共个数在圆环上顺时针排列着. 现在给你三个数,问的顺序是顺时针还是逆时针. Input 第一行包括四个正整数. Output 一行一个整数,0或1,0表示逆时针,1表 ...

  8. 2017年9月16日普级组 在食人百货绽放的蓝蔷薇

    分析 直接枚举,得出x,y,z. 结果满足1 const maxn=250000; var a:array[0..maxn]of longint; n,m,i,j,l,r:longint; begin ...

  9. 2017年9月9日普级组 优美三角剖分

    Description 小X同学为了搞好和小C同学的关系,特意寻找了一些优美的图像作为礼物. 这是一些由无穷无尽三角形组成的极为优美的图形,小X同学很想实现这些极富美感的图形,但是作为一名初赛都未过的 ...

最新文章

  1. maven中spring-boot-dependencies变量名冲突
  2. python selenium 判断元素是否可见
  3. 关于python中带下划线的变量和函数 的意义
  4. 【POJ】2065 SETI
  5. mysql日期代码_mysql日期查询操作代码
  6. 【图说】Eclipse与Unity 3D协同工作
  7. 昨天,面试了一个安全工程师,她的回答让我耳目一新
  8. android 项目将csv文件写入sqlite数据库 代码,如何将csv文件大容量插入sqlite c#
  9. 10个最新优秀手机应用界面设计实例
  10. 导致W3WP进程会重起情况
  11. 汉中市驾驶员理论模拟考试题
  12. 网站爬虫Python
  13. Monkey测试------报错日志分析参考
  14. 企业申请SSL证书选择OV证书还是EV证书好
  15. 能预防及治疗癌症?哈佛研发出可侦测基因缺陷的人工智能系统
  16. vtop工具使用分析
  17. SPSS学习(1)之数据录入与数据获取
  18. c++框架crow搭建web服务入门
  19. python实现自动点击器_Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)...
  20. Reac生命周期钩子之getSnapshotBeforeUpdate

热门文章

  1. nginx访问502 gateway,*1 connect() failed (111: Connection refused) while connecting to upstream
  2. Hyper-V 的导入和导出
  3. java获得服务器路径的几中方法
  4. 大学毕业出路利弊浅谈
  5. Windows 2003 Server C盘空间被IIS日志文件消耗殆尽案例
  6. win8: hello gril
  7. reactjs组件的生命周期函数:getDerivedStateFromProps
  8. go本地调用image-syncer
  9. Jenkins CLI命令行工具,助你轻松管理 Jenkins
  10. 在现有k8s集群中安装kubesphere时报错:metrics-server failed