首页 > 其他分享 >校内集训 小朋友的数字 题解

校内集训 小朋友的数字 题解

时间:2022-10-09 21:57:38浏览次数:87  
标签:__ 特征值 校内 题解 int128 小朋友

校内集训 小朋友的数字 题解

目录

题目

不想调格式了,直接粘截图了……

分析

这道题就是简简单单的贪心,再加上个前缀和就行。

主要的难点就是计算小朋友的特征值,而每个小朋友的特征值只可能是他之前不包括他的最大的一段特征值或者他到之前某个小朋友的特征值的最大值。我们对于每次读入维护一下前缀和还有之前最大一段的特征值就好。

另外这道题的性质决定了它不能在过程中进行取模,为了让数据不至于爆炸我使用了 __int128

思路

水的题解不写思路

不过如果你没懂可以看看这篇题解

代码

#include<cstdio>
using namespace std;
inline __int128 getnum() {
	__int128 x=0,f=1;
	char c=getchar();
	while(c<'0'||c>'9') {
		if(c=='-')f=-1;
		c=getchar();
	}
	while(c>='0'&&c<='9') {
		x=(x<<1)+(x<<3)+(c^48);
		c=getchar();
	}
	return x*f;
}
inline void putnum(__int128 a) {
	if(a==0) {
		putchar('0');
		return;
	}
	if(a<0)	{
		putchar('-');
		a*=-1;
	}
	__int128 t=1;
	while(t<=a)t*=10;
	do {
		t/=10;
		putchar('0'+a/t%10);
	} while(t!=1);
}
inline __int128 Max(__int128 a,__int128 b) {
	return a>b?a:b;
}
inline __int128 Min(__int128 a,__int128  b) {
	return a>b?b:a;
}
__int128 special[1000005],speqzh[1000005],point[1000005],spemax=-72057594037927936,speqzhmin=0,mxpoint,ans=-72057594037927936;
int main() {
	__int128 n=getnum(),mod=getnum();
	for(int i=1; i<=n; i++) {
		speqzh[i]=(speqzh[i-1]+getnum());
		special[i]=Max(spemax,(speqzh[i]-speqzhmin));
		spemax=Max(special[i],spemax);
		speqzhmin=Min(speqzh[i],speqzhmin);
	}
	point[1]=special[1],mxpoint=point[1]+special[1];
	ans=special[1];
	for(int i=2; i<=n; i++) {
		point[i]=mxpoint;
		ans=Max(ans,mxpoint);
		mxpoint=Max(mxpoint,(special[i]+point[i]));
	}
	putnum(ans%mod);
}

标签:__,特征值,校内,题解,int128,小朋友
From: https://www.cnblogs.com/if-OF/p/221009-XPYDSZ.html

相关文章

  • LG5219 无聊的水题I 题解
    传送门题意求有多少节点数为\(n\)的树,使得节点中最大的度数为\(m\)。节点有标号,两棵树不同当且仅当一对节点在一棵树中有连边,另一棵树中没有连边。\(1\len,m\le......
  • 【淼】[NOIP2013 普及组] 小朋友的数字
    [NOIP2013普及组]小朋友的数字思路题中“特征值”是指前面最大的一段数字之和,即以该数结尾的序列的最大子段和,用\(DP\)解决。至于得分,可以从左往右扫一遍,扫的过程中维......
  • CF896D Nephren Runs a Cinema 题解
    顺手搬一下吧···inluogu和其他题解不太一样的柿子。把0元,50元,100元分别看成\(-1\),\(0\),\(1\),则问题转化成有多少种由\(-1\),\(0\),\(1\),构成的长为\(n\)的序......
  • 「题解」Codeforces 1572B Xor of 3
    我知道你很急,但你先别急。我急了我急了我急了。如果直接上去莽构造的话,很可能就是像我一样大分讨的后果。先特判掉全是1,或者1的个数是奇数的情况。我的做法是考虑所......
  • 洛谷 P2387 [NOI2014] 魔法森林 题解【动态加点 SPFA】
    题目大意给定一个由\(n\)个点\(m\)条边的无向图,每条边有权值\((a,b)\),求一条路径使这条路径上的\((a_{\max}+b_{\max})\)最小。思路正解应该是LCT动态维护MST......
  • LeetCode 字符串相乘算法题解 All In One
    LeetCode字符串相乘算法题解AllInOnejs/ts实现字符串相乘jsbignumbermultiply/js大数相乘字符串相乘原理&图解LeetCode43.MultiplyStringsLee......
  • R 包安装常见问题解决
    1.导读日常中使用R语言进行数据分析,或者画图的读者,相信一定逃不过的一个操作就是安装R包,那么在R包安装过程中,可能会出现一些问题,有时候这些问题并不是R包仓库下载过程中......
  • 【题解】sequence
    题意定义一个满足下列两个条件之一的序列\(a\)为单谷序列:\(\exists1\leqk\leqn\),有\(a_1<...<a_k>a_{k+1}>...>a_n\)\(\exists1\leqk\leq......
  • 2022洛阳师范学院ACM实验室招新竞赛题解
    A萌新签到题目描述欢迎大家来参加2022洛阳师范学院ACM实验室新生赛,我们实验室全体学长学姐从暑假一直期盼着你们的到来。我们的小萌新那么可爱,学长学姐肯定不会为难大......
  • P4967 黑暗打击 题解
    P4967黑暗打击题解目录P4967黑暗打击题解题目声明分析过程前置知识矩阵加速欧拉函数指数循环节转移矩阵推导利用指数循环节降低时间复杂度代码题目洛谷P4967黑暗......